简单python爬虫完整代码 python爬虫案例讲解


简单python爬虫完整代码 python爬虫案例讲解

文章插图
今天要分享的教程是爬取各大城市的二手房数据,抛开以前的文章不谈,下面的内容应该足够你实现这篇爬虫 。以下是正文:
一、确定目标今天我们的目标官网链接是链家网
ok,前提条件交代清楚了,接下来看看今天要爬取的目标数据
有两个页面需要注意,第一个页面是你打开上面那个链接之后显示的列表页面,第二个页面是你点击某个二手房的链接之后跳转的房屋详细数据页面
1、先来说第一个页面
这个页面包括三部分,最上面的搜索部分、中间的列表部分、下面的翻页部分 。
上面的搜索部分看似无用,但其实是官方强行设置的一个小操作 。
举个最直观的例子:在某个搜索条件下,例如深圳市,对应的清单中有 39053 条记录
而你将页面拉到最下面进行翻页,发现实际只有 100 页可供操作
根据每一页只有 30 条数据的官方设置,你如果不设置搜索条件,只能拿到 3000 条数据
所以,要想获取全部数据,第一个搜索功能就派上用场了 。
但是,添加搜索必然会导致整个程序的复杂度直线上升,特别是现在有如此多的搜索条件
综上,最好的解决方式是筛选出 重要且能完美区分的搜索条件,例如:区域+户型+朝向
上述设置的目的是:
通过条件设置之后,通过筛选 xx区 的数据,发现数据大于 3000条,则利用户型是 x居室 的进行二次筛选,如果发现仍大于 3000条,再次通过 朝x 进行三次筛选
基本上到了第三次筛选之后,数据会在 3000以内,对应的可以全部拿到 。
其他筛选条件应该也能实现同样的效果,这个自己设定即可
对了,筛选条件除了每个城市的区域没法固定外,居室和朝向都是固定的
通过F12查看源码可以看到居室和朝向对应的系统定位如下:
对应的,在代码中也就可以将其进行映射:
#户型:一室、二室、三室、四室、五室、五室+self.rooms_number=['l1','l2','l3','l4','l5','l6']#朝向:朝东+朝南+朝西+朝北+南北self.orientation=['f1','f2','f3','f4','f5']再来看中间的列表部分
列表部分有 3 个信息需要注意,如下图:
分别是:小区名+区域、其他标签、价格
如果这些字段信息已经可以满足你的数据需求,那对应的爬虫只需要获取这个页面的数据,不需要分析第二个页面,相对来说比较简单
如果你需要更详细的二手房指标,例如:挂牌时间、抵押情况、产权等,以及该房子的经纬度数据,那你需要分析第二个页面
最后是下面的翻页部分
翻页部分原理比较简单,通过多次点击下一页按钮,观察新页面的 url 链接就能发现规律
例如:https://sz.lianjia.com/ershoufang/luohuqu/pg2l1/ 中的 pg2 对应的是第二页的数据
而 l1 在前面我们已经知道是一居室的意思,所以对应的翻页页面的 url 规则应该是:主页+区域+pg页码+居室
在翻页遍历的过程中只需要更改 pg页码 即可 。
2、再来说第二个页面
第二个页面是通过第一个页面点击跳转的,我举个例子:
通过点击图中上面的标签,会跳转到下面链接对应的新页面
链接中后面的数字编号对应的是该二手房的编码id 。
第二个页面有三个部分,分别是:价格+位置、基本信息+交易信息、地图
价格+位置部分数据如下图:
从价格部分可以获取到:参考总价、单价
从所在区域可以获取到:小区名称、大区域+小区域
基本信息+交易信息数据如下图:
因为这张图上的数据比较全,所以我并没有解析上张图的其他数据


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: