北京大兴区房产数据分析项目
项目概述
本项目是一个完整的房产数据爬取与可视化分析系统,用于从XXX网站爬取北京大兴区的房产信息,并通过ECharts图表进行多维度数据展示。
项目功能
- 数据爬取:从XXX网站爬取北京大兴区房产信息
- 数据存储:将爬取的数据保存为CSV格式
- 数据可视化:生成包含4个不同方向图表的HTML页面
- 数据分析:提供总价、单价、商圈、标签等多维度分析
文件说明
核心文件
anjuke_scraper.py- XXX房产爬虫脚本generate_visualization.py- 数据可视化生成脚本daxing_houses.csv- 爬取的房产数据(CSV格式)visualization.html- 数据可视化展示页面
辅助文件
test_scraper.py- 爬虫测试脚本page_content.html- 页面内容调试文件
环境要求
- Python 3.x
- 必需的Python库:
- selenium
- beautifulsoup4
- pandas
- requests
安装依赖
bash
pip install selenium beautifulsoup4 pandas requests
使用方法
1. 爬取房产数据
运行爬虫脚本:
bash
python anjuke_scraper.py
爬虫会自动:
- 访问XXX网站
- 爬取北京大兴区房产信息
- 过滤出大兴区的房源
- 保存数据到
daxing_houses.csv
爬取的数据字段包括:
- 标题
- 总价(万)
- 单价(元/㎡)
- 小区名称
- 区域
- 商圈
- 地址
- 标签
2. 生成可视化页面
运行可视化生成脚本:
bash
python generate_visualization.py
脚本会自动:
- 读取CSV数据
- 进行数据统计和分析
- 生成包含4个图表的HTML页面
- 保存为
visualization.html
3. 查看可视化结果
直接在浏览器中打开 visualization.html 文件,或使用命令:
bash
start visualization.html
可视化图表说明
页面包含4个不同方向的ECharts图表:
图表1:总价区间分布分析(柱状图)
展示不同总价区间的房源数量分布:
- 0-200万
- 200-300万
- 300-400万
- 400-500万
- 500万+
分析价值:了解大兴区房产的价格分布情况,识别主流价格区间
图表2:商圈房产数量与平均价格对比(混合图)
展示各商圈的房产数量和平均总价:
- 柱状图:各商圈的房产数量
- 折线图:各商圈的平均总价
分析价值:对比不同商圈的热度和价格水平,为购房决策提供参考
图表3:单价区间分布分析(饼图)
展示单价区间的分布占比:
- 20000-25000元/㎡
- 25000-30000元/㎡
- 30000-35000元/㎡
- 35000-40000元/㎡
- 40000-45000元/㎡
- 45000-50000元/㎡
- 50000+元/㎡
分析价值:了解单价分布,评估不同价格区间的市场占比
图表4:热门标签统计分析(横向柱状图)
统计房源标签的出现频率,如:
- 南北(朝向)
- 满五年(税费优惠)
- 近地铁(交通便利)
- 绿化率高(居住环境)
- 车位充足(配套设施)
分析价值:了解房源的主要卖点和市场偏好
数据概览
根据最新爬取的数据:
- 房源总数:11套
- 平均总价:293.73万
- 平均单价:33,820.91元/㎡
- 商圈数量:6个
商圈分布
| 商圈 | 房源数量 | 平均总价(万) |
|---|---|---|
| 亦庄 | 3 | 431.67 |
| 黄村 | 3 | 250.67 |
| 生物医药基地 | 2 | 207.00 |
| 枣园 | 1 | 246.00 |
| 西红门 | 1 | 239.00 |
| 高米店 | 1 | 305.00 |
技术栈
后端技术
- Python 3.x - 主要编程语言
- Selenium - 浏览器自动化,处理动态内容
- BeautifulSoup4 - HTML解析
- Pandas - 数据处理和分析
- Requests - HTTP请求
前端技术
- HTML5 - 页面结构
- CSS3 - 页面样式(渐变背景、响应式布局)
- JavaScript - 交互逻辑
- ECharts 5.4.3 - 数据可视化图表库
页面特点
-
美观的界面设计
- 渐变紫色背景
- 卡片式布局
- 毛玻璃效果
-
响应式设计
- 支持PC端和移动端
- 自适应屏幕大小
-
交互式图表
- 鼠标悬停显示详细数据
- 图表随窗口大小自动调整
-
数据概览卡片
- 房源总数
- 平均总价
- 平均单价
- 商圈数量
-
详细数据表格
- 展示所有房源的完整信息
- 支持悬停高亮
注意事项
- 网络连接:爬虫需要稳定的网络连接
- 反爬机制:网站可能有反爬机制,建议适当控制爬取频率
- 数据时效性:房产信息变化较快,建议定期更新数据
- 浏览器兼容性:可视化页面建议使用现代浏览器(Chrome、Firefox、Edge等)
项目结构
demo/
├── anjuke_scraper.py # 爬虫主脚本
├── generate_visualization.py # 可视化生成脚本
├── daxing_houses.csv # 房产数据文件
├── visualization.html # 可视化展示页面
├── test_scraper.py # 测试脚本
├── page_content.html # 调试文件
└── README.md # 项目文档
扩展建议
- 增加更多数据源:可以扩展到链家、贝壳等其他房产网站
- 增加分析维度:添加户型、面积、楼层等更多分析维度
- 历史数据对比:保存历史数据,进行趋势分析
- 地图可视化:集成地图API,展示房产地理位置
- 数据导出:支持导出为Excel、PDF等格式
- 定时任务:设置定时任务,自动更新数据
常见问题
Q: 图表没有显示怎么办?
A: 请确保:
- 浏览器支持JavaScript
- 网络连接正常(需要加载ECharts CDN)
- 检查浏览器控制台是否有错误信息
Q: 爬虫运行失败怎么办?
A: 请检查:
- 是否安装了所有依赖库
- 网络连接是否正常
- 网站结构是否发生变化
Q: 如何更新数据?
A: 重新运行爬虫脚本即可:
bash
python anjuke_scraper.py
python generate_visualization.py
