背景: 現(xiàn)在移動(dòng)短視頻大火,很多的內(nèi)容消費(fèi)都在手機(jī)的客戶端上進(jìn)行。為了監(jiān)控類似抖音短視頻平臺上的風(fēng)險(xiǎn)數(shù)據(jù)(主要是視頻標(biāo)題、視頻內(nèi)容、評論區(qū)),采用爬蟲技術(shù)手段來實(shí)時(shí)爬取內(nèi)容。 ? 技術(shù)方案: python(腳本程序) mitmproxy(代理服務(wù)器) appium(自動(dòng)化工具) ? 原理: 采用抓包的方式,通過設(shè)置代理服務(wù)器、以及設(shè)置https證書,讓所有的http、https的請求和響應(yīng)全部通過這個(gè)代理服務(wù)器來轉(zhuǎn)發(fā),然后利用腳本對轉(zhuǎn)發(fā)的數(shù)據(jù)進(jìn)行處理。 ? 和fiddler、Charles等抓包工具對比,mitmproxy最大的優(yōu)勢是它提供了python腳本的對接入口,可以利用python來處理爬取到的數(shù)據(jù)。例如:下載視頻文件,存儲關(guān)鍵信息到我們自己的DB上等。 ? ? 實(shí)現(xiàn)爬取抖音視頻及標(biāo)題數(shù)據(jù) ? 第一步:安裝環(huán)境及工具 ? 安裝python環(huán)境 ? 安裝mitmproxy代理工具 ? 安裝appium自動(dòng)化工具(目前沒用到) 略 ? 第二步:設(shè)置代理相關(guān) (為支持https請求需安裝證書) ? 1.安裝完mitmproxy后,會在如下目錄生成證書文件。 2.安裝mitmproxy的pc證書 雙擊mitmproxy-ca.p12證書進(jìn)行安裝,彈出如下窗口: 點(diǎn)擊下一步,如下: 點(diǎn)擊下一步,如下: 點(diǎn)擊下一步,如下:(注意這里密碼默認(rèn)為空) 點(diǎn)擊下一步,如下。再點(diǎn)擊完成即可。 ? 3.安裝mitmproxy的手機(jī)客戶端證書 ? 把上圖中mitmproxy-ca-cert.pem文件導(dǎo)入手機(jī)隨便一個(gè)位置,接著找到手機(jī)的設(shè)置入口,根據(jù)各自手機(jī)的情況,反正就是找到并安裝上這個(gè)證書即可。(這里不細(xì)述,蘋果手機(jī)需信任之類的操作) ? 4.設(shè)置手機(jī)代理,把手機(jī)請求指向本地電腦的mitmproxy代理。 cmd-->ipconfig-->IPv4地址 設(shè)置手機(jī) ? 第三步:啟動(dòng)代理,爬取數(shù)據(jù) ? 編寫python爬取抖音內(nèi)容腳本douyin.py,存放在site-packages目錄下: ? ? ?
? 以加載python的方式啟動(dòng)mitmproxy代理: (需先cd到site-packages目錄,然后執(zhí)行如下命令)
? 需要注意: 1)douyin.py存放在python的安裝目錄下,不然會報(bào)requests模塊找不到。 第四步:手工滑動(dòng)抖音,實(shí)時(shí)查看抖音視頻數(shù)據(jù)。 (后面可借助appium自動(dòng)化工具模擬滑動(dòng)動(dòng)作) ? 根據(jù)抓包,分析抖音數(shù)據(jù)結(jié)構(gòu): mitmdump上實(shí)時(shí)打印的抓包數(shù)據(jù): 實(shí)時(shí)下載的抖音視頻: ? 展望及不足: 1)python腳本比較簡陋,現(xiàn)在還不支持?jǐn)?shù)據(jù)過濾及入庫。 2)只是簡單的技術(shù)驗(yàn)證,如上面提到的,抖音的視頻地址可能會變,到時(shí)就需要維護(hù)成本。 3)如需落地監(jiān)控,需訓(xùn)練視頻內(nèi)容、郵件通知、視頻查閱(可通過定時(shí)上傳百度云實(shí)現(xiàn)視頻播放)等。 ? 相關(guān)參考資料: mitmproxy 使用指南: ? 使用 mitmproxy python 做攔截代理:(詳盡) blog.wolfogre.com/posts/usage… ? python下載安裝:(3.6以上) ? 安裝mitmproxy以及遇到的坑和簡單用法: ? mitmproxy的安裝教程 ? mitmproxy下載界面: mitmproxy下載界面:(推薦) ? 使用python爬取抖音app視頻: ? 靠譜的Pycharm安裝詳細(xì)教程: ? appium下載界面: ? Charles的安裝及使用過程:(代理服務(wù)器) ? Charles和mitmproxy代理設(shè)置 ? mitmproxy的下載及證書配置(簡書) ? Pycharm No module named requests 的解決方法: ? linux下載抖音模塊: ? win10 python爬取數(shù)據(jù):(推薦) ? 破解版Charles的安裝: ? 來源:https://www./content-4-459451.html |
|