上一個文章研究的是fidder抓取抖音用戶信息的,有興趣可以點開我的頭像看上次的帖子。帖子回復的不多,大多數人回復說竟然看不懂。這次再來聊一聊。

盡量用通俗的語言說一下,可能我說的有些錯誤,首先說一下fidder,fidder的功能很強大,可以截取手機模擬器裏抖音與伺服器之間的網路請求數據,我們要抓的是https協議請求。現在瀏覽的網站都多數是http和https請求,https就是比http請求要安全很多,截取https需要安裝證書,fiider有自帶的證書,下載下來安裝到安卓模擬器即可。具體細節百度咯,安裝好過後fidder上就看到抖音的各種網路請求了。

現在上圖我們看到了抖音的各種網路請求,我們看看數據類型為MP4的鏈接複製出來,點擊右鍵複製url,複製到瀏覽器打開.

嘿嘿嘿,沒有水印的呀,接下來我就開始研究怎麼把這個視頻保存下來呢?一開始想保存這個視頻網址,但是過幾天就涼涼了,403錯誤,沒有許可權訪問了。只能保存文件了,找到思路跟上一個帖子一樣的,找到請求網址的規律

發現視頻網址的host地址有好幾個,本來是構建數組的,判斷oSession.host在不在那個數組裡面,但是出現了不能訪問靜態內容的錯誤,只能用 或 判斷了,跟javascript的語法差不多,還好fidderscript有自動補全,輸入oSession.Save ,後面會有很多選項,然後就把所有的返回內容都保存下來了。

最大的就是MP4了,把後綴名改成MP4就能直接播放了。。接下來就要循環讀取這個文件了,有點問題暫時還沒有解決,我寫的python讀取文件的腳本可能只會讀取到文件的一半,很少的文件不能播放,因為fidder存文件不能一瞬間存完把,需要時間。只能把按鍵精靈的腳本滑動延遲調到十秒才能減少不能播放的文件。

import time
import os
l=
while True:
# 二進位的讀取第一行
with open("E:\apytemp\ResponseBody.mp4",rb) as f:
detail=f.readline()
# 判斷是否重複
if detail==l:
pass
else:
# 判斷文件大小是否大於500k
if os.stat(E:\apytemp\ResponseBody.mp4).st_size>500:
# 以時間設置文件名稱
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
# 讀文件
with open("E:\apytemp\ResponseBody.mp4", rb)as e:
str = e.read()
# 換個文件夾存文件
with open(video\ + now + ".mp4", "wb") as q:
q.write(str)
print("ok")
time.sleep(0.5)
else:
pass
l = detail
time.sleep(1)

接下來寫個按鍵精靈的小腳本,模擬人工點擊滑動,清除緩存,重啟app,寫了小個界面。

Dim intX,intY
Dim tb1,tb2
tb1 = ReadUIConfig("輸入框1")
tb2 = ReadUIConfig("輸入框2")
//
Do
For tb1
Swipe 120, 300, 120, 100
Delay tb2*1000

Next
Call qc()
Loop
//清除緩存
Function qc()

Tap 292, 466
Delay 1000
FindMultiColor 0,0,0,0,"B1ADAC","2|0|B1ADAC,4|0|B4B0AF,-2|0|B5B1B0,-23|-1|B6B2B1,-51|-2|483E3C,-52|-2|9B9594,-74|5|9F9A99,-77|5|483E3C,-77|4|483E3C",0,0.9,intX,intY
If intX > -1 And intY > -1 Then
Tap intX, intY
Delay 1000
Tap 38, 335
Delay 1000

End If
Tap 263, 314
Delay 1000
Tap 54, 234
Delay 2000
Call cq()

End Function
//重啟
Function cq()
KillApp "com.ss.android.ugc.aweme"
Delay 5000
RunApp "com.ss.android.ugc.aweme"
Delay 10000
End Function

昨天晚上掛了一晚上,早上按鍵精靈調試模式暫停了,下個400多個,有幾個不能播放。先上傳到阿里雲裡面準備弄個網站或者小程序玩玩

代碼:koala9527/douyin,微信公眾號也會同步:Pythontest


推薦閱讀:
相關文章