爬取某家网二手房数据(详细教程)

本文提供了一个爬取某城市链家网二手房数据的详细教程,涵盖项目描述、流程设计、主要代码复现及运行过程。教程中解释了如何通过Python爬虫设置搜索条件、翻页、解析详情页,并将数据保存到本地CSV文件。
摘要由CSDN通过智能技术生成

今天分享一篇爬虫教程,文章比较细致,适合刚上手的小白,老读者可以酌情加速阅读
文中涉及的代码已经测试过,可以正常跑通,文章案例的所有数据也已经成功爬取。


项目描述:

今天要分享的教程是爬取各大城市的二手房数据,实现这篇爬虫也可融汇贯通到其他相关项目。


项目实施:

1. 确定目标

我们的目标官网链接是:https://www.lianjia.com/
对应的某个城市的二手房页面应该是:https://sz.lianjia.com/ershoufang/
JN 代表城市济南的简写,对应的青岛是 QD。

⚠️⚠️⚠️:有两个页面需要注意,第一个页面是打开某个地区二手房链接之后显示的列表页面,第二个页面是点击某个二手房的链接之后跳转的房屋详细数据页面
列表页面
二手房链接页面(济南)
房屋详细信息页面
房屋详细信息

1.1 先来说第一个页面

这个页面包括三部分,最上面的搜索部分、中间的列表部分、下面的翻页部分。
上面的搜索部分看似无用,但也暗藏玄机。
举个最直观的例子:在某个搜索条件下,例如济南,对应的清单中有 55809 条记录
而你将页面拉到最下面进行翻页,发现实际只有 100 页可供操作

根据每一页只有 30 条数据的官方设置,如果不设置搜索条件,只能拿到 3000 条数据
所以,要想获取全部数据,第一个搜索功能就派上用场了。
但是,添加搜索必然会提高整个程序的复杂度,特别是现在有如此多的搜索条件

综上,我们可以选择的解决方式是筛选出重要且能完美区分的搜索条件,例如:区域+户型+朝向

上述设置的目的是:

通过条件设置之后,通过筛选 xx区 的数据,发现数据大于 3000条,则利用户型是 x居室 的进行二次筛选,如果发现仍大于 3000条,再次通过朝x向进行第三次筛选,基本上到了第三次筛选之后,我们可以拿到我们想要的数据。

筛选条件除了每个城市的区域没法固定外,居室和朝向都是固定的
通过F12查看源码可以看到居室和朝向对应的定位如下:
在这里插入图片描述

所以我们可以在代码中这样呈现:
# 户型:一室、二室、三室、四室、五室、五室+  
self.rooms_number = ['l1', 'l2', 'l3', 'l4', 'l5', 'l6']  
# 朝向:朝东+朝南+朝西+朝北+南北  
self.orientation = ['f1', 'f2', 'f3', 'f4', 'f5']

1.2中间的列表部分

列表部分有 3 个信息需要注意,如下图:

分别是:小区名+区域、价格以及其他标签
在这里插入图片描述

如果这些信息已经可以满足数据需求,那对应的爬虫只需要获取这个页面的数据,不需要分析第二个页面了,工作难度就下降了

如果还需要更详细的二手房指标,例如:挂牌时间、抵押情况、产权等数据,那就需要分析第二个页面了

下面的翻页部分:

翻页部分原理比较简单,通过多次点击下一页按钮,观察新页面的 url 链接就能发现规律

例如:https://sz.lianjia.com/ershoufang/luohuqu/pg2l1/ 中的 pg2 对应的是第二页的数据而 l1 在前面我们已经知道是一居室的意思,所以对应的翻页页面的 url 规则应该是:

主网页+区域+pg页码+居室

在翻页遍历的过程中只需要更改 pg页码 即可。

1.3 第二个页面

第二个页面是通过第一个页面点击跳转的:

通过点击图中的标签,

  • 11
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值