數據分析之去哪兒酒店

以前發了一篇爬取去哪兒自由行的數據後,有一個讀者在後臺問到我怎麼爬取去哪兒酒店的數據。當時簡單看了下,以爲難度不大。就跟他講了下思路。由於當時爬取自由行的網站選取的是移動端。爲了能讓讀者學習到更多的知識,咱們今天選取了去哪兒的電腦端來進行爬取。其實爬蟲的思路都是同樣的,無非就是先獲取網頁信息,而後再解析。解析以後就提取所要的數據。若是要對數據要進一步的分析的話。還須要對數據進行清洗,建模等一系列操做。今天做者給你們帶來的就是去哪兒酒店酒店信息的獲取,並進行數據清洗,分析。git


1. 準備工做
github

本篇案例主要涉及到的Python的庫有Selenium,pymongo庫,以及解析庫pyquery。清洗庫pandas庫和matplotlib庫,而且安裝好了Chrome瀏覽器和配置好了ChromeDriver。算法


2. 頁面分析
數據庫

首先訪問去哪兒網址:"https://www.qunar.com/",而後選擇酒店這一欄。咱們能夠看到目前的連接爲:"http://hotel.qunar.com/"。這個就是咱們要訪問的域名。以下圖所示。瀏覽器

咱們點擊頁面的目的地輸入城市,而後點擊搜索便可出現酒店列表,即咱們能夠用Selenium來控制瀏覽器輸入城市名,而後點擊。咱們進入到酒店頁面。以下圖所示。微信

若是有更多的業務需求,咱們能夠選擇菜單上的酒店類型,實現思路同樣。在此咱們默認爲"酒店搜索"這一欄。而且選擇按評分來篩選酒店。咱們隨機選擇一個酒店名,右擊打開開發者工具。以下圖所示。ide

咱們通過分析可知每一個酒店的內容是在id爲"jxContentPanel"中,而且在其下class爲"b_result_box js_list_block"中能夠看到每一個酒店的詳細信息。以下圖所示。工具

咱們就能夠pyquery解析庫來解析網頁獲取咱們所須要的信息了,到此網頁的解析已經完成。下面咱們用代碼來實現整個抓取的過程。學習


3. 實戰演練網站


3.1 獲取目的地城市列表

這裏咱們可使用咱們以前抓取自由行數據時抓取到的目的地城市列表,實現以下:

3.2 獲取去哪兒頁面詳情頁

咱們已經有目的地城市列表了,因此咱們在在訪問去哪兒網址時,只用輸入所得到的城市就能夠進行搜索了。而後就能夠獲取酒店頁面了。 而且咱們要得到多個頁面的酒店。因此也要實現翻頁的方法。實現以下:

3.3解析酒店列表

咱們已經得到了酒店列表頁面,接下來用解析庫pyquery進行解析,就能夠獲取咱們想要的數據了。實現以下:


3.4保存到數據庫和csv文件


3.5運行代碼



3.6結果查看


MongoDB數據庫結果:


CSV文件:


3.7數據清洗

利用pandas庫和matplotlib庫進行數據清洗和簡單分析,實現以下:

結果以下 :


3.8 項目代碼

https://github.com/NGUWQ/Python3Spider/tree/master/dataanalysis



4. 結語

此項目主要功能是爬取去哪兒酒店,若是你要爬取去哪兒的其它業務,思路也是同樣的。


If it works for you.Please,star.

對爬蟲,數據分析,算法感興趣的朋友們,能夠加微信公衆號 TWcoding,咱們一塊兒玩轉Python

相關文章
相關標籤/搜索