最近有個小伙伴在群里問美團數據怎麼獲取,而且她只要火鍋數據,她在上海,只要求抓上海美團火鍋的數據,而且要求也不高,只要100條,想做個簡單的分析,相關的欄位如下圖所示。 乍一看,這個問題還真的是蠻難的,畢竟美團也不是那麼好抓,什麼驗證碼,模擬登陸等一大堆拂面而來,嚇得小伙伴都倒地了。 通過F12查看 ...
最近有個小伙伴在群里問美團數據怎麼獲取,而且她只要火鍋數據,她在上海,只要求抓上海美團火鍋的數據,而且要求也不高,只要100條,想做個簡單的分析,相關的欄位如下圖所示。
乍一看,這個問題還真的是蠻難的,畢竟美團也不是那麼好抓,什麼驗證碼,模擬登陸等一大堆拂面而來,嚇得小伙伴都倒地了。
通過F12查看,抓包,分析URL,找規律,等等操作。
不過白慌,今天小編給大家介紹一個小技巧,另闢蹊徑去搞定美團的數據,這裡需要用到抓包工具Fiddler。講道理,之前我開始接觸網路爬蟲的時候也沒有聽過這個東東,後來就慢慢知道了,而且它真的蠻實用的,建議大家都能學會用它。這個工具專門用於抓包,而且其安裝包也非常小,如下圖所示。
接下來,我們開始進行抓取信息。
1、在Fiddler的左側找到meituan網站的鏈接,如下圖所示。鏈接的左邊返回的response(響應)的文件類型,可以看到是JSON文件,爾後雙擊這一行鏈接。
2、此時在右側會顯示下圖的界面,點擊黃色區域內的那串英文“Responsebody is encoded. Click to decode.”意思是response是加密的,點擊此處進行解碼,對返回的網頁進行解碼。
3、此時會彈出下圖所示的界面,在WebView中可以看到返回的數據,與網頁中的內容對應一致。
4、不過美團網限制一頁最多顯示32條火鍋信息,如下圖所示。
5、如果我想獲取100條信息的話,那得前後找4頁,才能夠滿足要求。有沒有辦法讓其一次性多顯示一些數據呢?答案是可以的,操作方法如下。
在左側找到對應的美團網鏈接,然後點擊右鍵一次選擇CopyàJustUrl,如下圖所示。
7、將得到的URL放到瀏覽器中去進行訪問,如下圖所示。可以看到limit=32,即代表可以獲取到32條相關的火鍋信息,並且返回的內容和Fiddler抓包工具返回的信息是一致的。
8、此時,我們直接在瀏覽器中將limit=32這個參數改為limit=100,也就是說將32更改為100,讓其一次性返回100條火鍋數據,天助我也,竟然可以一次性訪問到,如下圖所示。就這樣,輕輕鬆松的拿到了一百條數據。
9、接下來,可以將瀏覽器返回的數據進行Ctrl+A全部選中,放到一個本地文件中去,存為txt格式,在sublime中打開,如下圖所示。
10、其實乍一看覺得很亂,其實它就是一個JSON文件,剩下的工作就是對這個JSON文件做字元串的提取,寫個代碼,提取我們的目標信息,包括店門、星級、評論數、關鍵詞、地址、人均消費等,如下圖所示。
11、運行程式之後,我們會得到一個txt文件,列與列之間以製表符分開,如下圖所示。
12、在txt文件中看上去很是費勁,將其導入到Excel文件中去,就清晰多了,如下圖所示。接下來就可以很方便的對數據做分析什麼的了。
13、至此,抓取美團火鍋數據的簡易方法就介紹到這裡了,希望小伙伴們都可以學會,以後抓取類似的數據就不用找他人幫你寫程式啦~~
14、關於本文涉及的部分代碼,小編已經上傳到github了,後臺回覆【美團火鍋】四個字即可獲取。
看完本文有收穫?請轉發分享給更多的人
IT共用之家
入群請在微信後臺回覆【入群】
想學習更多Python網路爬蟲與數據挖掘知識,可前往專業網站:http://pdcfighting.com/