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 相关文章推荐
jquery 定位input元素的几种方法小结
Jul 28 Javascript
使用apply方法实现javascript中的对象继承
Dec 16 Javascript
浅谈JavaScript中的String对象常用方法
Feb 25 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
javascript中活灵活现的Array对象详解
Nov 30 Javascript
Bootstrap select多选下拉框实现代码
Dec 23 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
jQuery获取随机颜色的实例代码
May 21 jQuery
如何理解Vue的v-model指令的使用方法
Jul 19 Javascript
JS实现可针对算术表达式求值的计算器功能示例
Sep 04 Javascript
利用 JavaScript 构建命令行应用
Nov 17 Javascript
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
2款PHP无限级分类实例代码
2015/11/11 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP实现微信提现功能
2018/09/30 PHP
jquery cookie插件代码类
2009/05/26 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
python中Flask框架简单入门实例
2015/03/21 Python
Python匹配中文的正则表达式
2016/05/11 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
详解px单位html5响应式方案
2018/03/08 HTML / CSS
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
医院院务公开实施方案
2014/05/03 职场文书
公司证明怎么写
2014/09/22 职场文书
公司员工离职证明书
2014/10/04 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
写给领导的感谢信
2015/01/22 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
Django程序的优化技巧
2021/04/29 Python
React中的Context应用场景分析
2021/06/11 Javascript
关于python类SortedList详解
2021/09/04 Python