来源:从宇宙中来/编辑:硬核的GoGo闯
注意!这只是在学习Autojs中做的一个小项目,十分粗糙,无法用于商用。
众所周知,本渣最近从0基础开始,学习群控技术,争取早日实现日发外链300万,迈出成为直推大佬的一小步。
之前在文章中,有对比过各类主流Android自动化语言的区别:
引流脚本 | 按键精灵、Auto.js、EasyClick、Airtest的区别与对比
原本打算直接学Easyclick,但因Autojs文档看上去更简单一些,于是先整Autojs了。
无论Autojs还是Easyclick,都需要JavaScript来开发脚本,但本渣不会。
于是本渣用一天学习JavaScript的基础知识,又用一天学习Autojs文档,今天花了3小时,做出了第一个小项目,就是这个百度移动点击,对Android自动化有了初步的理解。
01原理解析
开发环境
编辑器:VsCode
脚本软件:Autojs 7.0.1 Pro
开发语言:JavaScript
Android设备:红米(真机无root,没用模拟器)
Android版本:6.0
点击目标识别
在PC端,通常是先遍历所有搜索结果的DIV,并匹配是否包含点击目标的主域名或熊掌号名称
如果包含,则提取对应的id,操控浏览器滚动到能够展现id的位置,在触发点击。
而移动端识别点击目标,和PC端差不多,但仅通过Autojs,拿不到Android原生浏览器里展示的Html
Autojs是通过Android UI控件识别点击目标
逻辑是,遍历当前界面所有的Android UI控件,并提取text属性,如果包含目标域名,则说明当前页面包含点击目标。
然后通过text="gogochuang.com"定位目标,click()来触发点击
换IP
安装一个vpn app,点击换ip即可。
由于存在vpn质量不佳,经常出现ip速度慢打不开网页的情况,需要添加异常处理的代码。
以上可实现粗糙的移动端点击,百度统计能够接受正常数据。
02当前硬件环境无法完成的部分
坐标点击
目前是通过UI控件点击,点击触发永远是这个位置
这就与真实用户的行为不符了,解决的办法也简单。
返回text="www.gogochuang.com"控件左上角的x/y坐标
获取屏幕宽度,假设1080px
然后可以,在x向右1080/3,y向上200px的范围内,随机点击一个位置。
But,Autojs坐标点击的方法,只能在Android 7.0以上的版本有效,我的手机是Android 6.0的,无法使用这个方法
点击分页目标
目前,只能点击第一页的目标,如果第一页没有目标,下滑到底部,点击“下一页”
这个功能也十分简单,但还是版本问题,Android 7.0的手机,才能使用autojs中滑动的方法
摸除浏览器APP数据
浏览器APP每次启动,还保留上一次访问baidu的cookie,保险的话,应该清空数据。
这涉及到Android底层的操作,可以使用一些改机软件来完成。
But,需要手机root+xposed框架,我这个真机root就有些麻烦了。
安卓模拟器
以上问题,用一个Android 7.0版本,已root的手机,均可解决。
市面上众多模拟器,已经支持这个环境。
But,坑爹的来了,Autojs真机能连上,但模拟器连不上。
03终极解决办法
找台Android 7.0+已Root的真机
改用Easyclick(真机、模拟器都能连)
租支持Android 7.0+已Root的云控,远程操控
我决定把autojs文档剩下的部分学完,就转投Easyclick门下了。
GoGo闯于方庄
后台回复「移动点击」,拿源码,供同学们学习。
往期推荐
胡说八道 | 百度SEO移动端快排的挑战
引流脚本 | 按键精灵、Auto.js、EasyClick、Airtest的区别与对比
SEO优化 | SEO如何研究排名规律