W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解
利用Python簡(jiǎn)單爬取美團(tuán)美食板塊商家數(shù)據(jù)。。。
其實(shí)一開始我是想把美團(tuán)的所有商家信息爬下來的,這樣就可以美其名曰百萬(wàn)數(shù)據(jù)了。。。
然而相信很多爬過美團(tuán)的朋友都發(fā)現(xiàn)了。。。
如果不進(jìn)行一些小操作。。。
爬不了幾頁(yè)代碼就GG了。。。
后來想想我要這么多數(shù)據(jù)也沒什么用。。。
唯一對(duì)我有用的。。。
大概就是美食板塊了。。。
以后用到其他板塊的時(shí)候再另外爬就好了。。。
OK,Let's go!
百度網(wǎng)盤下載鏈接: https://pan.baidu.com/s/19FPe8OFVwVa_LvuHjYnB9w
密碼: 3pbr
目的:
根據(jù)輸入的城市名,爬取該城市美團(tuán)美食板塊所有商家的數(shù)據(jù)。數(shù)據(jù)包括:
店名、評(píng)分、評(píng)論數(shù)量、均價(jià)、地址,
并將這些數(shù)據(jù)存入Excel中。
最后嘗試對(duì)爬取到的數(shù)據(jù)做一個(gè)簡(jiǎn)單的分析。
克服反爬蟲:
爬取每頁(yè)數(shù)據(jù)后,隨機(jī)停止一段時(shí)間后再爬下一頁(yè);
每頁(yè)使用不同的cookie值。
具體原理:
沒用抓包軟件。。。
Chrome打開后看了下xhr。。。
發(fā)現(xiàn)直接有接口可以用。。。
給個(gè)cookie就能返回所需的數(shù)據(jù)了。。。
后來隨便點(diǎn)了幾個(gè)其他板塊的網(wǎng)頁(yè)。。。
發(fā)現(xiàn)也差不多是這個(gè)套路。。。
詳細(xì)的實(shí)現(xiàn)過程見源代碼。
Python版本:3.5.4
相關(guān)模塊:requests模塊;win_unicode_console模塊;openpyxl模塊;以及一些Python自帶的模塊。
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。
使用演示
在cmd窗口運(yùn)行MT_Cate_Spider.py文件即可。
簡(jiǎn)單分析
其實(shí)在碼字的時(shí)候我臨時(shí)加的這個(gè)部分。。。
原因很簡(jiǎn)單。。。
我想強(qiáng)調(diào)爬蟲和數(shù)據(jù)分析結(jié)合的重要性。。。
數(shù)據(jù)不多,懶得寫代碼分析了。。。
利用Excel的數(shù)據(jù)分析功能簡(jiǎn)單分析一波吧~~~
用的上海地區(qū)的數(shù)據(jù)。
首先當(dāng)然是按照評(píng)分排個(gè)序,然后做成柱狀圖:
然后是評(píng)論數(shù)量排個(gè)序,做成柱狀圖:
然后再做點(diǎn)其他有趣的圖案:
OK,That's all!
如果有需要,我會(huì)寫一個(gè)爬取美團(tuán)所有商家信息的腳本,因?yàn)榫腿缰八f。。。
貌似都有直接可以用的接口。。。
所以還算比較簡(jiǎn)單。。。
只要弄到足夠多的cookie值就好了。。。
當(dāng)然這個(gè)Flag應(yīng)該是要到我實(shí)在沒東西寫或者懶得重新踩點(diǎn)的時(shí)候才會(huì)去實(shí)現(xiàn)了吧。。。
就這樣吧~~~
有興趣的朋友可以試著去抓其他板塊的數(shù)據(jù)。。。
貌似挺easy的。。。
小心別被封了就好了。。。
代碼截止2018-02-25測(cè)試無(wú)誤。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: