adapt

【爬虫】贝壳网-公寓租房信息爬取工具
终于要从学校毕业了,眼看着时间一点一点临近而还在为找房子发愁。 1. 爬取目标选择 2. 代码模块选择 ...
扫描右侧二维码阅读全文
16
2019/04

【爬虫】贝壳网-公寓租房信息爬取工具

注意!!!
使用github中的代码时,请先在高德地图api网站申请ak码,在程序中填入ak码,或者ui界面运行时填写。完成ak码补充才能够正常运行,切记!!!

终于要从学校毕业了,眼看着时间一点一点临近而还在为找房子发愁。

当看到网上琳琅满目的房屋信息,但是一点都不实用的时候,我想到用爬虫的方式爬取信息。话不多说直接上赶干货

1. 爬取目标选择

首先是爬取的网站选择,最好的目标当然是选择没有反爬,没有异步加载并且房源充足的网站,于是找呀找,发现贝壳上面的房源信息挺全面的,囊括了几乎市面上主流的所有其他租房软件的信息,如自如、链家、58等。而且测试发现贝壳没有反爬哦,不过存在一些异步加载。

2. 代码模块选择

我使用的是win10 + python3.6 + bs4 + lxml + requests库完成基本的页面抓取工作,对于异步加载数据的抓取,使用bs4+lxml能够很轻松的获取内容。
然后就是对需要的元素抓取工作了,不算太复杂,贝壳的html设计的很有层次感
最后使用pyqt4做了一个界面
经过多次修改,最后完成后的界面如下:

tool.png

3. 工具功能

本工具的功能,就是能够以你设置的工作地点为圆心,以设置的直线距离为半径搜索所有设置的房型,并且能够对价格进行筛选,以上这些基本上能够满足要求了。
需要注意的是其中一项ak码,本工具使用了高德地图api提供的地点转经纬度的功能,所以需要使用一个叫做ak码的东东,可以去高德地图api网站上注册一个账号新建一个应用就可以轻松获得属于自己的ak码,完全是免费的

4. 源码地址

注意:你需要加入自己的ak码,才能使用。
github地址:https://github.com/adapt-to/search-home GitHub stars


PS:ak码自己去高德地图api申请就可以,如果不使用高德也可以使用腾讯或者百度地图api接口(使用非高德地图ak码请修改到对应的获取json数据的格式,以保证获取经纬度正确【因为腾讯、百度等每个公司地图api接口数据形式都不相同】)


2019.4.17
重新修改了代码,之前的只能爬取自如的信息,这次修改后能够爬取不同城市的 https://m.ke.com/chuzu/gz/brand/ 中的所有公寓信息,并加入了多条ak码获取,代码github地址已修改(如上)。

缺点:短时间对贝壳爬取次数过多会被识别为爬虫并主动断开链接。


2019.4.18更新

  1. 分离逻辑业务和UI业务,实现UI持续刷新,防止UI界面假死
  2. 加入图片功能(可放入赞赏码或其他)
  3. 加入进度条实时显示
  4. 将QlineEdit文字改为隐藏显示,ak码框改为密码格式(输入不可见)
  5. 修改后代码已更新入上述github

2019.4.18 17:50更新[最后一次修改]

  1. 使用IP代理来爬取信息,防止锁ip
  2. 增加赞赏图
  3. 增加进度条(进度条速度仅供参考,爬取完毕会在左边的窗口反馈)
  4. 优化其他东西
  5. 赞赏图正确显示的操作是:将github项目上的py文件放入D盘的名为search文件夹内,即目录为:D:\search[文件夹内是py文件和wechat图片存放地址]。最后发个快捷地址到桌面就可以便捷使用了。 当然你也可以放在其他地方,只要你修改了样式文件中图片的绝对地址就行,改为绝对地址是为了打包成exe后能够正常显示,用相对位置不会正确显示

缺点:显示框数据更新时滑块不能置于最底部,试了很多方法,都会导致ui窗口自动关闭
最后修改:2019 年 04 月 19 日 04 : 59 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论