{"id":13468011,"url":"https://github.com/jumper2014/lianjia-beike-spider","last_synced_at":"2025-05-14T22:09:28.651Z","repository":{"id":41322193,"uuid":"67930090","full_name":"jumper2014/lianjia-beike-spider","owner":"jumper2014","description":"链家网和贝壳网房价爬虫，采集北京上海广州深圳等21个中国主要城市的房价数据（小区，二手房，出租房，新房），稳定可靠快速！支持csv,MySQL, MongoDB,Excel, json存储，支持Python2和3，图表展示数据，注释丰富 ，点星支持，仅供学习参考，请勿用于商业用途，后果自负。","archived":false,"fork":false,"pushed_at":"2024-06-29T08:31:38.000Z","size":1021,"stargazers_count":2899,"open_issues_count":16,"forks_count":726,"subscribers_count":93,"default_branch":"master","last_synced_at":"2025-04-11T10:02:10.364Z","etag":null,"topics":["beike","crawler","house","lianjia","spider"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jumper2014.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-11T13:01:44.000Z","updated_at":"2025-04-08T04:46:12.000Z","dependencies_parsed_at":"2024-01-14T17:49:33.921Z","dependency_job_id":"14998f15-88bc-4be4-897f-93fccbd883e3","html_url":"https://github.com/jumper2014/lianjia-beike-spider","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumper2014%2Flianjia-beike-spider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumper2014%2Flianjia-beike-spider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumper2014%2Flianjia-beike-spider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumper2014%2Flianjia-beike-spider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jumper2014","download_url":"https://codeload.github.com/jumper2014/lianjia-beike-spider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235701,"owners_count":22036964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beike","crawler","house","lianjia","spider"],"created_at":"2024-07-31T15:01:04.168Z","updated_at":"2025-05-14T22:09:23.638Z","avatar_url":"https://github.com/jumper2014.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# 链家网(lianjia.com)和贝壳网(ke.com)爬虫\n- 爬取链家网、贝壳网的各类房价数据（小区数据，挂牌二手房, 出租房，新房）。\n- **如果好用，请点星支持 ！**\n- 支持北京上海广州深圳等国内21个主要城市；支持Python2和Python3; 基于页面的数据爬取，稳定可靠; 丰富的代码注释，帮助理解代码并且方便扩展功能。\n- 数据含义：城市-city, 区县-district, 板块-area, 小区-xiaoqu, 二手房-ershou, 租房-zufang， 新房-loupan。\n- 每个版块存储为一个csv文件，该文件可以作为原始数据进行进一步的处理和分析。\n- 支持图表展示。\n![alt text](https://github.com/jumper2014/lianjia-spider/blob/master/pic/xiaoqu_top.png)\n![alt text](https://github.com/jumper2014/lianjia-spider/blob/master/pic/district_top.png)\n- 如果链家和贝壳页面结构有调整，欢迎反馈，我将尽力保持更新。\n- 此代码仅供学习与交流，请勿用于商业用途，后果自负。\n\n## 安装依赖\n- pip install -r requirements.txt\n- 运行前，请将当前目录加入到系统环境变量PYTHONPATH中。\n- 运行前，请指定要爬取的网站，见lib/spider/base_spider.py里面的SPIDER_NAME变量。\n- 清理数据，运行 python tool/clean.py\n\n## 快速问答\n- Q: 如何降低爬取速度，避免被封IP？A:见base_spider.py里面的RANDOM_DELAY\n- Q: 如何减少并发的爬虫数？ A: 见见base_spider.py的thread_pool_size\n- Q: 为何无法使用xiaoqu_to_chart.py? A: 该脚本现仅支持mac系统\n- Q: 有其他问题反馈途径么？ A: 问题反馈QQ群号635276285。\n\n## 小区房价数据爬取\n- 内容格式：采集日期,所属区县,板块名,小区名,挂牌均价,挂牌数\n- 内容如下：20180221,浦东,川沙,恒纬家苑,32176元/m2,3套在售二手房\n- 数据可以存入MySQL/MongoDB数据库，用于进一步数据分析，比如排序，计算区县和版块均价。\n- MySQL数据库结构可以通过导入tool/lianjia_xiaoqu.sql建立。\n- MySQL数据格式: 城市 日期 所属区县 版块名 小区名 挂牌均价 挂牌数\n- MySQL数据内容：上海 20180331 徐汇 衡山路 永嘉路621号 333333 0\n- MongoDB数据内容: { \"_id\" : ObjectId(\"5ac0309332e3885598b3b751\"), \"city\" : \"上海\", \"district\" : \"黄浦\", \"area\" : \"五里桥\", \"date\" : \"20180331\", \"price\" : 81805, \"sale\" : 11, \"xiaoqu\" : \"桥一小区\" }\n- Excel数据内容：上海 20180331 徐汇 衡山路 永嘉路621号 333333 0\n- 运行, python xiaoqu.py 根据提示输入城市代码，回车确认，开始采集数据到csv文件\n- 运行, python xiaoqu.py city, 自动开始采集数据到csv文件\n```\nhz: 杭州, sz: 深圳, dl: 大连, fs: 佛山\nxm: 厦门, dg: 东莞, gz: 广州, bj: 北京\ncd: 成都, sy: 沈阳, jn: 济南, sh: 上海\ntj: 天津, qd: 青岛, cs: 长沙, su: 苏州\ncq: 重庆, wh: 武汉, hf: 合肥, yt: 烟台\nnj: 南京, \n```\n- 修改 xiaoqu_to_db.py 中的database变量，设置数据最终存入mysql/mongodb/Excel/json\n- python xiaoqu_to_db.py 根据提示将今天采集到的csv数据存入数据库。(默认导出为单一csv文件)\n- python xiaoqu_to_chart.py 将单一csv文件数据通过图表展示。\n\n## 挂牌二手房数据爬取\n- 获取链家网挂牌二手房价数据，数据格式如下：\n- 20180405,浦东,万祥镇,祥安菊苑 3室2厅 258万,258万,祥安菊苑  | 3室2厅 | 126.58平米 | 南 | 毛坯\n- 运行，python ershou.py 根据提示输入城市代码，回车确认，开始采集数据到csv文件\n- 运行，python ershou.py city，自动开始采集数据到csv文件\n\n\n## 出租房数据爬取\n- 获取链家网挂牌出租房数据，数据格式如下：\n- 20180407,浦东,御桥,仁和都市花园  ,3室2厅,100平米,8000\n- 运行，python zufang.py 根据提示输入城市代码，回车确认，开始采集数据到csv文件\n- 运行，python zufang.py city，自动开始采集数据到csv文件\n\n## 新房数据爬取\n- 获取链家网新房数据，数据格式如下：\n- 20180407,上海星河湾,76000,1672万\n- 运行，python loupan.py 根据提示输入城市代码，回车确认，开始采集数据到csv文件\n- 运行，python loupan.py city，自动开始采集数据到csv文件\n\n## 结果存储\n- 根目录下建立data目录存放结果数据文件\n- 小区房价数据存储目录为 data/site/xiaoqu/city/date\n- 二手房房价数据存储目录为 data/site/ershou/city/date\n- 出租房房价数据存储目录为 data/site/zufang/city/date\n- 新房房价数据存储目录为 data/site/loupan/city/date\n\n## 性能\n- 300秒爬取上海市207个版块的2.7万条小区数据，平均每秒90条数据。\n```\nTotal crawl 207 areas.\nTotal cost 294.048109055 second to crawl 27256 data items.\n```\n- 1000秒爬取上海215个版块的7.5万条挂牌二手房数据，平均每秒75条数据。\n```\nTotal crawl 215 areas.\nTotal cost 1028.3090899 second to crawl 75448 data items.\n```\n- 300秒爬取上海215个版块的3.2万条出租房数据, 平均每秒150条数据。\n```\nTotal crawl 215 areas.\nTotal cost 299.7534770965576 second to crawl 32735 data items.\n```\n- 30秒爬取上海400个新盘数据。\n```\nTotal crawl 400 loupan.\nTotal cost 29.757128953933716 second\n```\n\n\n\n### 更新记录\n- 2019/06/21 去除requirements.txt中的webbrower\n- 2018/11/05 增加工具下载二手房缩略图tool/download_ershou_image.py\n- 2018/11/01 增加二手房缩略图地址\n- 2018/10/28 xiaoqu_to_db.py改造成支持命令行参数自动运行。\n- 2018/10/25 将主要爬取代码抽取到spider类中。\n- 2018/10/22 文件名，目录，代码重构。\n- 2018/10/20 增加中间文件清理功能，能够爬取贝壳网的小区，新房，二手房和租房数据。\n- 2018/10/19 支持贝壳网小区数据爬取\n- 2018/10/15 增加Spider类，优化异常处理，功能无变动\n- 2018/10/14 允许用户通过命令行指定要爬取的城市，而不仅仅通过交互模式选择，用于支持自动爬取。\n- 2018/10/11 增加初步log功能。\n- 2018/10/09 图表展示区县均价排名。\n- 2018/10/07 小区房价导出到json文件, csv文件。图表展示最贵的小区。\n- 2018/10/05 增加Referer。增加透明代理服务器获取(未使用)\n- 2018/06/01 支持User-Agent\n- 2018/04/07 支持采集新房的基本房价信息\n- 2018/04/07 支持采集出租房的相关信息\n- 2018/04/05 支持采集挂牌二手房信息\n- 2018/04/02 支持将采集到的csv数据导入Excel\n- 2018/04/01 同时支持Python2和Python3\n- 2018/04/01 支持将采集到的csv数据导入MongoDB数据库\n- 2018/03/31 支持将采集到的csv数据导入MySQL数据库\n- 2018/03/27 修复bug: 版块下只有一页小区数据时未能正确爬取 \n- 2018/03/27 增加5个城市，现在支持21个城市的小区数据爬取\n- 2018/03/10 自动获取城市的区县列表，现在支持16个城市小区数据爬取\n- 2018/03/06 支持北京二手房小区数据采集\n- 2018/02/21 应对链家前端页面更新，使用内置urllib2代替第三方requests库,提升性能，减少依赖\n- 2018/02/01 支持上海二手房小区数据采集","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumper2014%2Flianjia-beike-spider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjumper2014%2Flianjia-beike-spider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumper2014%2Flianjia-beike-spider/lists"}