一个基于 Python + Appium 的微信小程序"探探糖"自动砍价工具,支持自动检测设备、智能防重复和无人值守运行。
- 🤖 自动砍价: 自动识别并点击商品列表中的所有砍价按钮
- 🧠 智能防重复: 基于商品名称、价格和图片哈希的唯一性识别,避免重复砍价
- 📱 自动设备检测: 自动获取连接的Android设备ID和系统版本
- 🔄 动态端口分配: 自动查找可用端口,避免端口冲突
- ⚡ 极限速度: 优化的滚动和点击策略,最大化砍价效率
- 🛡️ 稳定可靠: 完善的错误处理和优雅退出机制
- 📊 实时统计: 实时显示砍价进度和成功次数
- Python 3.8+
- Node.js 16+
- Appium Server 2.x
- Android SDK Platform-Tools (ADB)
- Android 设备(已测试:Android 8-15)
- USB 调试已开启
- 开发者选项已启用
# 克隆项目
git clone https://github.com/yiewker/tantantang.git
cd tantantang
# 安装 Appium Server
npm install -g appium@next
appium driver install uiautomator2
# 启动 Appium Server
appium server --port 4723- 进入手机「设置」→「关于手机」→「版本信息」
- 连续快速点击「版本号」7次,直到提示"您正处于开发者模式"
- 返回「设置」→「其他设置」→「开发者选项」
- 开启以下选项:
- USB调试: 必须开启
- 禁止权限监控: 防止ADB授权超时
- 打开微信,在任意聊天框中发送:
http://debugxweb.qq.com/?inspector=true - 点击链接,看到"已开启"提示
- 强制停止微信,重新打开
# 使用USB 3.0接口连接手机
# 手机选择"传输文件"模式
# 允许USB调试并勾选"一律允许"
# 验证连接
adb devices
# 应该看到类似输出:
# fb1e90cd device# 手动打开微信,进入探探糖小程序商品列表页面
# 然后运行脚本
python autorun.py- 启动Appium服务器:
appium server --port 4723 - 手机连接电脑并开启USB调试
- 手动打开微信探探糖小程序,进入商品列表页面
- 运行脚本:
python autorun.py - 脚本会自动检测设备,切换到WebView上下文,开始砍价
如果需要控制微信分身应用,编辑 autorun.py 文件:
# 找到这行并取消注释
"appium:userProfile": 999, # 分身应用通常使用999如果遇到ChromeDriver版本不匹配问题:
- 根据错误信息获取所需版本号
- 从 Chrome for Testing 下载对应版本
- 修改脚本中的路径:
"appium:chromedriverExecutable": "你的路径/chromedriver.exe"❌ 错误:未检测到任何通过ADB连接的设备
解决方案:
- 检查USB调试是否开启
- 确认使用USB 3.0接口
- 安装设备驱动程序
- 重启ADB:adb kill-server && adb start-server
❌ 错误:没有找到小程序WebView上下文
解决方案:
- 确保已开启微信WebView调试
- 确认已进入探探糖小程序
- 检查ChromeDriver版本匹配
❌ 错误:ChromeDriver版本不兼容
解决方案:
- 查看错误日志中的版本号要求
- 下载对应版本的ChromeDriver
- 更新脚本中的chromedriverExecutable路径
# 在脚本中添加调试代码
contexts = driver.contexts
print(f"可用上下文: {contexts}")# 获取设备ID
adb devices
# 获取Android版本
adb shell getprop ro.build.version.release
# 获取WebView版本
adb shell dumpsys webviewupdatetantantang/
├── autorun.py # 主程序文件
├── 使用方法.md # 使用说明
├── 改进方向.md # 改进计划
├── 新设备运行探探糖自动砍价脚本完整配置指南.md # 详细配置指南
├── 一键启动.bat # Windows一键启动脚本
├── apk/ # Appium相关APK文件
├── driver/ # 驱动程序目录
├── logs/ # 日志文件目录
└── old/ # 旧版本文件
欢迎提交 Issue 和 Pull Request!
- 自动检测并下载匹配的ChromeDriver版本
- 自动检测微信分身并选择对应的userProfile
- 添加GUI界面
- 支持多设备并行操作
- 添加更多的商品筛选选项
本项目采用 MIT 许可证 - 详见 LICENSE 文件
本工具仅供学习和研究使用,请遵守相关服务条款和法律法规。使用本工具产生的任何后果由使用者自行承担。
如有问题或建议,请:
- 查看本文档的故障排除部分
- 提交 GitHub Issue
- 联系项目维护者
祝你砍价愉快! 🎉