用Python抓包工具查看周邊拼車情況

說起Python爬蟲,很多人第一個(gè)反應(yīng)可能會是Scrapy或者Pyspider,但是今天文章里用到是Python下一個(gè)叫Mitmproxy的抓包工具,對付一些非常規(guī)的數(shù)據(jù)獲取還是很有效的。

不過凡事都是有利有弊,一來麻煩,二來呢不會自己動,還得手動(或者按鍵精靈也可以啊)。

自從滴滴的拼車業(yè)務(wù)全國下線之后,一直專注拼車的某拼車APP在背后默默替老大哥照顧著那些可憐的乘客。上周五下班的時(shí)候,本來想用某拼車APP搭個(gè)順風(fēng)車回家,沒想到下班高峰期的時(shí)候,某拼車APP居然掛了,過了十幾分鐘才緩過來,心里好奇,就想爬一下某拼車APP的數(shù)據(jù),看看周邊上下班拼車的情況。

知己知彼,百戰(zhàn)不殆

對于APP類的爬蟲,首先想到的就是抓包,macOS下常用的就是Charlesmitmproxy這兩款工具了,而mitmproxy由于支持?jǐn)r截和腳本又深得我愛,用法的話這里就不具體展開介紹了。

啟動mitmweb(mitmproxy家那個(gè)有頁面的兄弟)抓包工具,手機(jī)上打開某拼車APP客戶端,查看附近訂單(已提前認(rèn)證車主,并切換到車主身份)

image

對應(yīng)一下就可以發(fā)現(xiàn),查詢附近訂單的接口URL就是這個(gè)getNearbyBookingRideList,于是我很天真地就拿著這個(gè)接口,和抓包數(shù)據(jù),就去請求了

image

結(jié)果人家告訴我

{“code”:205,”message”:”簽名錯(cuò)誤!”}

因?yàn)榭蛻舳薃PP有個(gè)簽名算法,根據(jù)POST給服務(wù)器的參數(shù)計(jì)算的,除非我破了人家APP,然后把算法給找出來,想想還是算了,費(fèi)神費(fèi)力(主要是我壓根不會)!

這個(gè)法子行不通,只能換個(gè)法子了

神器在手,天下我有

前面提到mitmproxy有個(gè)帶web界面的兄弟叫mitmweb,其實(shí)還有一個(gè)支持腳本的兄弟叫mitmdump,寫好腳本

image

把腳本存為 111.py,然后終端執(zhí)行命令:

mitmdump -s 111.py -p 8080

剩下要做的就是不斷去某拼車APP上劃幾下,至于數(shù)據(jù)那塊,就交給Dump兄弟就好了

嗯,看到了嘛~想看哪,手指就滑哪,越滑越有!

image

再接下來就是需要把我們抓到的數(shù)據(jù)存起來,以備后期使用,這里我用的是Mongodb,雖然也是第一次用,為了方便點(diǎn),另外寫了個(gè)插入數(shù)據(jù)的方法,再在爬蟲文件里面調(diào)用。

image

再到我們數(shù)據(jù)庫看看,已經(jīng)碩果累累了,不夠的話就再多滑幾下。

image

數(shù)據(jù)抓取的思路大概就是這樣,因?yàn)闆]時(shí)間搗鼓所以就沒上APP自動化,其實(shí)可以搞個(gè) 模擬器+按鍵精靈,或者appium,就是太懶了怕麻煩,上班的時(shí)候劃一劃就當(dāng)運(yùn)動了

數(shù)據(jù)展示

時(shí)間問題,暫時(shí)沒做數(shù)據(jù)分析,不過數(shù)據(jù)挺干凈的,也不需要處理啥

關(guān)鍵字Mongodb、Pandas、Pyecharts

拿了周六杭州跨城順風(fēng)車數(shù)據(jù)結(jié)合阿里云的DataV做了個(gè)簡單的飛線圖,會動的那種,點(diǎn)擊閱讀原文可以查看動圖。

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容