3.0 KiB
3.0 KiB
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 | 获取指定日期截图 |
数据来源
- 官方网址: http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749
- 来源机构: 北京市住房和城乡建设委员会
技术栈
- 爬虫: Playwright (Chromium)
- 后端: Node.js + 原生 HTTP 模块
- 前端: HTML5 + CSS3 + Vanilla JavaScript
- 进程管理: PM2
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
8080 | 服务器监听端口 |
注意事项
- 数据文件永久保留,不会自动清理
- 页面使用 Playwright 获取完整渲染后的内容
- 服务器默认绑定到 localhost,如需外网访问请修改 server.js 中的监听地址
许可证
ISC