← 文档库
📄 文档adata/learn/2026-06-28-房产数据板块建设方案/房产数据板块建设方案.md
🌱 创建于2026-07-08 02:17
✏️ 修改于2026-08-07 23:29
👁️ 浏览量—
🔗 短链接/~learn/s/e9f94f3c
🔐 可见性

房产数据板块建设方案

一、背景与目标

adata 目前覆盖股票、ETF、债券、舆情四大板块,缺少房地产这座与宏观经济紧密联动、与个人财富高度相关的数据金矿。新增房产数据板块后,可以补齐「宏观—地产—股市—债市」的量化分析闭环。

核心目标:建成一个支持 省→市→区县→商圈→小区 五级粒度下钻、覆盖 价格+成交+挂牌+租赁 四维指标的房产数据模块,直接嵌入 adata 的 Python 包体系和 Web 可视化界面。

二、数据源全景分析

中国不存在全国统一的 MLS(多重上市服务)系统,各地房管局的网签数据也是一个信息孤岛。所有可用的数据源分为三个梯队:

2.1 第一梯队:免费开放 API(宏观+70城级别)

数据源 粒度 指标 历史 接入方式
------------------------------------
国家统计局 easyquery API 全国/分省/70城 开发投资额、销售面积/额、新开工/竣工面积、70城新房&二手房价指数(环比/同比/定基) 2010年起 HTTP POST,无需注册
数脉/聚合数据 API 70城 新房&二手住宅价格指数 2010年起 REST API,免费额度 600次/月

优点:免费、权威、稳定。 缺点:粒度仅仅到城市(且只有70个),没有区县级和小区级的数据。

结论:这个作为第一阶段的先发数据源。成本为零,实现 API 封装即可上线。

2.2 第二梯队:商业合作 API(城市→区县→商圈级别)

数据源 粒度 指标 更新频率 接入方式
----------------------------------------
诸葛找房开放平台 城市→区县→商圈→小区 挂牌均价、在售套数、涨跌幅、新增挂牌 每日 需签合作协议
安居客付费 API 城市→区县→商圈 均价、房源量、趋势 每日 阿里云市场 / API Key
房天下付费 API 城市→区县 均价、成交量 每日 API Key 认证

优点:结构化数据、粒度细、更新频率高。 缺点:需要付费或签订商业合同,成本每月数百到数千元不等。

结论:作为第二阶段的数据补充,按需接入。建议优先评估诸葛找房,因为它是聚合型平台,数据覆盖最广。

2.3 第三梯队:网页爬虫(小区→房源级别)

数据源 粒度 核心指标 数据质量 反爬强度 历史深度
------------------------------------------------------
链家/贝壳 城市→区县→商圈→小区→房源 挂牌均价、成交均价、成交套数、成交周期、调价记录 ⭐⭐⭐⭐⭐ 最高 ⭐⭐⭐⭐ 强 2015年起
安居客 城市→区县→商圈→小区→房源 均价、在售量、价格走势 ⭐⭐⭐ 中等 ⭐⭐⭐ 中 2017年起
房天下 城市→区县→小区 均价、走势 ⭐⭐⭐ 中等 ⭐⭐ 低 2017年起
58同城 城市→区县→房源 个人房源挂牌 ⭐⭐ 较低 ⭐⭐⭐⭐ 强 近3年

优点:粒度最细、指标最丰富、能拿到真实成交数据(链家)。 缺点:工程复杂度高,需要 Playwright/Selenium + 住宅代理池 + 反爬对抗,且存在法律合规风险。

结论:作为第三阶段的终极数据方案,仅对少数重点城市(北上广深+省会)开启爬虫采集。

三、实施路线图(分三个阶段)

第一阶段:宏观层(预计2-3天)

数据范围:全国+31省+70大中城市的房价指数及开发投资数据。

技术方案:

# 获取70城新房价格指数(月度)
real_estate.macro.get_70city_new_house_price_index(city="北京", start="2020-01")

# 获取70城二手房价格指数(月度)
real_estate.macro.get_70city_second_hand_price_index(city="北京", start="2020-01")

# 获取分省房地产开发投资数据(年度)
real_estate.macro.get_province_investment(province="广东", year=2023)

# 获取全国商品房销售面积/额(月度)
real_estate.macro.get_national_sales(start="2020-01")

# 列出所有可用指标树
real_estate.macro.list_indicators()

数据表设计:

-- 70城房价指数月度表
CREATE TABLE IF NOT EXISTS real_estate_70city_price_monthly (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    city TEXT NOT NULL,           -- 城市名称
    data_type TEXT NOT NULL,      -- new_house / second_hand
    index_type TEXT NOT NULL,     -- month_on_month / year_on_year / fixed_base
    stat_month TEXT NOT NULL,     -- 统计月份 如 2024-06
    index_value REAL,             -- 指数值
    created_at TEXT DEFAULT CURRENT_TIMESTAMP,
    UNIQUE(city, data_type, index_type, stat_month)
);

-- 分省房地产开发投资年度表
CREATE TABLE IF NOT EXISTS real_estate_province_annual (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    province TEXT NOT NULL,
    indicator TEXT NOT NULL,      -- 指标名称
    stat_year INTEGER NOT NULL,   -- 统计年份
    value REAL,                   -- 数值
    unit TEXT,                    -- 单位
    created_at TEXT DEFAULT CURRENT_TIMESTAMP,
    UNIQUE(province, indicator, stat_year)
);

第二阶段:城市明细层(预计3-5天)

在第一阶段稳定后,引入诸葛找房或安居客的商业 API,获取城市→区县→商圈级别的日常挂牌、成交、租赁数据。

数据范围:重点20-30个城市,下钻到区县/商圈。

核心接口:

# 获取城市均价走势(日/周/月)
real_estate.city.get_price_trend(city="上海", district="浦东新区", freq="monthly")

# 获取商圈挂牌量&成交量
real_estate.city.get_district_supply_demand(city="上海", district="浦东新区")

# 获取城市整体租赁价格走势
real_estate.city.get_rental_trend(city="上海", district="浦东新区")

第三阶段:小区精微层(按需启动)

针对重点城市(北京、上海、深圳、广州、杭州)开启链家贝壳爬虫,获取小区级别的成交、挂牌数据。

技术栈:Python + Playwright + 住宅代理池 + Scrapy + SQLite 持久化。

爬虫策略:

核心接口:

# 获取小区均价&走势
real_estate.community.get_community_price_trend(
    city="上海", district="浦东新区", community="陆家嘴花园"
)

# 获取小区历史成交明细
real_estate.community.get_transaction_history(
    city="上海", community="陆家嘴花园", start="2020-01"
)

# 获取小区在售房源列表(匿名化后的统计摘要)
real_estate.community.get_listing_summary(
    city="上海", community="陆家嘴花园"
)

四、代码架构设计

完全遵循 adata 现有的门面模式+模板模式:

adata/real_estate/                  # 新模块目录
├── __init__.py                     # RealEstate 门面类,导出 real_estate 单例
│   class RealEstate:
│       def __init__(self):
│           self.macro = RealEstateMacro()     # 宏观数据
│           self.city = RealEstateCity()       # 城市明细数据
│           self.community = RealEstateCommunity()  # 小区精微数据
│
├── macro/
│   ├── __init__.py                 # RealEstateMacro 聚合类
│   ├── nbs_api.py                  # 国家统计局 easyquery 接口实现
│   └── template.py                 # 列名常量和接口定义
│
├── city/
│   ├── __init__.py                 # RealEstateCity 聚合类
│   ├── zhuge.py                    # 诸葛找房 API 实现
│   └── template.py
│
├── community/
│   ├── __init__.py                 # RealEstateCommunity 聚合类
│   ├── lianjia_spider.py           # 链家爬虫实现
│   └── template.py
│
└── db/
    ├── __init__.py
    ├── schema.sql                  # 建表 SQL
    └── core.py                     # DB 连接和初始化

在顶级 adata/__init__.py 中注册:

from adata.real_estate import real_estate

五、Web 展示方案

在 unified_server.py 中新增数据展示入口:

5.1 导航入口

主页增加「🏠 房产」模块卡片,点击进入 /real-estate 页面。

5.2 数据仪表板

/real-estate/                     # 房产数据总览仪表板
├── /real-estate/overview         # 全国房价热力图 + 关键指标卡片
├── /real-estate/city/{city}      # 城市详情页(房价趋势图+供需分析)
└── /real-estate/community/{id}   # 小区详情页(历史成交+价格走势)

5.3 可视化方案

5.4 REST API

为外部量化策略调用提供数据接口:

GET  /api/real-estate/price-index?city=上海&type=new_house&start=2020-01
GET  /api/real-estate/province-investment?province=广东&year=2023
GET  /api/real-estate/community-trend?city=上海&community=陆家嘴花园

六、数据缓存与更新策略

数据层 缓存策略 更新频率 过期时间
--------------------------------------
宏观数据 CSV 文件缓存 (同 stock/market/data_cache/ 模式) 月度拉取 45天过期
城市明细 SQLite 增量写入 (INSERT OR REPLACE) 每日增量 最新即有效
小区精微 SQLite 按小区分表,日增量 + 月全量校验 每周爬取 14天过期

七、成本估算

阶段 项目 预估费用
----------------------
第一阶段 国家统计局 API 免费
第二阶段 诸葛找房 API(评估后) 0 - 5000元/月
第三阶段 住宅代理池 200 - 800元/月
第三阶段 服务器(如需独立爬虫) 100 - 300元/月

八、风险与注意事项

九、下一步行动

---

*方案起草日期:2026-06-28*

▶ 📜 变更历史(2 次提交)

a7a12042026-08-07 23:29fix: 网站稳定性修复 - 守护进程接管已有实例 + 隧道readiness健康检查 + 经验文档沉淀
01005c22026-07-08 02:17chore: 更新择时图表缓存、推送消息、数据拉取、推送历史
🍃quant 知识库
by 伊甸园和枫

🔊 播放设置

勾选音源后调节配比,总和自动归一化
已选 0 个 · 合计:0%
合成中...
00:00/00:00
1.0x

分享图片

生成中...