如何獲取手機app內資料來源資訊?接下來以taptap手機app為例,獲取單機排行榜資料。
配置環境首先在電腦上安裝好 mitmproxy ,安裝方法可以參考官網,以下是以macOS為例。
brew install mitmproxypython3 和 requests 庫, openpyxl 庫,參考如下。
pip3 install requests pip3 install openpyxl還要引入一些系統庫
import requestsfrom openpyxl import Workbookfrom openpyxl.drawing.image import Imageimport osimport randomimport time將手機和電腦連入同一個 wifi , 並在手機上設定網路代理(一般在設定>>WLAN>>當前詳情 內)。設定代理伺服器主機名為電腦的地址,服務埠為8080。
手機上用瀏覽器開啟網頁,安裝證書。
資料獲取
安裝好 mitmproxy 之後, 直接在電腦命令終端中執行 mitmproxy 。
然後在手機上開啟TapTap應用,選擇發現->單機。可以在電腦終端看到許多http請求。
在手機上多翻幾頁,多點幾個連結詳情,可以發現 from 引數是翻頁引數。那麼在 python3 中如何獲取呢?參考如下
使用 requests 的 get 方法可以傳入 hearders 和 引數。因為返回的是 json 可以直接呼叫 json() 方法解析結構。
資料分析通過檢視返回 json 裡的內容和手機應用內的顯示資料,大致可以找出對應資料的欄位。
一起看下在 python 中如何處理的吧。
資料儲存這次我們用 Excel 儲存資料,用到 openpyxl 庫的處理。另外,我們還可以插入 icon 圖示,可以先把圖片下載到 icon 資料夾中,再讀取資料時把圖片插入表中。
先初始化表格第一行的內容,新建一個 icon 資料夾。
接著在讀取每一條資料時,下載 icon 圖片,將對應資料插入表中。
結果預覽:
小結首先通過 mitmproxy 代理獲取資料鏈接和引數,接著對用手機的資料查詢我們需要的引數,編寫對應的處理程式碼,儲存在 excel 表中。
本文僅供個人交流學習使用,請勿用於其他用途。