一篇文章教會(huì)你用Python抓取抖音App熱點(diǎn)數(shù)據(jù)
大家好,我是皮皮。
今天給大家分享一篇簡(jiǎn)單的安卓app數(shù)據(jù)分析及抓取方法。以抖音為例,我們想要抓取抖音的熱點(diǎn)榜數(shù)據(jù)。
要知道,這個(gè)數(shù)據(jù)是沒有網(wǎng)頁版的,只能從手機(jī)端下手。
首先我們要安裝charles抓包APP數(shù)據(jù),它是一款收費(fèi)的抓包修改工具,易上手,數(shù)據(jù)請(qǐng)求容易控制,修改簡(jiǎn)單,抓取數(shù)據(jù)的開始暫停方便等優(yōu)勢(shì),網(wǎng)上也有漢化版,下載地址為http://www.zdfans.com/html/42074.html,一路默認(rèn)安裝就ok了。
安裝完成后要設(shè)置代理,依次點(diǎn)擊代理——代理設(shè)置。
然后在手機(jī)端設(shè)置代理,如下圖所示:
在保證手機(jī)和電腦在同一局域網(wǎng)的情況下,代理服務(wù)器主機(jī)名設(shè)為電腦的ip地址,端口設(shè)為8888。
最后在電腦端和手機(jī)端分別安裝證書。
電腦端安裝方法:依次點(diǎn)擊幫助——ssl代理——安裝charles root證書 ,按下圖進(jìn)行安裝。
手機(jī)端安裝方式:幫助——ssl代理——在移動(dòng)設(shè)備或遠(yuǎn)程瀏覽器上安裝charles root證書。
再在模擬器瀏覽器中輸入chls.pro/ssl,會(huì)自動(dòng)下載手機(jī)端證書
最后再手機(jī)端依次點(diǎn)擊設(shè)置——安全——從SD卡安裝。
為證書命名,點(diǎn)擊確認(rèn)就安裝成功了。
打開charles,然后打開抖音app的熱點(diǎn)榜界面,在charles很容易就找到了數(shù)據(jù)接口,一次就返回了50條數(shù)據(jù),如下圖所示。
它的url信息如下圖所示。
此接口只能返回這一時(shí)刻的熱點(diǎn)數(shù)據(jù),要想返回新的數(shù)據(jù),就要變換參數(shù)信息,但是App端的數(shù)據(jù)接口參數(shù)都比較復(fù)雜,這里我們不再深入分析。
為了解決這一問題,我們可以用appium定時(shí)模擬操控手機(jī),然后用mitmproxy把數(shù)據(jù)攔截下來(關(guān)于appium、mitmproxy的簡(jiǎn)介與安裝網(wǎng)上有很多教程,這里不再贅述)
Appium腳本如下圖所示:
這個(gè)自動(dòng)化測(cè)試腳本比較簡(jiǎn)單,主要是重復(fù)獲取熱點(diǎn)最新信息。
Mitmproxy腳本如圖:
有4點(diǎn)需要注意的地方:
1.用mitmproxy抓包前,先把手機(jī)代理ip端口設(shè)置為8080,設(shè)置方法同上;
2.要想在此腳本運(yùn)行外置函數(shù),必須加上前兩行,要不然會(huì)出錯(cuò);
3.腳本中if url in flow.request.url為數(shù)據(jù)流判斷條件,如果url在該數(shù)據(jù)流的url請(qǐng)求數(shù)據(jù)中,則判斷該數(shù)據(jù)為抖音app熱點(diǎn)數(shù)據(jù);
4.最后在腳本所在路徑運(yùn)行以下程序:
最后再運(yùn)行appium自動(dòng)化測(cè)試腳本,就大功告成了。
本文轉(zhuǎn)載自微信公眾號(hào)「IT共享者」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系IT共享者公眾號(hào)。