天天看點

如何租到靠譜的房子?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,需要多等一會兒,如果長時間這樣,需要檢查爬蟲服務是否啟動成功。

如何租到靠譜的房子?Scrapy爬蟲幫你一網打盡各平台租房資訊!

溫馨提示

如果環境配置正确,運作結果不正确,原因有可能是網站做了更新,讀者朋友們可以去項目介紹頁面更新代碼後再次嘗試。作者會根據業餘時間和精力不斷更新項目,感興趣的朋友可以持續關注哦。

原文釋出時間為:2018-05-31

本文作者:文摘菌

本文來自雲栖社群合作夥伴“

大資料文摘

”,了解相關資訊可以關注“

”。