「docker實戰篇」python的docker- 抖音視頻抓取(上)(24)

原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
原文連接地址:「docker實戰篇」python的docker- 抖音視頻抓取(上)(24)node


上節主要說了經過多模擬器的並行進行數據的抓取,在沒有docker環境的狀況下,本次主要針對抖音的視頻數據進行抓取,不管你是我的喜愛,仍是項目需求,你們對抖音的視頻數據都很感興趣,好比喜歡那個漂亮的小姐姐都想把他的視頻保存下來,方便往後的觀看,慢慢的膝上。上次說的appium完成抖音粉絲數據的抓取其實也能夠完成抖音視頻數據的抓取,抓取的思路也是想通,經過mitmdump進行數據解析,appium模擬滑動。若是一臺設備抓取比較慢,能夠用多臺模擬器來進行抓取。此次主要用的另外一種方式來進行抓取。python


(一)分析分享頁面

谷歌瀏覽器打開:www.douyin.com/share/user/…正則表達式

  • 1.1刷新頁面

按照圖例步驟查看返回的數據
url地址:www.douyin.com/aweme/v1/aw…docker


  • 1.2 json.cn中查看返回的數據格式

1.2.1返回了10條json


1.2.2發現解析發現瀏覽器


1.2.3 打開aweme.snssdk.com/aweme/v1/pl…bash


1.2.4 也就是經過 www.douyin.com/aweme/v1/aw… 能夠獲取視頻的地址app

1.2.5 解析裏面的參數ide

https://www.douyin.com/aweme/v1/aweme/post/?
user_id=89923219116&
count=21&
max_cursor=0&
aid=1128&
_signature=4vFoMhAYvqksmu7gHnkAsuLxaC&
dytk=2be712bf2e309b4b7947b459667ea3a1
複製代碼

1.2.6裏面一共6個參數post

user_id
count
max_cursor
aid
_signature
dytk
複製代碼

1.2.7 下一步就是找到這6個參數的原因從哪裏獲取到的。
確定有老鐵問,既然地址就知道了,直接用地址獲取不完了,那麼麻煩幹啥? 我來截圖解密,由於url地址是有時效性的



1.2.7.1 user_id 是url中的最後一個字段,能夠直接獲取


1.2.7.2 count 直接寫死 21


1.2.7.3 max_cursor 直接寫死 0,獲取寫時間戳



1.2.7.4 aid 直接寫死 1128



1.2.7.5 dytk 直接能夠經過頁面獲取,經過正則表達式


1.2.7.6 _signature 比較麻煩,這裏一塊兒分析下

1.2.7.6.1 查詢_signature的信息,搜索:_signature


1.2.7.6.2 點擊搜索出來的2個文件中的第一個,而後按照我說的步驟點擊


1.2.7.6.3 輸入ctrl+f 輸入_signature 查詢,發現_signature = signature 經過signature賦值過來的。


1.2.7.6.4 signature 查找出來3個地方

初始化


賦值signature


1.signature = _bytedAcrawler.sign(nonce),
2.nonce 其實就是user_id,user_id在頁面已經獲取到了
3.須要瞭解下_bytedAcrawler.sign

1.2.7.6.5 _bytedAcrawler 怎麼來的,在經過ctrl+f
_bytedAcrawler = require("douyin_falcon:node_modules/byted-acrawler/dist/runtime")


1.2.7.6.5 douyin_falcon:node_modules/byted-acrawler/dist/runtime 又是怎麼來的


1.2.7.6.6 點擊查找 douyin_falcon:node_modules/byted-acrawler/dist/runtime 對應的文件,發現是經過這個方法。還混淆了。


1.2.7.6.7 下圖箭頭處【雙擊】 就能夠將源碼裏面的混淆,進行瀏覽器的解析成爲代碼。



1.2.7.6.8 下面的是高混淆的,沒法解密的。


1.2.6.9 瞭解__M的源碼,通過分析(具體咋分析,根據名稱經驗和代碼),找到base.js原來就是__M的定義



PS:下一步說說解析這塊,如何破解獲取到_signature

相關文章
相關標籤/搜索