但是,添加搜索必然会导致整个程序的复杂度直线上升,特别是现在有如此多的搜索条件
综上,最好的解决方式是筛选出 重要且能完美区分的搜索条件,例如:区域+户型+朝向
上述设置的目的是:
通过条件设置之后,通过筛选 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 在前面我们已经知道是一居