又是一年n度的找房高峰期,各种租赁信息眼花缭乱,如何快速、高效的找到靠谱的房子呢? 不堪忍受各个租房网站缭乱的信息,一位技术咖小哥哥最近开发了一个基于 Scrapy 的爬虫项目,聚合了来自豆瓣,链家,58 同城等上百个城市的租房信息,统一集中搜索感兴趣的租房信息,还突破了部分网站鸡肋的搜索功能。 通过这个"秘密武器",这位技术咖已经使用该爬虫找到合适的住所。 不仅如此,还很无私地整理了项目代码,并放上了Github。 Github链接: https://ift.tt/2H6U4Pm 点击"阅读原文"可查看项目介绍,在大数据文摘后台回复"租房"可下载源代码~ 接下来,跟着文摘菌一起来看看这波酷炫的操作。 Python版本:Python 2 || Python 3 爬虫框架:Scrapy 操作系统:Mac || Linux || Windows 服务引擎:Docker $ git clone https://github.com/kezhenxu94/house-renting $ cd house-renting
在大数据文摘后台回复"租房"可下载源代码~ $ docker-compose up --build -d
环境及版本:Mac Docker CE 版,具体版本号为 Version 18.03.1-ce-mac65 (24312)。 为了方便用户使用该项目,作者提供了部署本项目所需要用到的服务的 docker-compose.yml 文件,但由于 Docker 本身的局限性,导致在 Windows 非专业版上必须使用 Docker Toolbox 并因此带来了许多问题,详细参考: https://ift.tt/2HphC2U 如果你遇到这样的问题, 可以在这里给提 Issue,如果你遇到并自己解决了这样的问题,欢迎在这里提 Pull Request帮助优化该项目! Issue: https://ift.tt/2swWmlq Pull Request: https://ift.tt/2kFXEa8 安装 Elasticsearch 5.6.9 和 Kibana 5.6.9 并启动 下载并安装 Elasticsearch 和 Kibana,下载地址为: https://ift.tt/1S1eEj5 安装 Redis 并启动 下载并安装 Redis,下载地址为: https://ift.tt/2gRXvNT 在 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 页面 添加字段 按时间排序 搜索一个关键字 搜索多个关键字 展开详细信息 如果环境配置正确,运行结果不正确,原因有可能是网站做了升级,读者朋友们可以去项目介绍页面更新代码后再次尝试。作者会根据业余时间和精力不断更新项目,感兴趣的朋友可以持续关注哦。 ]]> 原文: https://ift.tt/2svgLr9 |
没有评论:
发表评论