如何租到靠谱的房子?Scrapy爬虫帮你一网打尽各平台租房信息!

大数据文摘经授权发布

项目开发者:柯振旭

又是一年n度的找房高峰期,各种租赁信息眼花缭乱,如何快速、高效的找到靠谱的房子呢?

不堪忍受各个租房网站缭乱的信息,一位技术咖小哥哥最近开发了一个基于 Scrapy 的爬虫项目,聚合了来自豆瓣,链家,58 同城等上百个城市的租房信息,统一集中搜索感兴趣的租房信息,还突破了部分网站鸡肋的搜索功能。

通过这个“秘密武器”,这位技术咖已经使用该爬虫找到合适的住所。

不仅如此,还很无私地整理了项目代码,并放上了Github。

Github链接:

https://github.com/kezhenxu94/house-renting

点击“阅读原文”可查看项目介绍,在大数据文摘后台回复“租房”可下载源代码~

接下来,跟着文摘菌一起来看看这波酷炫的操作。

环境部署

Python版本:Python 2 || Python 3

爬虫框架:Scrapy

操作系统:Mac || Linux || Windows

服务引擎:Docker

获取源码

$ git clone https://github.com/kezhenxu94/house-renting
$ cd house-renting

在大数据文摘后台回复“租房”可下载源代码~

启动服务

使用 Docker(推荐)

$ docker-compose up --build -d

环境及版本:Mac Docker CE 版,具体版本号为 Version 18.03.1-ce-mac65 (24312)。

为了方便用户使用该项目,作者提供了部署本项目所需要用到的服务的 docker-compose.yml 文件,但由于 Docker 本身的局限性,导致在 Windows 非专业版上必须使用 Docker Toolbox 并因此带来了许多问题,详细参考:

http://support.divio.com/local-development/docker/how-to-use-a-directory-outside-cusers-with-docker-toolbox-on-windowsdocker-for-windows

如果你遇到这样的问题, 可以在这里给提 Issue,如果你遇到并自己解决了这样的问题,欢迎在这里提 Pull Request帮助优化该项目!

Issue:

https://github.com/kezhenxu94/house-renting/issues

Pull Request:

https://github.com/kezhenxu94/house-renting/pulls

手动部署 (不推荐)

安装 Elasticsearch 5.6.9 和 Kibana 5.6.9 并启动

下载并安装 Elasticsearch 和 Kibana,下载地址为:

https://www.elastic.co/downloads/past-releases

安装 Redis 并启动

下载并安装 Redis,下载地址为:

https://redis.io/download

在 crawler/house_renting/settings.py 文件中配置相关的主机和端口:

# ES 节点, 可以配置多个节点(集群), 默认为 None, 不会存储到 ESELASTIC_HOSTS = [    {'host': 'elastic', 'port': 9200},]
REDIS_HOST = 'redis'  # 默认为 None, 不会去重REDIS_PORT = 6379  # 默认 6379

安装 Python 依赖

$ cd crawler
$ pip install -r requirements.txt

选择要扒取的城市(目前支持链家, 58 同城):

选择需要从链家扒取的城市:

打开 crawler/house_renting/spider_settings/lianjia.py 文件,按照注释提示完成城市选择;

# ...# 只需要在这个列表中添加以下 available_cities 中的城市, 如果只需要扒取一个城市也需要使用一个括号包围, 如 (u'广州')
cities = (u'广州', u'北京')
# ...

选择需要从 58 同城扒取的城市:

打开 crawler/house_renting/spider_settings/a58.py 文件, 按照注释提示完成城市选择:

# ...# 只需要在这个列表中添加以下 available_cities 中的城市, 如果只需要扒取一个城市也需要使用一个括号包围, 如 (u'广州')
cities = (u'广州', u'北京')
# ...

启动爬虫

在不同的命令行窗口中启动需要扒取的网站爬虫

$ scrapy crawl douban # 扒取豆瓣
$ scrapy crawl lianjia # 扒取链家
$ scrapy crawl 58 # 扒取 58 同城

到这里,恭喜你!房屋信息已经成功爬取到了,一起来看看爬取结果吧!

查看结果

看图选房

爬虫运行扒取到数据后会有 house_renting/data目录被创建,其中的 images 文件夹下载了租房信息中的图片,用户可以使用图片浏览器查看该文件夹中的图片,看到合适的房子图片后,使用图片文件名到 Kibana 中搜索,找到相应的租房信息详情。

搜索关键字

打开浏览器,定位到 http://127.0.0.1:5601 (请根据 Docker 的 IP 相应更改 Kibana 对应的 URL 地址)。

设置索引模式

在下图中的 Index pattern 输入框中输入 house_renting,然后按下 TAB 键,Create 按钮会变为可用状态,此时点击 Create 按钮;如果此时 Create 按钮还不能用,是因为爬虫还没有扒取到数据入 Elasticsearch,需要多等一会儿,如果长时间这样,需要检查爬虫服务是否启动成功。

切换到 Discover 页面

添加字段

按时间排序

搜索一个关键字

搜索多个关键字

展开详细信息

温馨提示

如果环境配置正确,运行结果不正确,原因有可能是网站做了升级,读者朋友们可以去项目介绍页面更新代码后再次尝试。作者会根据业余时间和精力不断更新项目,感兴趣的朋友可以持续关注哦。

点击“阅读原文”可查看项目介绍,在大数据文摘后台回复“租房”可下载源代码~

原文发布于微信公众号 - 大数据文摘(BigDataDigest)

原文发表时间:2018-05-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏漫漫全栈路

修改Visual Studio类模板添加版权注释信息

在开发过程中,经常需要给类或接口与添加public修饰符和一些相关的注释信息,这个工作是机械而枯燥的,而这个简单的需求可以通过修改VS自带类模板来实现的。 打...

3444
来自专栏小白课代表

软件分享 | Autodesk Maya 2017 安装教程

Autodesk Maya是美国Autodesk公司出品的世界顶级的三维动画软件,应用对象是专业的影视广告,角色动画,电影特技等。Maya功能完善,工作灵活,易...

812
来自专栏腾讯IVWEB团队的专栏

腾讯云 Badjs 镜像使用入门

“Badjs 前端脚本错误监控及跟踪解决方案” 可以有效的提升 web 前端业务质量,但部署和使用都有一定的门槛。现在我们把这个服务制作成了腾讯云镜像,使接入和...

1.2K1
来自专栏北京马哥教育

Ubuntu 17.10 已经发布,图解新功能

来源:IMCN imcn.me/html/y2017/31533....

2659
来自专栏运维前线

Shell 进阶指南

Awesome Shell 这是一份非常棒的命令行框架、工具包、指南、以及小玩意儿组织清单。由 awesome-php 获得灵感。该 awesome 收集在 ...

2587
来自专栏python开发者

安全防范:nginx下git引发的隐私泄露问题

安全防范:nginx下git引发的隐私泄露问题 1   安全事件 最近阿里云服务器后台管理系统中收到一条安全提示消息,系统配置信息泄露: http://my.d...

20510
来自专栏晨星先生的自留地

黑客技能训练之攻破VulnOS 2

2233
来自专栏歪先生_自留地

树梅派折腾---安装

972
来自专栏腾讯Bugly的专栏

微信文件微起底

微信大家都在用,但微信的本地文件到底隐藏着什么样的信息呢?我们怎么可以把长得都一样的微信,变的跟别人的不一样,来个专业定制 100 年呢?这个是一个让大家的微信...

2374
来自专栏FreeBuf

BadUSB橡皮鸭综合利用 | 使用橡皮鸭渗透电脑测试

前言: 等了3个月期待已久的橡皮鸭终于到货了,在hack5上面买的https://hakshop.com ;44.99美元。(真是心疼啊)。托朋友买的,因为淘宝...

1818

扫码关注云+社区