小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

爬取抖音數(shù)據(jù)實(shí)踐方案《基礎(chǔ)版》

 印度阿三17 2019-09-19

背景:

現(xiàn)在移動(dòng)短視頻大火,很多的內(nèi)容消費(fèi)都在手機(jī)的客戶端上進(jìn)行。為了監(jiān)控類似抖音短視頻平臺(tái)上的風(fēng)險(xiǎn)數(shù)據(jù)(主要是視頻標(biāo)題、視頻內(nèi)容、評(píng)論區(qū)),采用爬蟲技術(shù)手段來實(shí)時(shí)爬取內(nèi)容。

?

技術(shù)方案:

python(腳本程序) mitmproxy(代理服務(wù)器) appium(自動(dòng)化工具)

?

原理:

采用抓包的方式,通過設(shè)置代理服務(wù)器、以及設(shè)置https證書,讓所有的http、https的請(qǐng)求和響應(yīng)全部通過這個(gè)代理服務(wù)器來轉(zhuǎn)發(fā),然后利用腳本對(duì)轉(zhuǎn)發(fā)的數(shù)據(jù)進(jìn)行處理。

?

和fiddler、Charles等抓包工具對(duì)比,mitmproxy最大的優(yōu)勢(shì)是它提供了python腳本的對(duì)接入口,可以利用python來處理爬取到的數(shù)據(jù)。例如:下載視頻文件,存儲(chǔ)關(guān)鍵信息到我們自己的DB上等。

?

?

實(shí)現(xiàn)爬取抖音視頻及標(biāo)題數(shù)據(jù)

?

第一步:安裝環(huán)境及工具

?

安裝python環(huán)境

www.python.org/downloads/

?

安裝mitmproxy代理工具

mitmproxy.org/

?

安裝appium自動(dòng)化工具(目前沒用到)

?

第二步:設(shè)置代理相關(guān)

(為支持https請(qǐng)求需安裝證書)

?

1.安裝完mitmproxy后,會(huì)在如下目錄生成證書文件。

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ī)請(qǐng)求指向本地電腦的mitmproxy代理。

cmd-->ipconfig-->IPv4地址

設(shè)置手機(jī)

?

第三步:?jiǎn)?dòng)代理,爬取數(shù)據(jù)

?

編寫python爬取抖音內(nèi)容腳本douyin.py,存放在site-packages目錄下:

?

?

?

#douyin.py
import json,os
import requests
def response(flow):
    #分析數(shù)據(jù)發(fā)現(xiàn)這是抖音舊的視頻請(qǐng)求地址(估計(jì)是防爬取定時(shí)換的吧)
    #url='https://api./aweme/v1/aweme/post/'
    url='https://api-hl./aweme/v1/aweme/post/'
    #篩選出以上面url為開頭的url
    if flow.request.url.startswith(url):
        text=flow.response.text
        #將已編碼的json字符串解碼為python對(duì)象
        data=json.loads(text)
        #print(data)
        #在charles中剛剛看到每一個(gè)視頻的所有信息
        #都在aweme_list中
        video_url=data['aweme_list']
        path='D:/crawler_data/douyin'
		#path='D:\crawler_data\douyin'
        if not os.path.exists(path):
            os.mkdir(path)
        for each in video_url:
            #視頻描述
            desc=each['desc']
            url=each['video']['play_addr']['url_list'][0]
            # print(desc,url)
            filename=path '/' desc '.mp4'
            # print(filename)
            req=requests.get(url=url,verify=False)
            with open(filename,'ab') as f:
                f.write(req.content)
                f.flush()
                print(filename,'下載完畢')復(fù)制代碼

?

以加載python的方式啟動(dòng)mitmproxy代理:

(需先cd到site-packages目錄,然后執(zhí)行如下命令)

mitmdump -s douyin.py復(fù)制代碼

?

需要注意:

1)douyin.py存放在python的安裝目錄下,不然會(huì)報(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腳本比較簡(jiǎn)陋,現(xiàn)在還不支持?jǐn)?shù)據(jù)過濾及入庫。

2)只是簡(jiǎn)單的技術(shù)驗(yàn)證,如上面提到的,抖音的視頻地址可能會(huì)變,到時(shí)就需要維護(hù)成本。

3)如需落地監(jiān)控,需訓(xùn)練視頻內(nèi)容、郵件通知、視頻查閱(可通過定時(shí)上傳百度云實(shí)現(xiàn)視頻播放)等。

?

相關(guān)參考資料:

mitmproxy 使用指南:

foofish.net/mitmproxy-t…

?

使用 mitmproxy python 做攔截代理:(詳盡)

blog.wolfogre.com/posts/usage…

?

python下載安裝:(3.6以上)

www.python.org/downloads/

?

安裝mitmproxy以及遇到的坑和簡(jiǎn)單用法:

www.jianshu.com/p/af381ef13…

?

mitmproxy的安裝教程

zhuanlan.zhihu.com/p/33747453

?

mitmproxy下載界面:

github.com/mitmproxy/m…

mitmproxy下載界面:(推薦)

mitmproxy.org/

?

使用python爬取抖音app視頻:

blog.csdn.net/weixin_4171…

?

靠譜的Pycharm安裝詳細(xì)教程:

www.cnblogs.com/dcpeng/p/90…

?

appium下載界面:

github.com/appium/appi…

?

Charles的安裝及使用過程:(代理服務(wù)器)

www.cnblogs.com/littlek1d/p…

?

Charles和mitmproxy代理設(shè)置

www.cnblogs.com/knighterran…

?

mitmproxy的下載及證書配置(簡(jiǎn)書)

www.jianshu.com/p/036e5057f…

?

Pycharm No module named requests 的解決方法:

blog.csdn.net/u010475354/…

?

linux下載抖音模塊:

/post/5be136…

?

win10 python爬取數(shù)據(jù):(推薦)

zhuanlan.zhihu.com/p/41492085

?

破解版Charles的安裝:

blog.csdn.net/weixin_4284…

?

來源:https://www./content-4-459451.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多