Skip to content

Yiewker/tantantang

Repository files navigation

探探糖自动砍价机器人 🤖

一个基于 Python + Appium 的微信小程序"探探糖"自动砍价工具,支持自动检测设备、智能防重复和无人值守运行。

🎯 功能特性

  • 🤖 自动砍价: 自动识别并点击商品列表中的所有砍价按钮
  • 🧠 智能防重复: 基于商品名称、价格和图片哈希的唯一性识别,避免重复砍价
  • 📱 自动设备检测: 自动获取连接的Android设备ID和系统版本
  • 🔄 动态端口分配: 自动查找可用端口,避免端口冲突
  • ⚡ 极限速度: 优化的滚动和点击策略,最大化砍价效率
  • 🛡️ 稳定可靠: 完善的错误处理和优雅退出机制
  • 📊 实时统计: 实时显示砍价进度和成功次数

📋 系统要求

软件环境

  • Python 3.8+
  • Node.js 16+
  • Appium Server 2.x
  • Android SDK Platform-Tools (ADB)

硬件要求

  • Android 设备(已测试:Android 8-15)
  • USB 调试已开启
  • 开发者选项已启用

🚀 快速开始

1. 环境准备

# 克隆项目
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

2. 设备配置

开启开发者选项

  1. 进入手机「设置」→「关于手机」→「版本信息」
  2. 连续快速点击「版本号」7次,直到提示"您正处于开发者模式"

开启USB调试

  1. 返回「设置」→「其他设置」→「开发者选项」
  2. 开启以下选项:
    • USB调试: 必须开启
    • 禁止权限监控: 防止ADB授权超时

开启微信WebView调试 (关键步骤)

  1. 打开微信,在任意聊天框中发送:http://debugxweb.qq.com/?inspector=true
  2. 点击链接,看到"已开启"提示
  3. 强制停止微信,重新打开

3. 连接设备

# 使用USB 3.0接口连接手机
# 手机选择"传输文件"模式
# 允许USB调试并勾选"一律允许"

# 验证连接
adb devices

# 应该看到类似输出:
# fb1e90cd    device

4. 运行脚本

# 手动打开微信,进入探探糖小程序商品列表页面
# 然后运行脚本
python autorun.py

📖 使用说明

基本流程

  1. 启动Appium服务器:appium server --port 4723
  2. 手机连接电脑并开启USB调试
  3. 手动打开微信探探糖小程序,进入商品列表页面
  4. 运行脚本:python autorun.py
  5. 脚本会自动检测设备,切换到WebView上下文,开始砍价

高级配置

使用微信分身

如果需要控制微信分身应用,编辑 autorun.py 文件:

# 找到这行并取消注释
"appium:userProfile": 999,  # 分身应用通常使用999

自定义ChromeDriver路径

如果遇到ChromeDriver版本不匹配问题:

  1. 根据错误信息获取所需版本号
  2. Chrome for Testing 下载对应版本
  3. 修改脚本中的路径:
"appium:chromedriverExecutable": "你的路径/chromedriver.exe"

🔧 故障排除

常见问题

1. 设备连接失败

❌ 错误:未检测到任何通过ADB连接的设备
解决方案:
- 检查USB调试是否开启
- 确认使用USB 3.0接口
- 安装设备驱动程序
- 重启ADB:adb kill-server && adb start-server

2. WebView上下文切换失败

❌ 错误:没有找到小程序WebView上下文
解决方案:
- 确保已开启微信WebView调试
- 确认已进入探探糖小程序
- 检查ChromeDriver版本匹配

3. 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 webviewupdate

📁 项目结构

tantantang/
├── autorun.py                 # 主程序文件
├── 使用方法.md                # 使用说明
├── 改进方向.md                # 改进计划
├── 新设备运行探探糖自动砍价脚本完整配置指南.md  # 详细配置指南
├── 一键启动.bat               # Windows一键启动脚本
├── apk/                       # Appium相关APK文件
├── driver/                    # 驱动程序目录
├── logs/                      # 日志文件目录
└── old/                       # 旧版本文件

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

改进方向

  • 自动检测并下载匹配的ChromeDriver版本
  • 自动检测微信分身并选择对应的userProfile
  • 添加GUI界面
  • 支持多设备并行操作
  • 添加更多的商品筛选选项

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

⚠️ 免责声明

本工具仅供学习和研究使用,请遵守相关服务条款和法律法规。使用本工具产生的任何后果由使用者自行承担。

📞 支持

如有问题或建议,请:

  1. 查看本文档的故障排除部分
  2. 提交 GitHub Issue
  3. 联系项目维护者

祝你砍价愉快! 🎉

About

探探糖自动砍价机器人 - 基于Python + Appium的微信小程序自动化工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors