# TicketBoost **Repository Path**: zhiyangli/ticket-boost ## Basic Information - **Project Name**: TicketBoost - **Description**: 大麦抢票脚本 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 19 - **Forks**: 8 - **Created**: 2025-09-25 - **Last Updated**: 2026-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: unable ## README # 🎫 大麦网App抢票系统 (TicketBoost Mobile) 一个高效的大麦网App自动抢票工具,支持多种登录方式、智能座位选择和实时通知。 ## ✨ 功能特性 - 🔐 **多种登录方式**: 支持账号密码登录和第三方授权登录 - 🔍 **智能演出搜索**: 自动搜索演出并支持模糊匹配 - ⚡ **高速抢票引擎**: 毫秒级响应,最大化抢票成功率 - 🎭 **智能座位选择**: 自动选座、推荐座位、手动选座 - 📝 **实名制支持**: 自动填写实名制信息 - 🔔 **实时通知**: 声音提醒+桌面通知 - 📊 **详细日志**: 完整的操作记录和错误追踪 - 🛠️ **易于配置**: 图形化配置向导 - 📱 **移动端优化**: 基于uiautomator2的安卓App自动化 ## 🚀 快速开始 ### 1. 环境要求 - Python 3.7+ - Android 设备或模拟器 - 大麦App (最新版本) - ADB工具 (Android SDK) - Windows 10/11 (推荐) ### 2. 设备准备 #### 真机准备 1. 在手机上安装大麦App 2. 开启开发者模式和USB调试 3. 通过USB连接电脑 4. 确认设备已被ADB识别 (`adb devices`) 5. **重要:开启无障碍服务权限** - 运行 `python -m uiautomator2 init` 初始化服务 - **手动配置无障碍服务:** **方法1:通过应用管理** 1. 打开手机 **设置** → **应用管理** 或 **应用** 2. 查看 **所有应用**,找到 **com.github.uiautomator** 3. 进入该应用,点击 **权限管理** 4. 开启以下权限: - ✅ 修改系统设置 - ✅ 在其他应用上层显示 - ✅ 设备管理器 - ✅ 无障碍服务(如果有) **方法2:通过无障碍设置** 1. 打开 **设置** → 搜索 **"无障碍"** 2. 进入 **无障碍** → **服务** 或 **已安装的服务** 3. 查找 **UiAutomator**、**ATX** 或 **com.github.uiautomator** 4. 开启该服务,允许所有权限 **方法3:如果找不到服务** - 重启手机后重新运行 `python -m uiautomator2 init` - 或运行 `python enable_accessibility.py` 获取详细指导 #### 模拟器准备 1. 安装Android Studio或其他安卓模拟器 2. 在模拟器中安装大麦App 3. 确保模拟器可通过ADB连接 ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 4. 系统配置 首次使用需要配置用户信息和抢票参数: ```bash python main.py --config ``` 按照提示输入以下信息: - 大麦网账号信息 - 演出名称 - 场次和票价偏好 - 实名制信息 ### 5. 开始抢票 ```bash python main.py ``` ## 📖 使用说明 ### 命令行参数 - `python main.py` - 启动抢票程序 - `python main.py --config` - 配置系统参数 - `python main.py --test` - 测试设备连接功能 - `python main.py --help` - 显示帮助信息 ### 配置文件说明 配置文件位于 `config/config.json`,包含以下配置项: ```json { "user": { "username": "你的大麦网用户名/手机号/邮箱", "password": "你的大麦网密码", "phone": "手机号码", "real_name": "真实姓名", "id_card": "身份证号码" }, "ticket": { "event_name": "演出名称", "event_url": "演出详情页链接(App端暂不支持直接访问)", "session_index": 0, "price_index": 0, "ticket_num": 1 }, "mobile": { "device_id": "auto", "app_package": "cn.damai", "implicit_wait": 10, "screenshot_on_error": true }, "retry": { "max_retry_times": 50, "retry_interval": 0.5 }, "notification": { "enable_sound": true, "enable_popup": true } } ``` ### 抢票流程 1. **设备连接** - 连接安卓设备,启动大麦App 2. **用户登录** - 自动登录或第三方授权登录 3. **搜索演出** - 自动搜索指定演出 4. **选择配置** - 场次、票价、数量选择 5. **开始抢票** - 高频尝试购买按钮 6. **座位选择** - 自动选座或手动选座 7. **订单确认** - 填写信息,提交订单 8. **成功通知** - 声音和弹窗提醒 ## ⚙️ 高级配置 ### 设备配置 - **device_id**: 指定设备ID,"auto"表示自动连接第一个可用设备 - **app_package**: 大麦App包名,默认"cn.damai" - **screenshot_on_error**: 出错时自动截图 ### 座位选择策略 - **自动选座**: 系统自动选择最优座位 - **推荐座位**: 使用官方推荐座位 - **手动选座**: 支持手动点击座位 ### 重试机制 - 可配置最大重试次数 - 智能重试间隔调整 - 错误类型识别和处理 ### 反检测机制 - 随机操作延迟 - 行为模拟优化 - 验证码处理支持 ## 🔧 故障排除 ### 常见问题 1. **设备连接失败** - 确保USB调试已开启 - 检查ADB连接状态 - 尝试重新连接设备 2. **权限错误(INJECT_EVENTS permission)** - 运行 `python -m uiautomator2 init` 初始化服务 - 在手机 **设置 > 应用管理** 中找到 **com.github.uiautomator** - 开启所有权限:修改系统设置、在其他应用上层显示 - 在 **设置 > 无障碍 > 服务** 中开启 UiAutomator 服务 - 运行 `python enable_accessibility.py` 获取详细指导 - 重新运行程序 3. **App启动失败** - 确认大麦App已安装 - 检查App版本是否最新 - 清除App缓存重试 4. **登录失败** - 验证账号密码是否正确 - 尝试使用第三方登录 - 检查网络连接 5. **抢票失败** - 确认演出是否已开票 - 检查票价和场次配置 - 尝试调整重试参数 6. **元素定位失败** - 检查大麦App版本 - 查看日志中的具体错误 - 更新元素定位策略 ### 日志文件 程序运行日志保存在 `logs/ticket_boost.log`,包含详细的执行信息和错误记录。 ## 🎯 使用技巧 1. **提前准备** - 开票前测试设备连接 - 确认演出信息和座位偏好 - 检查网络环境 2. **抢票策略** - 提前2-3分钟启动程序 - 保持设备屏幕常亮 - 选择网络较好的环境 3. **成功率提升** - 使用精确的演出名称 - 选择多个备选票价 - 避开网络拥堵时段 ## ⚠️ 注意事项 - 本工具仅供学习交流使用 - 请遵守大麦网的用户协议和使用条款 - 不要恶意抢票或倒卖门票 - 抢票成功后请及时完成支付 - 建议在合理范围内使用,避免对服务器造成过大压力 - 设备需保持连接状态,避免中途断开 ## 📄 许可证 本项目基于 MIT 许可证开源,详见 [LICENSE](LICENSE) 文件。 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 📞 支持 如果遇到问题或有建议,请通过 GitHub Issues 联系我们。 --- **免责声明**: 本工具仅供学习和研究使用,使用者需自行承担使用风险。开发者不对使用本工具产生的任何后果负责。