本人在爬取二手房的时候,发现链家网站的每个链接(https://sz.lianjia.com/ershoufang/pg100/)最多只能有100页,每页30套房源,那么就是3000套。很多网友也遇到了类似的情况,却没有一种现行的解决方案,经过对页面的探索,这里提出一种爬取所有房源的方法。

打开一个地方的二手房主页,这里用深圳的为例:https://sz.lianjia.com/ershoufang/,可以看到链家上深圳地区二手房共35394套。

每页显示30套,如下可以看到页面的链接都控制在了100页内,所有30 * 100 = 3000 远远小于25394总房源套数的。为啥这么控制不得而知,其他中介网站也是只能查到3000套,比如安居客。

如何找出剩下的房源数据呢?

通过点击不同的页数,可以发现页数page跟链接的关系:https://sz.lianjia.com/ershoufang/pg{page}/,page<=100(第一页默认是:https://sz.lianjia.com/ershoufang/),比如第二页就是:https://sz.lianjia.com/ershoufang/pg2/。

所以现在只通过页数的方式只能爬取到3000套,既然链接页数控制在了100页内,那么是否可以通过加入其他的筛选条件把链接的页数限制100页内,然后通过遍历所有的筛选条件把所有数据爬取下来呢。在二手房主页中,可以看到如下的筛选条件,有位置、售价、房型、面积、标签等筛选条件。通过组合筛选条件来限制链接的页数在100页内。

这里以区域和售价两种条件组合来查询所有房源为例。深圳有罗湖区、福田区、南山区、宝安区、龙岗区、龙华区、光明区、坪山区、大鹏新区9个区,售价有200万以下、200-300万、300-400万,400-500万、500-800万,800-1000万,1000万以上,同时还可以自定义参数范围。

通过点击区域和售价的条件,可以得出对应的链接路径:

regions = ['luohuqu', 'futianqu', 'nanshanqu', 'yantianqu', 'baoanqu', 'longgangqu', 'longhuaqu', 'guangmingqu', 'pingshanqu', 'dapengxinqu']
prices = ['p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7']

在区域和售价组合下的链接为:https://sz.lianjia.com/ershoufang/区域/pg页数价格/

url = 'https://sz.lianjia.com/ershoufang/' + {region} + '/pg' + str(page) + {price} + '/'

通过暴力组合的方式遍历所有情况,获取完整房源数据。

regions = ['luohuqu', 'futianqu', 'nanshanqu', 'yantianqu', 'baoanqu', 'longgangqu', 'longhuaqu', 'guangmingqu', 'pingshanqu', 'dapengxinqu', 'dapengbandao']
prices = ['p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7']for re in regions:for pr in prices:page = 1while True:# url = 'https://sz.lianjia.com/ershoufang/pg' + str(page) + '/'url = 'https://sz.lianjia.com/ershoufang/' + re + '/pg' + str(page) + pr + '/'response = requests.get(url, headers=header)

本文只讨论如何爬取所有房源的方法,对爬取过程的细节在这里就不作解释,完整爬取Python脚本代码见Github:https://github.com/qiaoHaoT/data-spider,如有问题、高见欢迎评论或者私聊。

爬虫:一种打破3000套限制爬取所有链家二手房源的方法相关推荐

  1. Python爬虫框架Scrapy入门(三)爬虫实战:爬取长沙链家二手房

    Item Pipeline介绍 Item对象是一个简单的容器,用于收集抓取到的数据,其提供了类似于字典(dictionary-like)的API,并具有用于声明可用字段的简单语法. Scrapy的It ...

  2. 用Python爬取2020链家杭州二手房数据

    起源于数据挖掘课程设计的需求,参考着17年这位老兄写的代码:https://blog.csdn.net/sinat_36772813/article/details/73497956?utm_medi ...

  3. 爬取‘广州链家新房’数据并以csv形式保存。

    --本次的目标是爬取'广州链家新房'前十页的信息,具体需要爬取的信息为'楼房名字.地址.价格以及是否在售的情况',具体的代码如下. import requests,time import pandas ...

  4. 爬取南京链家租房信息

    爬取南京链家租房信息 代码如下 代码片. import requests from lxml import etree if name == "main": #设置一个通用URL模 ...

  5. 爬取北京链家二手房数据

    利用python爬取了北京链家主页的二手房数据,爬取时间为2020年1月8日.由于链家只显示了100页.每页30条,因此只能爬取3000条数据. 后续将爬取各区的小区名,对每个小区的在售二手房数据进行 ...

  6. 爬取北京链家二手房(requests和selenium)

    从网页源码中可以看出这是静态网页,可以直接从源代码里拿数据,先用requests,在用BeautifulSoup解析,最后通过查找获取数据 import requests from bs4 impor ...

  7. 爬取广州链家租房信息,并用tableau进行数据分析

    在外工作,难免需要租房子,而链家是现在比较火的一个租房网站,本文章主要是爬取链家在广州的租房信息,并且进行简单的数据分析. 数据采集 如图所示,我们需要的信息主要是存放在这个标签里面,我们把信息采集下 ...

  8. 简单python脚本 爬取杭州链家二手房 房价信息

    爬取链家房价信息 主要使用以下库: requests BeautifulSoup 相关问题 当爬取次数太多的时候,可能会遇到被封的情况或者验证码, 大佬们可以自行解决,这个脚本里面我就不掺和了,毕竟我 ...

  9. 爬取广州链家二手房并写入csv

    知识点:多线程,读取csv,xpath import json import csv import requests import threading import lxml import lxml. ...

最新文章

  1. LNOI2014 LCA
  2. python脚本调度程序_Windows 任务调度程序定时执行Python脚本
  3. FLV封装格式介绍及解析
  4. 常数中有换行符的错误
  5. java baen转json 已经 json 转java bean 优秀博客分享
  6. java innodb存储引擎_InnoDB存储引擎简介
  7. 该终端已停用_宣杭老线停用,勾庄、三墩、仓前、老余杭、瓶窑三千多亩地待开发...
  8. Java基础002 Java9开发环境搭建(Win10平台)
  9. 什么场景下声明式事务会失效?如何解决?
  10. 第7集 驱动与电气原理图绘制
  11. 火狐浏览器Firefox怎样设置中文
  12. C语言学习之:一位数组指针与二维数组指针的定义与使用
  13. 联通光纤服务器没有响应怎么办,联通网速不稳定(联通光纤不稳定解决方法)
  14. Unity资源打包(AssetBundle)
  15. linux wifi开机自动连接 wifi连接
  16. 帮我用js写一个微信聊天那种气泡效果
  17. Docker镜像的原理
  18. python实现树莓派监控_树莓派上安装pyaudio 及 对声音实时监控
  19. 解决: Attribute meta-data#package_name@value at AndroidManifest.xml:23:13-44 requires a placeholder 错误
  20. Diagrams(draw.io)-怎样实现跨线

热门文章

  1. invalid button size rid: 5fd188c8-1d752f57-0d53f85f
  2. docker registry push 覆盖_docker容器和镜像操作 - 恋恋风辰
  3. 免费正版 IntelliJ IDEA license 详细指南
  4. 干货 | 使用云监控实现触发一个url调用
  5. 国内十大黄金期货交易APP平台排名(2022版)
  6. 回答你心中的疑问,进行商城网站建设需要多少钱?
  7. Logback 配置文件这么写,TPS提高 10 倍
  8. 《OpenCV3编程入门》学习笔记之书本资源汇总
  9. android+6.0+通讯录,Android6.0的通讯录获取
  10. 甲方乙方项目管理的差别