前言
又到了一年一度的 618 年中购物节,淘宝跟去年双十一一样,推出了喵币的活动,通过做各种任务获取喵币,用户使用喵币召唤不同等级的猫猫并合成,当猫猫达到一定等级后可以兑换一定数额的红包,今天 6 月 1 号瓜分 1 亿红包,活动 29 号开始的,我没咋玩,只合成了一个 8 级的猫,分到了 6 块多钱。
![815489d88a2b82580d3c203f44d90af0.png](https://i-blog.csdnimg.cn/blog_migrate/6e4c8e5a7ec4468fd3276ec4cda73278.jpeg)
看了下领喵币的任务,大部分都是类似去逛店 10s,逛会场 10s 之类的重复动作。按照每个任务大概耗时 20s 算的话,这一套任务做下来得半个多小时。最近学习 Python 刚好会一点用 adb 指令对手机进行模拟操作,这样的话每天只要打开程序跑一下就可以自动完成所有任务。下面简单介绍下程序思想,实际运行演示见文末视频。
0x00 安装 Python
本程序是基于 Python 的,所以你得先配置好 Python 环境。简单来说就是下载并安装 python-3.7.3-amd64.exe 详细的过程网上教程很多,win+R 然后输入 cmd 打开命令行窗口,输入 python,出现 python 版本信息的话 python 就安装好了。
![22e26acbae9bcf24d016ca0204406989.png](https://i-blog.csdnimg.cn/blog_migrate/b4a3b6afdc4a374e176f9a263e123941.jpeg)
0x01 ADB 配置
Android 调试桥( adb )是多种用途的工具,该工具可以帮助你管理设备或模拟器的状态。实际运用中我们可以通过 adb 进行 shell 命令的相关操作。
首先,我们需要在电脑上装好 adb 工具,配置好 adb 的环境变量,确保可以调用 adb 命令。win+R 然后输入cmd 打开命令行窗口,输入 adb,同样的出现下面这种详细信息的话 adb 就配置好了 。
![0dca02f366846a522a14ae922ddef1c1.png](https://i-blog.csdnimg.cn/blog_migrate/209ef09b15c1684e0215c3a1e8c5f5aa.jpeg)
0x10 程序设计
本程序仅限安卓,iphone不适用。以三星s7手机为例,屏幕分辨率1080*1920,使用的是绝对坐标,分辨率相同的安卓手机可以直接使用,其他分辨率手机需要手动修改坐标。
程序思想很简单,就是先进入淘宝的「618理想大赢家」界面,然后点击相应任务图标中心点的坐标,模拟点击,完成任务后返回。已经完成的活动图标颜色会变化,可以作为提前结束该任务的判断依据。这里以「去逛店」任务为例,这个任务需要操作 50 次,也是所有任务中需要重复次数最多的。
![de363d10e59d496fcf617517720f6edd.png](https://i-blog.csdnimg.cn/blog_migrate/ff90f6be0d159b086c2affe645676cd2.jpeg)
Step 1:进入淘宝的「618理想大赢家」界面,向下滑动下界面,防止「领喵币」按钮发生偏移,这个界面也是所有动作完成和结束后的初始界面。点击黄色的领喵币,每次操作完等待 1s,防止操作太快被系统识别为机器人。
os.system('adb shell input swipe 900 500 900 800') # 从上往下滑动,回到页面初始位置os.system('adb shell input tap 900 1670') # 点击下方领喵币time.sleep(1)
Step 2:进入领喵币中心,点击对应的活动,这里点击「去逛店」。其他活动如果已经完成的话,对应的大红色按钮会变成淡粉色,可以在点击按钮之前先用if判断下。
Step 3:进入具体店铺页面后需要等待 10s,网络有一定延时,这里设置为 15s。
os.system('adb shell input tap 900 870') # 点击去逛店,然后等15sprint('进入店铺,浏览页面中,请等待15s...')time.sleep(15)
Step 4: 15s 之后,截屏,判断下是否提示「领喵币」,如果有的话点击领取,然后返回到主界面,重复这个操作50 遍。如果没有提示「领喵币」的话,说明已经领过 50 次喵币,直接跳出循环,回到主界面。
if img.getpixel((970, 1128)) == (241, 196, 201, 255): os.system('adb shell input tap 970 1130') # 点击得喵币 print('已点击喵币,返回中...') time.sleep(1) os.system('adb shell input keyevent KEYCODE_BACK') # 返回 time.sleep(1)else: print('已完成50次去逛店任务') break
这样,50 遍「去逛店」任务就自动完成了,一共可以获得 50*300=15000 个喵币。可以将上面步骤打包成qu_guang_dian()函数,同样的,再写几个其他任务的函数,比如「浏览会场」liu_lan_hui_chang(),「看直播」kan_zhi_bo(),这样在主程序里直接调用对应的函数即可自动完成对应的活动任务。
0x11 运行
如果你是截屏分辨率 1080*1920 的安卓手机的话,只需要安装好 python 和 adb,在命令行窗口输入
python D:OneDriveGitHubauto_miaomiaobiauto_miaomiaobi.py #替换为你的文件路径
运行下载的源码文件auto_miaomiaobi.py即可。
![dd0face013f14ecd82f1e8ea441f8839.png](https://i-blog.csdnimg.cn/blog_migrate/0aa45ab6fbd7a896536485f2a3f67b93.jpeg)
这是个 Python 新手的练习程序,没有优化,没有自适应,没有打包成可执行程序,只适用于截屏分辨率 1080*1920 安卓手机。
想要源码的可以关注,转发,后台私信小编“01”即可领取,免费赠送Python学习资料,希望能帮助到大家。
![6b114a295633698bb5982e6f9f86d3a6.png](https://i-blog.csdnimg.cn/blog_migrate/bda859aa8b5d7dc334f7ca598595d1d4.jpeg)