# crawler-beke **Repository Path**: vi-me/crawler-beke ## Basic Information - **Project Name**: crawler-beke - **Description**: 爬取贝壳的某小区所有的房子的关键信息 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-13 - **Last Updated**: 2025-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 贝壳找房爬虫 一个基于Puppeteer的贝壳找房二手房信息爬虫工具,用于搜索特定小区的房源信息。 ## 功能特点 - 支持通过小区名称搜索房源 - 自动爬取多页结果 - 提取房源标题、位置、户型、价格等关键信息 - 支持设置最大爬取页数 - 结果自动保存为JSON文件到按小区名命名的目录 - 自动分析并提取最低单价的10套房源(不含车位) - 自动统计房源数据(价格、户型、楼层、房龄分布等) - 自动提取车位信息,单独保存到专用文件 - 自动截图保存每个页面,便于调试和记录 - 内置反爬策略(随机延时、stealth模式等) - 支持命令行参数传递搜索条件 - 精确过滤非目标小区的房源,确保数据准确性 ## 安装说明 ### 前置条件 - Node.js (v12+) - npm 或 yarn ### 安装步骤 1. 克隆本仓库: ```bash git clone https://github.com/your-username/beike-crawler.git cd beike-crawler ``` 2. 安装依赖: ```bash npm install ``` ## 使用方法 ### 命令行使用 您可以通过命令行参数指定要搜索的小区名称和最大爬取页数: ```bash # 格式: node crawler.js [小区名称] [最大页数] # 示例1: 搜索"会所花园"小区,爬取所有页面 node crawler.js 会所花园 # 示例2: 搜索"锦江花园"小区,只爬取前3页 node crawler.js 锦江花园 3 ``` 如果不提供参数,程序将默认搜索"会所花园"小区并爬取所有页面。 ### 参数说明 - 第一个参数: 要搜索的小区名称 - 第二个参数: 最大爬取页数,设为0则爬取所有页面 ### 输出结果 程序会为每个小区创建独立的目录,所有相关文件都保存在该目录中: 1. 完整爬取结果文件:`houses.json` 2. 低单价排序结果文件(不含车位):`low_price.json` 3. 车位信息文件:`parking_spaces.json` 4. 页面截图:保存在`screenshots/`子文件夹中 输出目录结构示例: ``` output/ └── 2023-05-20/ # 按日期命名的文件夹 ├── 会所花园/ # 小区目录 │ ├── houses.json # 完整爬取结果 │ ├── low_price.json # 低单价房源结果(不含车位) │ ├── parking_spaces.json # 车位信息 │ └── screenshots/ # 截图文件夹 │ ├── homepage.png # 首页截图 │ ├── search_results.png # 搜索结果页截图 │ ├── page_1.png # 第1页截图 │ ├── page_2.png # 第2页截图 │ └── ... └── 锦江花园/ # 另一个小区目录 ├── houses.json ├── low_price.json ├── parking_spaces.json └── screenshots/ └── ... ``` JSON文件包含以下信息: - 小区名称 - 总房源数 - 实际爬取数 - 总页数 - 实际爬取页数 - 爬取时间 - 统计数据(totalElement):包含价格统计、单价统计、户型分布、楼层分布、房龄分布等 - 房源详细信息列表 ## 注意事项 - 本工具仅供学习研究使用,请勿用于商业目的 - 频繁爬取可能触发反爬机制,遇到人机验证时需手动处理 - 网站结构变化可能导致爬虫失效,需要及时更新选择器 - 爬虫会自动过滤非目标小区的房源,但小区名称相同或相似的情况下可能仍有少量误判 ## 依赖库 - puppeteer: 浏览器自动化控制 - puppeteer-extra: puppeteer增强插件 - puppeteer-extra-plugin-stealth: 隐藏爬虫特征的插件 ## TodoList 以下是计划中的功能和改进: - [ ] 添加Web界面,实现可视化操作 - [ ] 支持多小区批量爬取功能 - [ ] 导出数据为Excel格式 - [ ] 增加房源历史价格比较功能 - [ ] 实现自动定时爬取 - [ ] 添加数据可视化图表 - [ ] 支持更多过滤条件(如价格范围、面积范围等) - [ ] 添加代理IP池,提高爬取稳定性 - [ ] 优化小区名称匹配算法,提高过滤精度 - [ ] 添加房源详情页爬取功能,获取更多信息 - [ ] 支持其他房产网站爬取,如链家、安居客等 - [ ] 实现数据库存储,便于大量数据管理