AutoJs实现刷宝短视频的思路详解


Posted in Javascript onMay 22, 2020

Auto.js 是个基于 JavaScript 语言运行在Android平台上的脚本框架。Auto.js主要工作原理是基于辅助服务AccessibilityService。

今天主要和大家分享一下刷刷刷过程中提示直播的窗体关闭问题,

我的手机判断一下android.widget.RelativeLayout控件的数量。9个是正常的超过了就是有直播提醒。当然不同的手机可能不一样,大家自己修改一下吧!

let liveVideo=className ("android.widget.RelativeLayout").find();
 if(liveVideo.length>9){
  clickScreen();
 }

其实还有一个思路:就是每一次都点击一下屏幕。

总体代码:

auto.waitFor();
let see_count = 1000;// rawInput('请输入滑动次数',"3000");
app.launchApp('刷宝短视频');
sleep(4000);
console.show(); //开启日志(悬浮窗权限)
authorityCancleTip();//点击权限取消按钮
for (var i = 1; i < see_count; i++) {
 toast("刷宝短视频滑动" + i + '次');
 console.log("刷宝短视频滑动" + i + '次' + "总计:" + see_count + "次");
 shuabaoCloseAD();
 randomDownSildeScreen();
 randomHeart();
 randomFollow();
 slideScreenDown(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.1, 400);
}
//退到主页面
home();
/**
 * 刷宝关闭广告
 */
function shuabaoCloseAD() {
 let liveVideo=className ("android.widget.RelativeLayout").find();
 if(liveVideo.length>9){
  clickScreen();
 }
 if (id("hotspot_imgdismiss").exists()) {
  id("hotspot_imgdismiss").findOnce().click();
 }
}
/**
 * 屏幕向下滑动并延迟8至12秒
 */
function slideScreenDown(startX, startY, endX, endY, pressTime) {
 swipe(startX, startY, endX, endY, pressTime);
 delayTime = random(8000, 10000);
 sleep(delayTime);//模仿人类随机时间
}
/**
 *点击一下屏幕
 */
function clickScreen() {
 var x = device.width - device.width * 0.2;
 var y = device.height - device.height * 0.2;
 toastLog("点击屏幕" + x + ":" + y);
 let clickResult = click(x, y);
 toastLog(clickResult);
}
function authorityCancleTip() {
 if(text("取消").exists()){
  text("取消").findOnce().click();
 }
 if (id("cancel").exists()) {
  id("cancel").findOnce().click();
 }
}
/**
 * 随机上滑(防止被判定是机器)上滑后停留时间至少是10S,造成假象表示是对内容感兴趣
 * 点赞和关注先不搞。
 */
function randomUpSildeScreen() {
 let randomIndex = random(1, 40);
 if (randomIndex == 1) {
  console.log("随机上滑被执行了");
  pressTime = random(200, 500);
  swipe(device.width / 2, 500, device.width / 2, device.height - 200, 700);
  delayTime = random(8000, 10000);
  sleep(delayTime);
 }
}
/**
 * 连续下滑对上一个无兴趣
 * 其实得和上滑做个排他,既然无兴趣不要在上滑
 */
function randomDownSildeScreen() {
 let randomIndex = random(1, 20);
 if (randomIndex == 1) {
  console.log("连续下滑被执行了");
  swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.1, 400);
  sleep(2000);
  swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.1, 400);
  delayTime = random(8000, 10000);
  sleep(delayTime);
 }
}
/**随机点赞并休息一秒 */
function randomHeart() {
 index = random(1, 10);
 if (index == 6) {
  if(id("praise").exists()){
   id("praise").findOnce().click();
  }
 }
}
function randomFollow() {
 index = random(1, 10);
 if (index == 6) {
  if(id('tv_ad_attention').exists()){
   id("tv_ad_attention").findOnce().click();
  }else{
   if(text("关注").exists()){
    text("关注").findOnce().click();
   }
  }
 }
}

总结

到此这篇关于AutoJs实现刷宝短视频的思路详解的文章就介绍到这了,更多相关AutoJs 刷宝短视频内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript div 遮罩层封锁整个页面
Jul 10 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
Jan 22 Javascript
在JavaScript中typeof的用途介绍
Apr 11 Javascript
JS构造函数与原型prototype的区别介绍
Jul 04 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
Dec 07 Javascript
AngularJS页面传参的5种方式
Apr 01 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
网页中的图片查看器viewjs使用方法
Jul 11 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
May 14 jQuery
原生js实现日历效果
Mar 02 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
Jul 21 Javascript
jQuery实现鼠标拖动图片功能
Mar 04 jQuery
jquery更改元素属性attr()方法操作示例
May 22 #jQuery
微信小程序转化为uni-app项目的方法示例
May 22 #Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 #Javascript
jquery绑定事件 bind和on的用法与区别分析
May 22 #jQuery
JS变量提升原理与用法实例浅析
May 22 #Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 #Javascript
js事件机制----捕获与冒泡机制实例分析
May 22 #Javascript
You might like
set_include_path在win和linux下的区别
2008/01/10 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
js里面的变量范围分享
2020/07/18 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
浅谈Python 的枚举 Enum
2017/06/12 Python
Django自定义分页效果
2017/06/27 Python
Numpy之random函数使用学习
2019/01/29 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
PyTorch中的Variable变量详解
2020/01/07 Python
用python解压分析jar包实例
2020/01/16 Python
python中Django文件上传方法详解
2020/08/05 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
中专毕业生自我鉴定范文
2013/11/09 职场文书
客服文员岗位职责
2013/11/29 职场文书
打架检讨书100字
2014/01/19 职场文书
2015年安全生产责任书
2015/01/30 职场文书
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android
Nginx 常用配置
2022/05/15 Servers
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技