宣告: 本文只做技術研究,請勿用于任何非法用途,
最近有不少小伙伴投入短視頻賽道,也出現不少第三方資料商,為大家提供抖音爬蟲資料,
小伙伴們有沒有好奇過,這些資料是如何獲取的,普通技術小白能否也擁有自己的抖音爬蟲呢?
本文會全面解密抖音爬蟲的幕后原理,不需要任何編程知識,還請耐心閱讀,
1. 什么是 HTTP 請求
在制作爬蟲前,首先需要了解,爬蟲資料是怎么獲得的,
以抖音 APP 為例,我們從抖音上看視頻,和我們從瀏覽器上訪問網站原理是一樣的, 都是通過標準的 HTTP 請求來互動,
那么什么是 HTTP 請求呢?
HTTP 請求其實非常簡單,可以理解為規定好格式的一組文字訊息,請求訊息中一般包含三樣東西:
- 請求網址 (URL),例如抖音 APP 后臺網址
- 你要做的事情 (請求引數), 例如是瀏覽,點贊還是上傳視頻等
- 你的身份資訊 (Cookie) 和校驗資訊 (Token),表明你是誰,你請求合法嗎
抖音服務器收到 HTTP 請求后,會先驗證合法性,然后按照你的要求,配合你的身份和地理位置等,給你回復規定格式的文本訊息,
2. 抖音 HTTP 請求流程
我們以安卓 10.6 版首頁推薦視頻為例,來看一個真實的抖音請求流程:
上圖是通過抓包軟體抓取的首頁推薦視頻請求資料,可以看出,當你一打開抖音,APP 就會自動向抖音服務器發送一條 HTTP 請求訊息,
圖中藍色箭頭可以看出,請求是向 aweme-hl.snssdk.com/aweme/v2/fe… 這個網址發送的 (URL),
黃色箭頭標出該 HTTP 請求包含了地理位置資訊 (請求引數),以及身份資訊 (Cookie),
抖音服務器收到請求后,就知道你是誰,你在哪里,你要干什么,然后會將紅色箭頭中的視頻推薦資料回復給你,
點開回復資料,可以看到其中包含了視頻 ID,標題,描述,點贊量,評論等多種資訊,
有的讀者可能注意到一串
\350\241\250\346\203\205這樣奇怪的數字,這其實是一種叫 UTF-8 的編碼方式,
可以簡單理解為每三組 \xxx 組成一個中文字符,比如上面這串數字翻譯過來就是表情兩個字,
抖音 APP 通過讀取回復訊息,就知道該給我們展示哪些視頻了,
但此時并沒有結束,APP 還要根據回傳的視頻 ID,額外做兩次 HTTP 請求,以獲得需要展示的視頻資料和縮略圖資訊,這樣才能真正給我們展示首頁推薦視頻,
3. HTTP 包到底長什么樣?
小伙伴們讀到這里,應該明白整個抖音資料的請求流程了,俗話說紙上得來終覺淺,我們就以抖音點贊為例,手把手教大家怎樣抓取和查看一個真實的 HTTP 請求包,
1. 下載抓包軟體
首先,需要下載 HttpCanary 抓包軟體,可以從 Google Play 或者 Apkpure 里下載,安裝完成后,重啟手機,就可以開始抓包了,
2. 抓取點贊請求包
先打開抖音 APP,再打開 HttpCanary,開始抓取抖音資料,如下圖所示:
隨便找個視頻點贊,可以看到 HttpCanary 在不停的抓包,點開 HttpCanary,找帶有 /aweme/v1/commit 字樣的請求包:
3. 查看 HTTP 請求包
點開請求包,可以看到,這其實是一個普通 HTTP 報文,紅線部分表示需要點贊的視頻 ID,
請求資訊中除了包含視頻 ID 外,還包含了你的身份資訊,這樣抖音才知道這個視頻是誰在點贊,
然后 APP 通過查看回復訊息,判斷點贊請求是否成功,如果成功,就可以將視頻邊上的小紅心點亮了,
通過點贊資料包,我們可以清楚看到,抖音所有瀏覽,點贊,評論,發布視頻等,其實都是通過一個個 HTTP 完成的,
4. 親手做一個自動點贊爬蟲
講了那么多 HTTP 請求原理,對于普通小白來說,我們怎樣才能做一個屬于自己的爬蟲呢?
其實很簡單,只要照貓畫虎,復制抖音 HTTP 請求,再原樣發送就可以,
比如我想獲取推薦視頻,只要復制抖音推薦視頻的 HTTP 請求,再原樣發送就可以拿到推薦資料了,
本節我們就以上文中的點贊資料為例,請大家親手做一個自動點贊的爬蟲,
讓我們先回到抖音,把剛才那個視頻的點贊取消,這樣才能看到爬蟲的最終效果,
復制資料包
進入 HttpCanary,找到剛才的點贊包,點擊右上角分享按鈕,并選擇分享 cURL,如下圖所示:
粘貼資料包
復制完成后,HttpCanary 會提示檢測到一個 cURL 請求,選擇執行即可,
第一個自動點贊爬蟲
可以看到,HttpCanary 發送了一模一樣的點贊請求給抖音,點開查看回復資料,如果和上文的回傳值一樣,就表明你的點贊爬蟲完成啦,
此時回到抖音 APP,查看我喜歡的視頻,就可以看到剛才取消點贊的視頻又回來了,
5. 做一個更全能的爬蟲
通過剛才的練習,可以看到,只要我們能原樣復制抖音資料包,就可以拿到所有想要的資料,
例如,復制首頁視頻請求,我們就能拿到推薦視頻的標題,說明,點贊數量,評論數量等各種各樣的資料,
小伙伴們也許有疑問,我們怎樣才能搜集全部抖音資料呢?鑒于目前抖音的火爆程度,想要全部收集完其實不太可能,也沒有必要,
聰明的小伙伴一定想到了,我們只要向抖音不停發送上劃請求,就可以搜集很多首頁推薦資料了,
如果你想做的更全能一些,還可以復制查看單用戶視頻的請求,把所有熱門賬號的視頻資料都采集下來,就基本能替代第三方資料商了,
此外,你還可以修改 HTTP 請求,比如在首頁請求中修改不同的地理位置,就可以看到不同地區的推薦視頻和同城視頻了,
6. 抖音守護神
看到這里,相信很多小伙伴已經躍躍欲試,準備大干一番了,但是別急,程式員小哥哥們可不會輕易讓你們得逞,如果大家能隨意點贊評論的話,抖音生態系統早就被玩壞了,
那么難點在哪里呢?我們還是回到剛才的請求包上,仔細看下圖:
其實抖音每一次 HTTP 請求,都會帶上 x-khronos 和 x-gorgon 這兩個引數,抖音會在每次請求中校驗這兩個引數,如果校驗不通過,那么請求就無效啦,
這兩個引數都干了什么呢?
第一個 x-khronos,是標識請求時間,采用 Unix 時間格式,比如 1586446631,表示離 1970 年 1 月 1 日 0 點 0 分過去 1586446631 秒,也就是 2020 年 4 月 9 日 23 點 37 分,如果抖音收到的請求時間離實際時間太遠,就知道這個請求已經失效,
第二個 x-gorgon,用來校驗請求合法性,如果你在請求中篡改了任何資料,比如篡改了點贊 ID,或者身份資訊 (Cookie),這個請求都會被抖音查出是偽造的,就能有效防止用戶亂刷資料了,
好奇寶寶們一定會問,這個 x-gorgon 是怎么算出來的呢?理論上和法律上來說,只有抖音小哥哥們才知道,不過一般情況,都是通過請求時間,請求 URL 和 Cookie 等資訊綜合計算得出的(以上純屬瞎猜,請遵守當地法律),
7. 總結
簡單一句話概括,只需要復制抖音 HTTP 請求,并完成 x-gorgon 校驗,理論上你就可以做一個全能的抖音爬蟲,不過再次提醒小伙伴們,一定要謹遵當地法律,也不要濫用爬蟲給平臺造成負擔,
TiToData:專業的短視頻、直播資料介面服務平臺,網址: TiToData
覆寫主流平臺:抖音,快手,小紅書,TikTok,YouTube
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/234194.html
標籤:其他
