又是一年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,需要多等一會兒,如果長時間這樣,需要檢查爬蟲服務是否啟動成功。
溫馨提示
如果環境配置正确,運作結果不正确,原因有可能是網站做了更新,讀者朋友們可以去項目介紹頁面更新代碼後再次嘗試。作者會根據業餘時間和精力不斷更新項目,感興趣的朋友可以持續關注哦。
原文釋出時間為:2018-05-31
本文作者:文摘菌
本文來自雲栖社群合作夥伴“
大資料文摘”,了解相關資訊可以關注“
”。