我爬取分析美團網(wǎng),原來北京上海Top10美食是它們
數(shù)據(jù)爬取三步曲之前方有坑
工作需求需要采集OTA網(wǎng)站的美食數(shù)據(jù),某個城市的飯店類型情況等。對于老饕來說這不算個事。。。然而***的結(jié)果是中午晚飯都沒有時間去吃了。。。情況如下
Chrome F12直接定位get請求,response的結(jié)果是json,研究下get的參數(shù)發(fā)現(xiàn)有個奇怪的參數(shù)token?!
先不管他直接修改參數(shù)翻頁請求數(shù)據(jù)!!!
數(shù)據(jù)爬取三步曲之開始填坑
問題來了!糾結(jié)半天后發(fā)現(xiàn)這個token是有時效的,而且是js生成的。。。這也不是問題,get請求行不通我們還有selenuim。悲催的是美團真的是大廠直接封殺selenuim
數(shù)據(jù)爬取三步曲之將坑填平
又回到原點。沒辦法只能從token下手了經(jīng)過一番查找發(fā)現(xiàn)一個js文件
嗯。。。好吧繼續(xù),因為之前沒有用python直接調(diào)用js,百度一番發(fā)現(xiàn)pyexecjs、PyV8等都可以。悲催的是我的python2.7安裝pyexecjs后一直不能正常使用,PyV8沒有問題。只是PyV8安裝過程太心酸
廢話不多說直接上代碼:
我把js文件存放到本地python直接使用PyV8直接解析執(zhí)行token的js事件
程序自動生成token,迫不及待接續(xù)解析json數(shù)據(jù)入庫
測試完成先抓取北京和上海數(shù)據(jù)進行數(shù)據(jù)可視化
在統(tǒng)計師發(fā)現(xiàn)美團還是對數(shù)據(jù)經(jīng)行了限制每個類型的餐飲場所最多顯示每頁32個一共32頁。也就是32*32=1024個
數(shù)據(jù)可視化
北京、上海美食各類型數(shù)量占比情況
看以看出川湘、燒烤烤肉和西餐在兩地的數(shù)量占比都是最多的。擼串、麻小果然不分南北。
數(shù)據(jù)中有每家店的品論數(shù)量我們可以從中分析出每一類美食的總評論情況來展示受歡迎情況,因展示效果我們只展示top10
北京、上海市top10美食情況
下面我們對比下兩地同類美食的平均價格的情況:
魔都消費水平已經(jīng)超過帝都啦。。。哈哈哈
以上只是個人簡單分析不代表權(quán)威發(fā)布僅供娛樂,歡迎各界朋友交流學(xué)習(xí)。
好了我的泡面好了。。。嗯真香!!!
作者:Kying,西二旗程序單身汪一枚。從事智慧旅游、數(shù)據(jù)挖掘。新晉python 小白,希望與志同道合者一起煮酒論英雄,數(shù)據(jù)森麟特邀作者。