基于Python 与 uiautomator2的抢菜自动下单工具
注:此工具仅用于学习.
更新日志[代码地址: https://github.com/AoperX/qiangcai]
2022年4月13日
又是陪跑的一天, 用接口抢比我们快多了;
用模拟点击的有点慢,建议github上找其它实现方式.为达学习的目的,我这个博客还会经常更新的;
食物紧缺的小伙伴,建议通过各种渠道加群,老乡群,街道群,小区群,进行团购,或找邻居求助.2022年4月12日
1.优化美团/叮咚抢购代码,并修复Bug
Tips:
2.建议在早上5.55的之前将商品添加到购物车当中;
1.建议早上5.55的时候将我们的代码跑一边,第一次跑会消耗一些时间(启动一些服务),后面启动就快了;
正文
现在疫情严重,尤其是上海地区,美团和叮咚早点6点,8.30都是抢菜的时间.但很多人都抢不到,手都点麻了.所以就根据Python、uiautomator和安卓手机,实现辅助抢菜的功能.
辅助功能依赖于安卓手机,主要实现替代人工点击,无倾入性.
一. 需要用到的工具
- 安卓手机
- python3.0+以上的环境
- uiautomator2 依赖
- 安卓连接调试工具 adb
- 代码
二. 安装环境
1. python3.0的安装
我用的是windows的windows shell,自带python. 所以安装过程就不赘述了.
百度上就能搜到一堆.
小提示:安装完成python的环境后,需要将其添加到环境变量中.这个也建议去百度上搜;
安装完成后,进入命令行,输入python,应该是这个样子的;
2. 安装uiautomator2
2.1 在安装 uiautomator2之前,需要确定pip的工具是否安装成功.
在命令行中输入 pip , 出现下图所示,表示安装成功了;
2.2. 在经过2.1没有问题的情况下,继续输入 pip install --pre uiautomator2 就会得到下面的图:
直到出现 successful 的样子
2.3 继续安装 pillow , 在命令行输入 pip install pillow
我这里显示已经安装过了, 在没有安装过的机器上, 也会出现下载的过程, 在下载和安装
完毕后,出现successful 的提示就表示安装成功了;
2.4 添加adb到环境变量中
打开 系统设置 > 关于 > 下拉找到[高级系统设置] > 环境变量 然后进行配置
配置过程省略.(后面有时间具体做一个配置环境变量的教程出来)
具体百度即可.
注意: 配置完毕后, 在命令行输入 adb 出现下图所示,表示安装成功.
2.5 安装uiautomator2
在命令行输入 python -m uiautomator2 init
出现下面的结果表示安装成功
3. 连接手机调试工具
3.1 一部安卓手机,系统版本越高越好,我也没有试过低版本的.我的手机是版本是安卓9的.
注意: 对于没有安卓手机的,可以试试模拟器,但我没试过.需要的话,可以以后补教程.
3.2 安卓手机开启 开发者模式
这个默认关闭,有的手机点击多次安卓版本即可开启.其余的可以百度搜搜.
开启完开发者模式后,记得一定要进去,将 USB调试 进行打开.同时打开
USB安装、USB调试 不锁定屏幕 等开关.
3.3 开始adb服务
在命令行输入 adb start-server
出现这个证明我们的abd服务开启成功.
3.4 将手机通过usb连接电脑, 有的手机在连接后需要选择对应的模式,比如我的手机就需要手动的设置为 文件传输模式,每个手机不一样,具体情况具体对待.
注意:
3.5 查看设备号
在命令行输入 adb devices
这里会在device前面出现一个序列号,这个就是我们需要的东西.
注意: 如果没有出现,请使用 adb kill-server 和 adb start-server 重新开启服务. 直到输入adb devices 获取到序列号为止. 因为这个号, 不仅表示我们的手机成功的连接到电脑上,同时也表示我们的手机可以通过代码来做相应的操作.
4.设置代码
- 代码地址:
https://github.com/AoperX/qiangcai
将对应的 序列号 换为我们刚刚获取到的设备号.
5.开始抢菜
- 打开对应的美团/叮咚页面,在添加相应的商品到购物车后, 需要保持在购物车页面(显示 结算 按钮的页面)
- 在电脑上存放我们 meituan.py 文件的地方右键 在此处运行命令行
- 在执行代码的过程中,手机会自动安装各种软件,注意: 这个是辅助插件,这个是 uiautomator2 自带的调试工具.请放心安装.
输入 python meituan.py 此时电脑会在运行代码,同时观察手机,会出现多个需要安装辅助插件(这个插件是 uiautomator2 需要使用的,与我无关)的提示,我们点击继续安装即可. 插件安装完毕后. 观察手机就会在自动抢菜了.
- 叮咚类似操作;
备注:
- 在第一次连接手机后,运行 python 代码的时候, 会在手机上安装一些插件, 这些插件的安装需要我们在手机上手动的点击安装才可以. 点击安装后 会在手机上有一个 ATX 的应用;
- 如果运行python代码后出现错误,这个时候检查我们的手机是否成功安装了 ATX 的应用. 同时再去检查 开发者模式 中的 允许USB调试, 允许USB安装软件 的开关都打开了;