一、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爬取抖音視頻就完成了
如有疑問,歡迎在下面評論,或者私信我
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143487.html
標籤:Python
上一篇:Python基礎-04元組
