自动采集编写(3.自动化工具.autojs模拟用户抖音列表接口的部署)

优采云 发布时间: 2021-10-17 13:21

  自动采集编写(3.自动化工具.autojs模拟用户抖音列表接口的部署)

  目的:采集抖音 热门视频(自动化)

  抖音的防爬技术特别好,据说有专门的防爬部门。所以通过编写代码直接访问抖音接口,是达不到目的的。数据只能通过模拟真实的用户行为来获得。

  我的主要实现方式是:通过在Android模拟器中模拟用户滑动,滑动过程中产生的数据被网络代理拦截

  开发中用到的工具:

  硬件:需要一台备用电脑,

  软件:auto.js、Android模拟器、代理服务项目、按钮向导、抓包工具

  发展历程

  1 确定要使用采集数据的抖音哪个接口

  考虑从主页推荐列表或用户的工作列表中获取数据。

  我使用fiddler抓包工具,

  抓取首页的推荐列表界面,发现数据格式为Protobuf,是一种传输速度更快,占用空间更少的数据格式。解析这种格式需要支持文件。所以我们无法解析和放弃页面推荐列表。

  尝试从用户的工作列表界面抓包,发现是json格式,可以获取视频信息。所以决定获取用户作品列表采集。

  

  

  2.自动化工具auto.js模拟用户滑动抖音列表

  为了保证采集视频的热度高,我们的用户作品并非都是采集。所以我们模拟了用户的行为:在首页的推荐视频中滑动,滑动到超过10万赞的视频,向左滑动,进入视频作者的作品列表。

  首先在电脑上安装安卓模拟器,我用的是天天模拟器

  在模拟器中安装抖音和auto.js应用,编写auto.js自动化脚本,并运行脚本。

  

  这是我写的 auto.js 脚本。供你参考

<p>var myDate = new Date();

var hours = myDate.getHours();

if (hours >= 0) {

console.log("去启动抖音");

launchApp("抖音");

sleep(7000)

while (true) {

是否满足赞();

左滑进入个人中心();

判断是否出去();

关闭崩溃应用();

toast("quit persion center ")

退出个人中心();

//Swipe(10, device.height / 2,device.width / 2, device.height / 2, 10, 300);//向右滑

sleep(2000);

toast("hua dong cao zuo ")

Swipe(device.width / 2, device.height / 1.5, device.width / 2, 10, 500); //向下滑

sleep(3000);

每10分钟重启();

取消弹框();

判断是否出去();

关闭崩溃应用();

}

}

function 是否满足赞() {

log("是否满足赞")

try {

//不满足1万的赞划走

while (isTrue()) {

Swipe(device.width / 2, device.height / 1.5, device.width / 2, 10, 500); //向下滑

toast("Dig not satisfied")

sleep(1500);

退出个人中心();

}

} catch (e) {}

}

function isTrue() {

// var u = id("aen").find()

// var e = u.length - 2

// var tv = u[e];

return false;

var like = 0;

try {

var b = id("com.ss.android.ugc.aweme:id/aer").find();

var a = b[1].desc()

if (a && a.indexOf("喜欢") > -1) {

like = a.substring(a.indexOf("喜欢") + 2, a.indexOf(",按钮"));

toastLog(like);

}

} catch (e) {}

if (like.indexOf("w") == -1) {

return true;

} else {

return like.substr(0, like.indexOf("w")) -1) {

if (parseInt(totallike.substr(0, totallike.length - 1)) >= 1000) {

//关注作者

payAttention(totallike, totalfans, uniqueid, authorname);

}

}

//总点赞数或粉丝数大于1亿 关注作者并抓取更多

if (authorname && totallike.indexOf("亿") > -1 || totalfans.indexOf("亿") > -1) {

//关注作者

loadMore = payAttention(totallike, totalfans, uniqueid, authorname);

}

//粉丝量大于500W 关注作者, 如果粉丝量大于1000W 抓取作者更多作品

if (authorname && totalfans.indexOf("w") > -1) {

var fansCount = parseInt(totalfans.substr(0, totalfans.length - 1));

if (fansCount >= 500 && fansCount = 1000) {

loadMore = payAttention(totallike, totalfans, uniqueid, authorname);

}

}

if (loadMore) {

sleep(4000);

log("into swipe action ")

for (var i = 0; i

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线