基于 ADB + uiautomator2 的安卓手机自动化脚本,自动进入淘宝「芭芭农场」的「集肥料」任务页面,识别并点击任务按钮,循环完成任务、领取肥料。
- 自动启动淘宝:支持指定 Activity 启动,失败自动回退普通启动,并支持 Android 多用户(多开)环境。
- 自动静音:应用启动成功后自动将媒体音量调至 0(Android 11+ 使用
cmd media_session,旧系统自动降级),避免任务声音打扰。 - 双通道任务识别:
- UI 识别:通过无障碍节点查找
去完成 / 去浏览 / 去领取按钮,刚进入任务页面时优先使用。 - OCR 识别:UI 识别不到(WebView/Canvas 渲染、按钮不暴露在节点树中)时,下滑到页面底部后用 RapidOCR 识别按钮文字,再配合任务名定位点击坐标。
- UI 识别:通过无障碍节点查找
- 自动下滑查找任务:UI 连续找不到按钮时自动下滑页面,直到页面底部或找到可点击按钮。
- 任务过滤与跳过:通过
skip_keywords跳过指定任务(如支付宝、快手、补贴类等),通过have_clicked记录同一任务最多执行 2 次。 - 指定关键词任务:通过
ocr_keywords配置,优先查找并执行你指定的任务(如「逛精选好物」)。 - 浏览闭环:点击任务后自动完成搜索/浏览商品等操作(
task_loop),完成后自动返回任务页面。 - 全局弹窗 Watcher:自动点击广告、弹窗、「跳过」「刷新」「立即施肥」等按钮,减少人工干预。
- 验证码拦截处理:检测到「验证码拦截」页面时自动尝试滑动验证。
- 多设备选择:连接多台设备时自动列出设备(品牌/型号/系统版本)供选择。
- 纯 Python 图像处理:模板匹配等图像算法使用 numpy/PIL 实现,无需安装 OpenCV(cv2)。
- Windows(脚本含
.bat启动文件,其他系统可直接python运行) - Python 3.9+
- Android 手机(开启 USB 调试,且电脑已安装 adb 并加入 PATH)
- 手机与电脑通过 USB 连接(或 adb 可访问的网络设备)
# 1. 安装 Python 依赖
pip install -r requirements.txt
# 2. 安装 uiautomator2 到手机(首次连接手机时执行一次)
python -m uiautomator2 init依赖清单(requirements.txt):
| 依赖 | 版本 | 用途 |
|---|---|---|
| uiautomator2 | 3.5.2 | ADB UI 自动化 |
| uiautodev | 0.14.0 | uiautomator2 配套工具 |
| rapidocr | >=3.9.0 | OCR 文字识别(PP-OCR 模型) |
| onnxruntime | - | RapidOCR 推理引擎 |
| ddddocr | 1.5.6 | 备用 OCR |
若希望离线使用 RapidOCR,可将
*_det.onnx / *_rec.onnx / *_cls.onnx模型放入项目根目录models/rapidocr/文件夹,脚本会自动优先加载本地模型。
双击 启动淘宝任务.bat,脚本会自动切换到项目目录并运行主程序。
提示:如果 adb 不在系统 PATH 中,可编辑该
.bat文件,把set "PATH=D:\devkitPro\ADB;%PATH%"中的路径改为你本机 adb 所在目录。
python 淘宝芭芭农场.py- 连接手机并开启 USB 调试,确认
adb devices能识别到设备。 - 运行脚本,选择设备(多设备时输入序号)。
- 脚本自动:启动淘宝 → 静音 → 进入芭芭农场 → 点击「集肥料」进入任务页面 → 循环查找并完成任务。
- 结束后打印完成的任务总数与总耗时,并关闭手机自动旋转。
skip_keywords = [
'尖货补贴', '淘宝特价', '买限时', '支付宝', '快手',
'邀请', '大众点评', '蛋仔', '微博', '闲鱼', '补贴',
]任务名包含以上任一关键词时自动跳过(不点击)。
ocr_keywords = [
'逛精选好物', '搜一搜你喜欢的商品', '品牌x农场狂补周'
]当 UI 识别不到按钮时,会下滑到页面底部,用 OCR 优先查找包含这些关键词的任务并执行。
# None = 自动检测并交互选择;"0" = 机主;"999" = MultiApp(多开)
DEFAULT_USER_ID = "0"同一任务最多执行 2 次(have_clicked 计数),避免重复刷同一任务。
Tb-Baba-Farm-Auto/
├── 淘宝芭芭农场.py # 主脚本(自动化流程)
├── utils.py # 工具库(设备连接/静音/OCR/滑动/图像匹配等)
├── 启动淘宝任务.bat # Windows 一键启动脚本
├── requirements.txt # Python 依赖
├── img/ # 模板匹配图片
├── test/ # 测试用例
│ ├── test_volume_mute.py # 媒体音量静音/恢复测试
│ └── __init__.py
├── task/ # 需求与开发记录
│ └── task.md
└── 识别图片测试.py # OCR 图片识别独立测试脚本
# 音量静音/恢复测试(需连接手机)
python test/test_volume_mute.py
# 或使用 unittest 方式
python -m unittest test.test_volume_mute -v| 问题 | 解决方法 |
|---|---|
未检测到任何连接的安卓设备 |
确认手机开启 USB 调试、adb devices 可看到设备 |
| OCR 识别不到按钮 | 确认 rapidocr 已正确安装;首次运行会下载模型,需联网;或放入本地模型到 models/rapidocr/ |
| 任务页面按钮点击无反应 | 任务页为 WebView/Canvas 渲染时,脚本会自动切换到 OCR 通道点击坐标 |
| 静音不生效 | Android 8+ 的 settings put 多无效,脚本已内置 cmd media_session + 按键逐级调节的多策略兜底 |
本脚本仅供个人学习与自动化研究使用,请遵守淘宝平台的服务协议与相关法律法规,勿用于批量刷取奖励、影响平台正常运营等行为。使用本脚本产生的一切后果由使用者自行承担。