又是一年双十一,淘宝的预热活动越来越复杂,各位亲玩得可还开心?繁华散尽,我们不妨反思,如何利用自动化工具,既不需要耗费太多的时间和精力,又能够参加到这样的狂欢中来。
当然,至少今年双十一你已经用不上这篇文章中所描述的自动化方法,这样看来这篇文章已经迟到。然而,了解自动化思维,并掌握自动化工具的使用和编写,这一技能无论何时都不会过时。这篇文章更多的是希望传达一种思路,而非提供一个工具。
今年的活动除了盖楼攒星星,每个人每天还要在手机淘宝、支付宝、手机天猫这几个 APP 上完成大量的浏览任务,来赚取「喵币」升级。赚喵币的主要方式是浏览指定的店铺页面或者活动页面,并停留 15-30 秒钟,每天大概需要完成 数十次 这样的浏览任务。整个过程耗时较长,但是步骤比较简单:
- 点击「去浏览」按钮
- 进入店铺后,等待 15-30 秒,直到进度条读完
- 返回到任务页面,并重复第 1 步
因此,为了完成这些点击任务,可以尝试编写自动化脚本来自动完成。得益于 Android 丰富的自动化工具,这个过程可以直接在 Android 手机上来完成。
久负盛名的 Tasker
本文以 Android 操作系统上久负盛名的 Tasker 为例,实现自动操作的可视化编程。
为了能够更好地与界面交互,还需要使用 AutoInput 这一插件。
Tasker 本体和 AutoInput 都可以在 Google Play 商店购买。
整理思路,设计流程
按照前面的描述,整个过程抽象为三步:
- 点击按钮
- 假装浏览
- 模拟返回
点击按钮
先来看一下手机淘宝 APP 的领喵币任务页面:
领喵币中心
页面上的「去浏览」按钮大都是需要多次点击的。如果已经点完某一个「去浏览」按钮的次数,那么它会变成灰色的「已完成」。
这里我们要解决的两个问题是:
- 如何在找到并点击「去浏览」按钮?
- 多个「去浏览」按钮如何依次点击?
借助 AutoInput 这一插件的「模拟点击」功能,我们可以实现基于文本、ID、焦点、列表和坐标的点击。
AutoInput 的 Field Type 选项
在这个案例中,使用「文本」方式会更加合适。第一个问题很好解决,由于页面中并没有其他「去浏览」的字样,所以直接把「文本」设定成「去浏览」就可以实现点击「去浏览」这几个字所在的按钮的效果了。
第二个问题同时顺理成章地解决了。当某一个按钮已经不能继续点击,那么它会变成「已完成」,而不再是「去浏览」,因此脚本在检查匹配的文本时,会自动适配下一个未点击的按钮。
综合来看,我们使用查找页面中文本的方式,实现了 总是去点击页面上第一个「去浏览」按钮 的效果。
假装浏览
点击「去浏览」按钮之后,我们会进入到活动页面或者店铺页面。这个页面一般是这样的:
浏览得喵币
按照规则,我们需要「浏览 15 秒」,不过实际我手动浏览发现,页面右侧偏下的这个进度条通常需要 20 多秒才会读完,因此我们「假装浏览」的时间可以设定成 30 秒,便足以应对绝大多数的情况了。
虽然在进度条上的提示是「滑动浏览得喵币」,但是实际操作发现,页面并没有检查我们是否在真正地「滑动」,而只要「停留」到足够的时间就可以,因此我们直接等待即可。这样也避免了进行「模拟滑动屏幕」的操作。
模拟返回
浏览完成后,我们需要进行一次「返回」操作,退回到「领喵币中心」,进而继续点击「去浏览」按钮。在 Android 上,「返回」是一个实体按键,Tasker 本体中就有对应的操作来模拟返回键。
开始动手制作
攻克了这些技术难点,编写过程就变得十分简单。任务中一共使用 6 个操作:
任务操作
开始之前切换到「任务」选项卡,并点击右下角的加号,来新建一个任务,而后就可以开始添加具体的操作了。
每个任务启动的时候,我都加入了「启动手机淘宝」的操作。这样,点击左下角「启动」任务之后就会自动跳转淘宝,不需要手动切换。使用 Tasker 操作的搜索功能 选择「启动应用」这一操作,并选择淘宝。
之后添加一个「等待」操作,并设为 2 秒。这个两秒钟,是为了给页面加载留出足够的时间。
第 3 步,加入一个 AutoInput Action,点击配置旁边的小铅笔,就来到了 AutoInput 的编辑界面。
直接在 Manual Setup 中手动配置。Action 选择 Click,Field Type 选 Text,而后 Field Text 中填入「去浏览」即可。在 AutoInput Action 操作的选项中有一个「超时」,是指代脚本会花多少时间去查找「去浏览」文本,超过设定的时间就会直接退出:
手动配置 AutoInput
第 4 步中,我们添加一个 30 秒的等待,用来等待浏览任务的完成。之后随即添加一个「返回键」的操作,便回到了任务领取的页面。
最后是一个纯程序逻辑性的跳转操作,使用「Goto」操作跳转到第 2 步,也就是「等待 2 秒」那个步骤。这之后,程序就会不断循环了。
如何使用
在淘宝中先打开「领喵币中心」的页面,切换到 Tasker 启动刚才编写的任务。
脚本会自动跳转到淘宝,并根据设定好的程序开始点击「去浏览」按钮。随后,它会等待 30 秒钟,并返回到「领喵币中心」。
当这个「去浏览」按钮变灰,并显示成「已完成」的时候,脚本会自动开始点击下一个「去浏览」按钮,直到页面上的按钮全部变成「已完成」。根据设定,脚本最多会花 10 秒钟来查找「去浏览」的文本,因此当所有按钮都已经点击完成之后,脚本会在 10 秒之后自动停下。
这样,我们就可以把手机丢在一边,躺着等待脚本自动收喵币了。
值得注意的是,根据我实际使用的情况来看,整个过程还是需要一点点人工干预的。比如:
- 在执行个别喵币任务时,按钮显示的不是「去浏览」而是「去查看」
- 个别任务需要在进入活动页面之后,再次手动点击「签到」按钮才能完成任务
- 甚至有一个任务是「浏览首页猜你喜欢栏目」,点击按钮之后直接来到了淘宝首页,再按返回键就回不到领任务页面了
但这样的情况并不总是有,也并不多,所以对整个自动化收喵币过程并没有造成明显的不便。
无论如何,当下一次你遇到了需要重复操作的事情,或许可以尝试一下自动化工具,来让过程变得舒适,为自己赢得些许幸福感。