python結合fiddler批量爬取抖音APP里面的視頻


一、Fiddler的安裝與設置

Fiddler官網:https://www.telerik.com/download/fiddler

電子郵件隨便填一下就可以了,按照安裝提示一直點確定即可安裝。

 

打開Fiddler,在Tools---Options處進行設置,如圖:

 

ps:這里的端口8888,是待會與手機/模擬器進行連接要使用到的(手機也可以,這里用模擬器示范)

 

在電腦下載一個手機模擬器,這里我用的是夜神模擬器

下載地址:https://www.yeshen.com/,下載后安裝即可

 

打開模擬器,進入設置-----WLAN,會發現已經連上了一個網絡,鼠標長按,選擇修改網絡

選擇高級選項,代理改為手動,然后輸入你電腦的ip和8888端口號保存即可

 

 

在模擬器中打開瀏覽器,輸入:http://你的電腦ip地址:8888,如圖所示,下載證書並打開安裝

證書名隨便取一個名字就好了,若沒有安裝證書,將無法抓取HTPPS請求

 

二、抓取抖音數據包

打開Fiddler軟件,Rules------Customize Rules進入Fiddler ScriptEditor頁面

定位到OnBeforeResponse函數下面,編寫抓取數據的規則

 

1處是Fiddler中捕捉到的抖音數據包的路徑,抖音官方可能時不時會更改路徑,具體以實際分析為准

2處是保存地址,更改為你們自己的保存地址。代碼放在下面,方便復制。

if (oSession.uriContains("https://api3-core-c-hl.amemv.com/aweme/v1/aweme/post/")){
            var strBody=oSession.GetResponseBodyAsString();
            var sps = oSession.PathAndQuery.slice(-58,);
            //FiddlerObject.alert(sps)
            var filename = "H:/software/fid" + "/" + sps + ".json";
            var curDate = new Date();   
            var sw : System.IO.StreamWriter;  
            if (System.IO.File.Exists(filename)){  
                sw = System.IO.File.AppendText(filename);  
                sw.Write(strBody); 
            }  
            else{  sw = System.IO.File.CreateText(filename); 
                sw.Write(strBody);
                }  
            sw.Close(); 
            sw.Dispose(); 
            }

 

打開模擬器中的抖音,搜索刀某刀進入個人頁面,滑動抖音,使屏幕整個瀏覽完全部作品

這個時候Fiddler加載出了js對象,被我們前面編寫的抓取規則捕捉到,保存在本地

 

 

分析得到的json文件,找出視頻url的位置,接下來用python代碼下載視頻就輕松多了

下載成功結果如圖,刀某刀的個人主頁視頻就保存下來了,而且還是無水印視頻

 

 

下面附上python代碼,保存路徑記得改為自己電腦的

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('H:/software/fid/')  #獲取文件夾內所有json包名

count = 1  #計數,用來作為視頻名字

for videos in videos_list:  #循環json列表,對每個json包進行操作
    a = open('H:/software/fid/{}'.format(videos),encoding='utf-8')  #打開json包
    content = json.load(a)['aweme_list'] #取出json包中所有視頻

    for video in content:  #循環視頻列表,選取每個視頻
        video_url = video['video']['play_addr']['url_list'][1] #獲取視頻url,每個視頻有4個url,我選的第2個
        videoMp4 =  requests.get(video_url,headers=headers).content #獲取視頻二進制代碼
        with open('H:/software/video/{}.mp4'.format(count),'wb') as f: #以二進制方式寫入路徑,記住要先創建路徑
            f.write(videoMp4)  #寫入
            print('視頻{}下載完成'.format(count)) #下載提示
        count += 1 #計數+1

 

至此,Python結合Fiddler爬取抖音視頻就完成了

如有疑問,歡迎在下面評論,或者私信我

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM