教你用 Python+Fiddler 爬取并下載抖音小姐姐視頻
準(zhǔn)備工作:
(1)手機(jī)(安卓、ios 都可以)/ 安卓模擬器,今天主要以安卓模擬器為主,操作過程一致。
( 2 ) 抓包工具:Fiddel 下載地址:
https://www.telerik.com/download/fiddler
(3)編程工具:pycharm
一、fiddler 配置
在 tools 中的 options 中,按照圖中勾選后點(diǎn)擊 Actions
選擇允許監(jiān)控遠(yuǎn)程鏈接,端口可以隨意設(shè)置,只要別重復(fù)就行,默認(rèn) 8888
二、安卓模擬器 / 手機(jī)配置
首先查看本機(jī)的 IP:在 cmd 中輸入 ipconfig,記住這個 IP
手機(jī)配置:配置已連接的 WiFi,代理選擇手動,然后輸入上圖 ip 端口號為 8888
模擬器配置:設(shè)置中長按已連接 wifi,代理選擇手動,然后輸入上圖 ip 端口號為 8888
證書名稱隨便設(shè),可能還需要設(shè)置一個鎖屏密碼。
三、抖音抓包
打開抖音,然后觀察 fiddler 中所有的包
1、視頻數(shù)量,每個包中只有這么幾個視頻,那如何抓取更多呢?
這時候需要借助模擬器的模擬鼠標(biāo)翻頁,讓模擬器一直翻頁,這樣就不斷會出現(xiàn) json 包了。
一種方法可以手動復(fù)制粘貼,但是這樣很 low。
所以我們使用 fidder 自帶的腳本,在里面添加規(guī)則,當(dāng)視頻 json 包刷出來后自動保存 json 包。
自定義規(guī)則包:
鏈接:https://pan.baidu.com/s/1wmtUUMChzuSDZFYGSyUhCg
提取碼:7z0l
點(diǎn)擊規(guī)則腳本,然后將自定義規(guī)則放在如圖所示位置:
(1)第一行的網(wǎng)址:
這個是從視頻包的 url 中摘出來的,抖音會時不時更新這個 url,所以不能用了也要去更新:
比如現(xiàn)在的已經(jīng)和昨天不同了,記著修改。
接下來在 pycharm 中寫腳本獲取 json 包里的視頻鏈接:
導(dǎo)包:
import os,json,requests
偽裝頭:
headers = { ‘ User-Agent ’ : ‘ Mozilla/5.0 ( Windows NT 10.0; Win64; x64 ) AppleWebKit/537.36 ( KHTML, like Gecko ) Chrome/72.0.3626.119 Safari/537.36 ’ }
邏輯代碼:
videos_list = os.listdir ( 'C:/Users/HEXU/Desktop/ 抖音數(shù)據(jù)爬取 / 抖音爬取資料 /raw_data/' ) # 獲取文件夾內(nèi)所有 json 包名
count = 1 # 計數(shù),用來作為視頻名字
for videos in videos_list: # 循環(huán) json 列表,對每個 json 包進(jìn)行操作 a = open ( './ 抖音爬取資料 /raw_data/{}'.format ( videos ) ,encoding='utf-8' ) # 打開 json 包 content = json.load ( a ) [ 'aweme_list' ] # 取出 json 包中所有視頻
for video in content: # 循環(huán)視頻列表,選取每個視頻 video_url = video [ 'video' ] [ 'play_addr' ] [ 'url_list' ] [ 4 ] # 獲取視頻 url,每個視頻有 6 個 url,我選的第 5 個 videoMp4 = requests.request ( 'get',video_url,headers=headers ) .content # 獲取視頻二進(jìn)制代碼 with open ( './ 抖音爬取資料 /VIDEO/{}.mp4'.format ( count ) ,'wb' ) as f: # 以二進(jìn)制方式寫入路徑,記住要先創(chuàng)建路徑 f.write ( videoMp4 ) # 寫入 print ( ' 視頻 {} 下載完成 '.format ( count ) ) # 下載提示 count += 1 # 計數(shù) +1
本文來自精品專欄《爬蟲案例合集》
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時
需注明出處:新網(wǎng)idc知識百科