php 爬取抖音評論數據


1.安裝抓包工具(filder)和模擬器(夜神模擬器),可參考博文:https://blog.csdn.net/weixin_42223833/article/details/110009432。安裝包和詳細配置都有。

注意:抖音有ssl驗證,夜神模擬器安裝xposed和JustTrustMe之后,才能正常抓包,不然打開抖音是沒有網的。

2.破解X-grogon簽名算法。因為抖音有簽名驗證機制,要想直接使用抖音接口,必須破解簽名算法!這里有能力的大佬可以通過反編譯APP去破解,當然我是沒有這個能力的,只能通過抓包工具把數據下載下來。

配置filder下載數據包:

 

    static function OnBeforeResponse(oSession: Session) {
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
        //將關鍵接口標紅
        if (oSession.HostnameIs("aweme.snssdk.com")) {
            oSession["ui-color"] = "red";
        }
        
        //抓取接口的數據
        if (oSession.uriContains("https://aweme.snssdk.com/aweme/v2/comment/list/")){
            var strBody=oSession.GetResponseBodyAsString();
            var sps = oSession.PathAndQuery.slice(-58,);
            var host=oSession.PathAndQuery;
            var begin=host.indexOf('aweme_id');
            var end=host.indexOf('&count=20');
            var name=host.Substring(begin,end);
            
            var date = new Date();
            var seperator1 = "-";
            var year = date.getFullYear();
            var month = date.getMonth() + 1;
            var strDate = date.getDate();
            if (month >= 1 && month <= 9) {
                month = "0" + month;
            }
            if (strDate >= 0 && strDate <= 9) {
                strDate = "0" + strDate;
            }
            var currentdate = year + seperator1 + month + seperator1 + strDate;
            var filetitle=currentdate + '_' + name;
            
            //FiddlerObject.alert(currentdate);
            var filename = "E:/www/phpstudy_pro/WWW/douyin/commend" + "/" + filetitle + ".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();
        }
        
    }

注意:因為抖音每次只顯示20條評論,所以需要通過模擬器的宏操作不斷下拉獲取下一頁數據:

 

 錄制一段下拉 的操作,不斷執行就好。

3.處理數據

數據已經下載好了,接下來只要處理,提取出自己需要的數據就行了。

 

 這里我使用的是php語言處理數據。

<?php
$dir=dirname(__FILE__);
$dir=str_replace('\\','/',$dir);
$listArr = glob($dir.'/commend/*.json');

$arr=[];
foreach ($listArr as $k=>$file){
    $json=file_get_contents($file);
    $data=json_decode($json,true);
    //評論
    if (!empty($data['comments'])){
        $comments=$data['comments'];
        foreach ($comments as $id=>$comment){
            //評論
            $text=$comment['text'];
            //評論的用戶
            $user=$comment['user'];
            $nickname=$user['nickname'];//昵稱
            $signature=$user['signature'];//簽名
            $avatar=$user['avatar_168x168']['url_list'][1];//頭像
            $lable=$comment['label_text'];//身份
            //評論id
            $cid=$comment['cid'];
            //評論時間
            $createTme=$comment['create_time'];
            //視頻id
            $awemeId=$comment['aweme_id'];
            //數據整合
            $arr[$cid]=[
                'awemeId'=>$awemeId,
                'text'=>$text,
                'nickname'=>$nickname,
                'signature'=>$signature,
                'avatar'=>$avatar,
                'lable'=>$lable,
                'createTme'=>$createTme,
            ];
        }
    }
    //評論為空則跳出循環
    continue;
}

echo "<pre>";
print_r($arr);
echo "</pre>";

 


免責聲明!

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



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