最近有個小伙伴在群里問美團資料怎么獲取,而且她只要火鍋資料,她在上海,只要求抓上海美團火鍋的資料,而且要求也不高,只要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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/116841.html
標籤:Python
上一篇:numpy中基本運算函式
下一篇:day5__作業及答案
