house-data-collect/README.md
2026-04-07 15:43:13 +08:00

144 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HouseDream - 北京市房地产数据监控系统
自动爬取、提取并可视化展示北京市住房和城乡建设委员会的房地产交易数据。
## 功能特性
- **自动爬取**: 使用 Playwright 定时抓取官方页面数据
- **数据提取**: 结构化提取商品房和存量房交易统计
- **截图存档**: 每日完整页面截图保存
- **可视化展示**: Web 界面展示历史数据,支持日期切换
- **API 接口**: 提供 RESTful API 供外部调用
## 数据模块
### 商品房数据统计
- 可售期房统计
- 预售许可(上月汇总)
- 期房网上认购(当日)
- 期房网上签约(当日)
- 未签约现房统计
- 现房项目情况
- 现房网上认购(当日)
- 现房网上签约(当日)
### 存量房网上签约统计
- 月签约统计
- 日签约统计
### 存量房维度统计
- 按经纪机构统计Top 10
- 按所在区县统计
- 按建筑面积统计
## 项目结构
```
/app/houseDream/
├── data/ # JSON 数据文件
├── pic/ # 每日页面截图
├── web/ # 前端界面
│ ├── index.html # 主页面
│ ├── style.css # 样式
│ ├── app.js # 前端逻辑
├── scripts/ # 后端脚本
│ ├── daily.js # 完整爬取流程
│ └── screenshot.js # 仅截图
├── public/ # 公共资源
│ └── extract.js # 数据提取逻辑
│ └── define.js # 数据定义
├── server.js # Web 服务器
├── package.json # 项目配置
└── README.md # 本文件
```
## 安装与运行
### 依赖安装
```bash
cd /app/houseDream
bun install
```
### 手动运行
```bash
# 启动 Web 服务器
bun run start
# 开发模式(文件变更自动重启)
bun run dev
# 执行完整爬取(截图+数据提取)
bun run daily
# 仅截图
bun run screenshot
```
### Playwright 浏览器安装
首次安装依赖后请执行:
```bash
bunx playwright install chromium
```
### PM2 管理(推荐)
```bash
# 启动服务
pm2 start "bun run start" --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)
- **后端**: Bun + Bun.serve
- **前端**: HTML5 + CSS3 + Vanilla JavaScript
- **进程管理**: PM2
## 环境变量
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `BASE_DIR` | 当前工作目录 | 项目根目录(用于定位 data/pic/web/public |
| `HOST` | 127.0.0.1 | 服务器监听地址 |
| `PORT` | 8080 | 服务器监听端口 |
## 注意事项
1. 数据文件永久保留,不会自动清理
2. 页面使用 Playwright 获取完整渲染后的内容
3. 默认监听地址为 127.0.0.1,可通过环境变量 HOST 修改
## 许可证
ISC