之前看到群里说抖音评论有点难度,现在抖音有网页版了,发现抓取大量评论有滑块出现,还是转向app,在模拟器上安装抖音app,注意不要弄最新版的,好像有防止检测的,设置好fiddler,随便选取一个视频点开评论,在fiddler中查看对应评论的数据包,如图所示
发现一个数据包有20个评论,那就很好办,直接在fiddler中设置个规则来截取该评论的数据包,即在FiddlerScript中实现二次开发,直接上代码
if (oSession.uriContains("https://aweme.snssdk.com/aweme/v2/comment/list/?")){
var strBody=oSession.GetResponseBodyAsString()
var timestamp=new Date().getTime()
var filename = "C:/Users/14499/Desktop/" + "dypl/" + timestamp + ".json";
var curDate = new Date();
var sw7 : System.IO.StreamWriter;
if (System.IO.File.Exists(filename)){
sw7 = System.IO.File.AppendText(filename);
sw7.Write(strBody);
}
else{ sw7 = System.IO.File.CreateText(filename);
sw7.Write(strBody);
}
sw7.Close();
sw7.Dispose();
}
这段代码加的位置注意下,位置如图所示
写好了注意点击左上角的save script这个保存按钮,接下来你会发现每次向下滑动,对应的数据包就会保存到文件夹上dypl的json文件,为了防止json文件名冲突,这里使用时间戳来命名即可,记下来的目标就是实现快速下滑使得获取大量评论数据,为了模拟鼠标滚轮的下滑操作,这里使用了pyautogui这个库的scroll方法,能够快速的实现刷新评论的操作,直接上代码
import pyautogui
import time
time.sleep(4)
for i in range(0,200000):
pyautogui.scroll(-5000)
time.sleep(0.1)
pyautogui.scroll(-5000)
time.sleep(0.1)
注意的是,当你模拟器打开抖音时,fiddler页打开,然后点开评论,鼠标放在抖音app的评论上,运行上述代码,为了给你鼠标放到app的时间,这里使用time.sleep等待了4秒钟,然后可以实现快速的刷新了,大约我跑了10分钟,截取了986个json文件,每个文件20个评论,也就差不多2万的数据,当然,你可以采集更久,十万或者几十万数据轻轻松松,过程完全没验证码出现,后面就是解析截取的json数据了,直接上代码
import json,os
path = r'C:\Users\14499\Desktop\dypl'
files = os.listdir(path)
print(len(files))
for i in files:
all_path = '{}\{}'.format(path,i)
with open(all_path, 'r', encoding='utf-8') as f:
text = f.read()
msgs = json.loads(text)['comments']
for j in msgs:
print(j)
print(len(msgs))
运行效果如下所示
10分钟大约2万数据,速度还是很快的。完全无压力
点击此处登录后即可评论