大麦自动抢票:从配置到跑通的Python双端方案
【免费下载链接】ticket-purchase大麦自动抢票,支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase
开票前2分钟,手指悬在"立即购买"上,刷新一下——"已售罄"三个字跳出来。这种场景,手动点屏幕基本没有胜算。开源项目 ticket-purchase 就是为这类场景准备的:它是一个大麦自动抢票工具,你在配置文件里填好观演人、城市、场次日期和票价,开售瞬间由脚本替你完成全部点击。它提供两条路线:Web端走 Selenium 浏览器自动化,安卓端走 Appium 移动设备控制。
架构全景:一个两人抢票班组
你可以把整个项目理解成一个"抢票班组"。工位一在 damai/ 目录,是"电脑办事员":用 Selenium 加 ChromeDriver(一个驱动浏览器执行的翻译组件)操控 Chrome 完成操作;工位二在 damai_appium/ 目录,是"手机办事员":通过 Appium(跨平台移动自动化框架)向手机上运行的大麦 APP 下发指令。两个工位领的是同一张"工单"——配置文件,上面写清楚目标演出、观演人、城市、场次和票价。
由于大麦大部分票只能 APP 端购买,手机端的实现更完整,v2 版本还专门做了提速优化。电脑端另配了一位"环境医生"(damai/check_environment.py、damai/quick_diagnosis.py),开工前先体检 Chrome 与 ChromeDriver 的版本是否匹配。
核心能力拆解
配置中枢:一份JSON定好整场参数
它负责声明"抢哪场、买几张、选什么价位"。Web端读 damai/config.json,手机端读 damai_appium/config.jsonc,程序启动时统一加载,各模块不再各自硬编码。以抢 1039 元票为例,填"price": "1039"即可;APP端还要多填一个"price_index": 1——因为新版 APP 页面里价格文本可能是空串,脚本改为按索引(从0开始、价格从低到高)定位票档,需要你提前手动数好。
手机办事员:连点流水线
这是主战场。damai_app_v2.py 的流程是:选城市 → 点购买按钮 → 选票档 → 勾选多名观演人 → 提交订单。提速的关键在于,勾选观演人时不再"找一个点一个",而是先把每个人的坐标批量收集好,再用 Appium 的坐标手势一次连点完,每次点击只持续 30~50 毫秒。开售那一秒里,省下的零点几秒往往就是结果。
电脑办事员:带状态复用的选票流程
damai/concert.py 处理 Web 端:先通过 Cookie 复用已有登录态,跳过输密码环节,再依次执行城市、场次、票价的筛选,每个点击都带超时兜底;提交订单前还会校验当前是否停在确认页,避免误点。它同时支持 PC 和移动端布局两套定位策略。
环境医生:开工前先体检
damai/check_environment.py 会检查 Python、依赖包、Chrome 路径和 ChromeDriver 版本匹配情况,damai/quick_diagnosis.py 则给出更细的诊断结论。跑不通时先看它,比盲目改配置快得多。
快速上手:5步跑通手机抢票
🔧 最短路径(Web端只需第4、5步,改跑python damai.py):
- 克隆并装依赖:
git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase && cd ticket-purchase && poetry install - 环境体检:
./check_environment.sh - 启动 Appium 服务器:
./start_appium.sh(需 Node.js 20.19+) - 填写 damai_appium/config.jsonc:搜索关键词、观演人、城市、日期、票价、
price_index
{ "keyword": "周深", "users": ["观演人1", "观演人2"], "city": "深圳", "date": "12.06", "price": "内场1199元", "price_index": 5 }- 手机上打开大麦 APP、搜到目标演出并停在详情页,然后运行
./start_ticket_grabbing.sh
避坑:
start_ticket_grabbing.sh里的ANDROID_HOME是 macOS 示例路径,在 Windows/Linux 上需要改成你本机 SDK 位置;真机抢票记得先开 USB 调试,用adb devices确认可见。
避坑:Web端最常见的报错是 ChromeDriver 与 Chrome 版本不匹配,别手动下载,直接跑 damai/quick_diagnosis.py 按提示处理。
进阶与展望
手机端目前只覆盖"购买"链路,"预约"流程尚未处理,这是现成的二次开发切入口;如果你有多账号需求,双端架构也方便并行扩展。对想练手的开发者来说,它把"配置驱动 + 状态复用 + 提速点击"这套自动化思路落成了一个能直接跑的工程,照着它走一遍 Selenium 和 Appium 的基本功,比看文档扎实。
【免费下载链接】ticket-purchase大麦自动抢票,支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考