抖音有些评论相当的精彩,所以这次用python加fiddler来下载评论多的视频和相应的评论
刚开始打算用fiddler来抓抖音手机APP的包,按如下配置:
1、fiddler只能抓http/https协议的包,默认只能抓http协议包
如果要抓https协议包,需要如下配置:
Tools-Options-HTTPS-依次勾选全部
2、Actions里面-Trust Root Certificate-确定 来trust信用证书
3、Connections,设置端口号,fiddler默认8888
如果是手机用数据线连电脑就要把里面的 允许远程电脑连接也点上
4、如果是模拟器里装抖音或者手机装抖音并通过WIFI连接网络来抓包就在模拟器或者手机里设置网络代理为装fiddler的电脑IP
5、在手机上打开装fiddler的电脑的IP:8888,下载证书安装
按网上这个步骤来会导致抖音上不了网,按分析有可能是抖音应用证书问题,用了SSL Pinning主要就是来防止中间人攻击的,安卓应用会在HTTPS建立时对服务端返回的证书作校验,如果不一致则无法建立连接,我们用到的抓包工具fiddler或burpsuite实际上就是在起一个中间人的作用。具体可以参考https://zhuanlan.zhihu.com/p/511136064,以后再按这个来试下,今天还是按抖音网页版来抓包分析吧,
此段代码放到fiddler中的script的response中
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
if (oSession.uriContains("https://aweme.snssdk.com/aweme/v1/general/search/single/")){
var strBody=oSession.GetResponseBodyAsString();
var sps = oSession.PathAndQuery.slice(-58,);
//FiddlerObject.alert(sps)
var timestamp=new Date().getTime();
var filename = "D:\抖音评论资料" + "/" + sps + timestamp + ".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();
替换掉上面的网址和保存地址,这样网页版刷抖音时会把评论的JSON文件下载下来,视频信息JSON也同理操作
下载后用python分析JSON数据,把评论数大于36000的视频下载,并把相应的评论,视频信息插入数据库,相关代码见pycharm代码库
后面将把视频和评论在网站上展示出来。