您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么用Python抓包工具查看周邊拼車情況”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用Python抓包工具查看周邊拼車情況”吧!
對于APP類的爬蟲,首先想到的就是抓包,macOS下常用的就是Charles和mitmproxy這兩款工具了,而mitmproxy由于支持攔截和腳本又深得我愛,用法的話這里就不具體展開介紹了。
啟動mitmweb(mitmproxy家那個有頁面的兄弟)抓包工具,手機上打開某拼車APP客戶端,查看附近訂單(已提前認證車主,并切換到車主身份)
對應一下就可以發現,查詢附近訂單的接口URL就是這個getNearbyBookingRideList,于是我很天真地就拿著這個接口,和抓包數據,就去請求了
結果人家告訴我
因為客戶端APP有個簽名算法,根據POST給服務器的參數計算的,除非我破了人家APP,然后把算法給找出來,想想還是算了,費神費力(主要是我壓根不會)!
這個法子行不通,只能換個法子了
前面提到mitmproxy有個帶web界面的兄弟叫mitmweb,其實還有一個支持腳本的兄弟叫mitmdump,寫好腳本
import json def response(flow): # 這個別問為啥了,必須這么寫 url = 'http://jiaruwoshiurl.com' if url in flow.request.url: text = json.loads(flow.response.content) print(text)
把腳本存為 111.py,然后終端執行命令:
mitmdump -s 111.py -p 8080
剩下要做的就是不斷去某拼車APP上劃幾下,至于數據那塊,就交給Dump兄弟就好了
嗯,看到了嘛~想看哪,手指就滑哪,越滑越有!
再接下來就是需要把我們抓到的數據存起來,以備后期使用,這里我用的是Mongodb,雖然也是第一次用,為了方便點,另外寫了個插入數據的方法,再在爬蟲文件里面調用。
import pymongo def insert_nearbyroute(info): client = pymongo.MongoClient('127.0.0.1', 27017) # 連接數據庫 db = client.dida # 選擇dida這個數據庫 nearbyroute_collection = db.nearby # 選擇集合,不存在的話自動創建(對應mysql的表概念) nearbyroute_collection.update({:info['id']}, info, True) # 插入數據,我這里用的是更新語句,意思是如果id已經存在的話,就不執行該條數據的插入動作,可以有效去重
再到我們數據庫看看,已經碩果累累了,不夠的話就再多滑幾下。
數據抓取的思路大概就是這樣,因為沒時間搗鼓所以就沒上APP自動化,其實可以搞個 模擬器+按鍵精靈,或者appium,就是太懶了怕麻煩,上班的時候劃一劃就當運動了
時間問題,暫時沒做數據分析,不過數據挺干凈的,也不需要處理啥 關鍵字Mongodb、Pandas、Pyecharts 拿了周六杭州跨城順風車數據結合阿里云的DataV做了個簡單的飛線圖,會動的那種,點擊閱讀原文可以查看動圖。
到此,相信大家對“怎么用Python抓包工具查看周邊拼車情況”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。