本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于木下学Python ,作者木下瞳

前言

小编可能准备去深圳,需要租房子,在网上先查了查,有很多租房软件,安居客,贝壳等,也向身边的人问了问,安居客听到的次数多一些,于是选择安居客去查看一些租房信息。

在浏览过程中,虽然安居客有过滤标签,按价格,区域,房型,类型这四个来过滤的,但感觉还是不是理想中的信息,而且特别多,看不过来。

所以小编决定使用 python 爬取上面的数据,并自己设置过滤条件,从很多房源中过滤出自己需要的房源,既提高效率,又能找到比较理想的。.

 

 

数据获取

数据是爬取安居客的租房,过滤条件设置价格为 0-2500元/月,这是小编自己理想能接受的范围,2000 以上偏高但可以先看看:

 

区域因为不太了解每个行政区的范围,所以不知道每个区域的距离,只选择某个区又太单一了,不能了解整体,所以区域选择默认的全部标签。

一页有 60 条数据,有 50 页,可以得到 3000 条数据,这些足够了,多了也看不过来。

爬虫的逻辑是不难,从第一页一直到最后一页,先爬取每一页房源链接,从爬取房源链接中的详细信息。

主要爬取标题,房屋信息,房屋有的设施,房源概况:

 

在过程中会遇到两个问题,其一是字体乱码,也就是字体反爬了,详细信息的数字都是加密过的:

 

核心代码如下:

 

 

第二个问题就是会遇到验证码,可能是点击字体的,可能是滑块,很麻烦,所以这个小编是在程序中判断是否出现验证码。

出现验证码程序会输出提示,手动点击验证码后,按回车继续爬取,在爬取过程中小编只遇到过一次验证码。

其他的逻辑比较简单,感兴趣的参考源码即可。

 数据过滤

获得数据就可以自己设置过滤条件了,因为小编需要知道每条房源在哪里,先构造每条房源的区域:

 

对每个区域的房价分布心理有个底,所以以区域划分,价格划分为 (0,500],(500,1000],(1000,1500],(1500,2000],(2500.3000],一次来查看分布,先计算每个区每个分布,画出柱状图:

 

 

图用 pyecharts 画的,区域选择设置的单选,每次可以查看一个区域价格分布。

对价格有个底后,来设置过滤条件,首先小编考虑附近是否有地铁,在数据中【标签】【概况】可以说明。

房源设备也是小编考虑的有网,热水,洗衣机,空调,卫生间,根据这些关键词过滤,过滤了 1000 条左右:

 

标签中如果有【号线】代表有地铁几号线,那概况中应该也会提到地铁要不然让人怀疑是骗人的,所以以这两个进行过滤,2000 多条一下就过滤剩下 500 多条:

 

然后小编根据承受能力,选择了 1500 以下的房源:

 

过滤后一下剩下 200 多条,还是有点多,现在是包含所有区域的:

 

最后小编根据自己的需求,查看了地图过滤区域,只选择了合适的区域,过滤后自由 84 条数据,并保存:

 

小编抽取了几条数据,点开链接,大部分还是都能接受。为了点题,现在的我应该表示很伤心

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/hhh188764/p/13880732.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!