house-data-collect/README.md
2026-03-20 21:53:19 +08:00

3.0 KiB
Raw Blame History

HouseDream - 北京市房地产数据监控系统

自动爬取、提取并可视化展示北京市住房和城乡建设委员会的房地产交易数据。

功能特性

  • 自动爬取: 使用 Playwright 定时抓取官方页面数据
  • 数据提取: 结构化提取商品房和存量房交易统计
  • 截图存档: 每日完整页面截图保存
  • 可视化展示: Web 界面展示历史数据,支持日期切换
  • API 接口: 提供 RESTful API 供外部调用

数据模块

商品房数据统计

  • 可售期房统计
  • 预售许可(上月汇总)
  • 期房网上认购(当日)
  • 期房网上签约(当日)
  • 未签约现房统计
  • 现房项目情况
  • 现房网上认购(当日)
  • 现房网上签约(当日)

存量房网上签约统计

  • 月签约统计
  • 日签约统计

存量房维度统计

  • 按经纪机构统计Top 10
  • 按所在区县统计
  • 按建筑面积统计

项目结构

/app/houseDream/
├── data/               # JSON 数据文件
├── pic/                # 每日页面截图
├── web/                # 前端界面
│   ├── index.html      # 主页面
│   ├── style.css       # 样式
│   ├── app.js          # 前端逻辑
│   └── define.js       # 数据定义
├── scripts/            # 后端脚本
│   ├── daily.js        # 完整爬取流程
│   └── screenshot.js   # 仅截图
├── public/             # 公共资源
│   └── extract.js      # 数据提取逻辑
├── server.js           # Web 服务器
├── package.json        # 项目配置
└── README.md           # 本文件

安装与运行

依赖安装

cd /app/houseDream
npm install

手动运行

# 启动 Web 服务器
npm run server

# 执行完整爬取(截图+数据提取)
npm run daily

# 仅截图
npm run screenshot

PM2 管理(推荐)

# 启动服务
pm2 start server.js --name houseDream

# 查看状态
pm2 list
pm2 logs houseDream

# 重启/停止
pm2 restart houseDream
pm2 stop houseDream

# 设置开机自启
pm2 save
pm2 startup

API 接口

接口 方法 说明
/ GET 可视化界面
/api/dates GET 获取可用日期列表
/api/data/YYYY-MM-DD GET 获取指定日期数据
/pic/YYYY-MM-DD.png GET 获取指定日期截图

数据来源

技术栈

  • 爬虫: Playwright (Chromium)
  • 后端: Node.js + 原生 HTTP 模块
  • 前端: HTML5 + CSS3 + Vanilla JavaScript
  • 进程管理: PM2

环境变量

变量 默认值 说明
PORT 8080 服务器监听端口

注意事项

  1. 数据文件永久保留,不会自动清理
  2. 页面使用 Playwright 获取完整渲染后的内容
  3. 服务器默认绑定到 localhost如需外网访问请修改 server.js 中的监听地址

许可证

ISC