andorid 原生 点击设备的返回按钮页面数据被清空_百度移动点击 | 基于操控原生Android控件的移动百度点击器初尝试...

本文介绍了作者使用Autojs进行Android自动化的一个初步尝试,通过JavaScript开发脚本实现了在移动设备上模拟点击百度搜索结果。文章详细讲解了识别点击目标、处理换IP、坐标点击以及应对不同Android版本的问题,同时也探讨了模拟器和云控的解决方案。
摘要由CSDN通过智能技术生成

来源:从宇宙中来/编辑:硬核的GoGo闯


注意!这只是在学习Autojs中做的一个小项目,十分粗糙,无法用于商用。

众所周知,本渣最近从0基础开始,学习群控技术,争取早日实现日发外链300万,迈出成为直推大佬的一小步。

f42d691e6545f66ff155811caae255fa.png

之前在文章中,有对比过各类主流Android自动化语言的区别:

引流脚本 | 按键精灵、Auto.js、EasyClick、Airtest的区别与对比

原本打算直接学Easyclick,但因Autojs文档看上去更简单一些,于是先整Autojs了。

无论Autojs还是Easyclick,都需要JavaScript来开发脚本,但本渣不会。

于是本渣用一天学习JavaScript的基础知识,又用一天学习Autojs文档,今天花了3小时,做出了第一个小项目,就是这个百度移动点击,对Android自动化有了初步的理解。

ad5260506b12c5dea0afc103b732e166.gif 01

原理解析

开发环境

  • 编辑器:VsCode

  • 脚本软件:Autojs 7.0.1 Pro

  • 开发语言:JavaScript

  • Android设备:红米(真机无root,没用模拟器)

  • Android版本:6.0

点击目标识别

在PC端,通常是先遍历所有搜索结果的DIV,并匹配是否包含点击目标的主域名或熊掌号名称

e5f7e442729d8cb34eb878e70288a499.png

如果包含,则提取对应的id,操控浏览器滚动到能够展现id的位置,在触发点击。

而移动端识别点击目标,和PC端差不多,但仅通过Autojs,拿不到Android原生浏览器里展示的Html

Autojs是通过Android UI控件识别点击目标

671faa4128824329e68aa140252f5ad5.png

406e12be189211eb4c41116af1b9deb3.png

逻辑是,遍历当前界面所有的Android UI控件,并提取text属性,如果包含目标域名,则说明当前页面包含点击目标。

然后通过text="gogochuang.com"定位目标,click()来触发点击

18377c04243934fc59a30f5af495ae27.png

换IP

安装一个vpn app,点击换ip即可。

由于存在vpn质量不佳,经常出现ip速度慢打不开网页的情况,需要添加异常处理的代码。

44195e861b1b7223ddc023b53da05661.png

以上可实现粗糙的移动端点击,百度统计能够接受正常数据。

ff25b3502d2257915844d22e1a408915.png

02

当前硬件环境无法完成的部分

坐标点击

目前是通过UI控件点击,点击触发永远是这个位置

bc779c5c27675e94e2e7b7e5f70f9a55.png

这就与真实用户的行为不符了,解决的办法也简单。

  • 返回text="www.gogochuang.com"控件左上角的x/y坐标

  • 获取屏幕宽度,假设1080px

f09f08b964aa4eed8386e34e6fcec3e7.png

然后可以,在x向右1080/3,y向上200px的范围内,随机点击一个位置。

But,Autojs坐标点击的方法,只能在Android 7.0以上的版本有效,我的手机是Android 6.0的,无法使用这个方法

点击分页目标

目前,只能点击第一页的目标,如果第一页没有目标,下滑到底部,点击“下一页”

96f5ddb0368aaa703a2158b68df79bcd.png

这个功能也十分简单,但还是版本问题,Android 7.0的手机,才能使用autojs中滑动的方法

摸除浏览器APP数据

浏览器APP每次启动,还保留上一次访问baidu的cookie,保险的话,应该清空数据。

这涉及到Android底层的操作,可以使用一些改机软件来完成。

aa80e1cf5e4eb2c079910f866611039f.png

But,需要手机root+xposed框架,我这个真机root就有些麻烦了。

安卓模拟器

以上问题,用一个Android 7.0版本,已root的手机,均可解决。

市面上众多模拟器,已经支持这个环境。

But,坑爹的来了,Autojs真机能连上,但模拟器连不上。

03

终极解决办法

  • 找台Android 7.0+已Root的真机

  • 改用Easyclick(真机、模拟器都能连)

  • 租支持Android 7.0+已Root的云控,远程操控

我决定把autojs文档剩下的部分学完,就转投Easyclick门下了。

GoGo闯于方庄


后台回复「移动点击」,拿源码,供同学们学习。

a102f9dfa92ba16134506ff899521427.png

往期推荐

胡说八道 | 百度SEO移动端快排的挑战

引流脚本 | 按键精灵、Auto.js、EasyClick、Airtest的区别与对比

SEO优化 | SEO如何研究排名规律

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值