|
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>";
♥ 作者:离岸少年
♠ 出处:https://www.cnblogs.com/jackzhuo/
♣ 本博客大多为学习笔记或读书笔记,本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
来源:https://www.cnblogs.com/jackzhuo/p/14286681.html |