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("ihotel.meituan.com")) {
            oSession["ui-color"] = "#00FFFF";
        }
        
        //抓取接口的数据
        if (oSession.uriContains("https://ihotel.meituan.com/hbsearch/HotelSearch")){
            var strBody=oSession.GetResponseBodyAsString();
            var host=oSession.PathAndQuery;
            //FiddlerObject.alert(host);
            var begin=host.indexOf('cateId=');
            var end=host.indexOf('distance=');
            var name=host.Substring(begin,50);
            
            //FiddlerObject.alert(name);
            
            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 dir="D:/phpstudy_pro/WWW/data/mt/" + currentdate;
            
            var filename = dir + "/" + filetitle + ".json";
            var curDate = new Date();
            var sw : System.IO.StreamWriter;
            
            //文件夹不存在,则自动创建
            if (!System.IO.Directory.Exists(dir))
            {
                System.IO.Directory.CreateDirectory(dir);
            }
            
            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>";
复制代码

 

posted @   离岸少年  阅读(4080)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示