☰
大麦抢票自动化5分钟跑通:ticket-purchase从登录到提交订单的完整流程
2026/9/24 23:58:05 网站建设 项目流程

大麦抢票自动化5分钟跑通:ticket-purchase从登录到提交订单的完整流程

【免费下载链接】ticket-purchase大麦自动抢票,支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase

从扫码登录到提交订单,整条链路都由程序代你完成。ticket-purchase 是一个大麦抢票自动化项目,支持一次性指定观演人员、城市、日期场次与票价,你只需写好几行配置,剩下的选择、轮询、重试、提交它来执行。

大麦抢票自动化工具定位:配置进、订单出

这个项目用 Python 实现,Web 端基于 Selenium 驱动 Chrome,移动端基于 Appium 驱动 Android 上的大麦 APP。输入是一份 JSON 配置:目标演出地址、观演人、城市、场次日期、票价;处理过程是程序模拟人工操作大麦详情页——匹配城市选项、点选场次与票价、轮询"立即预订"按钮、勾选观演人;输出是一份已提交的订单,或停留在确认页等你手动提交。大麦的不少票源仅限 APP 端购买,因此仓库同时提供了 damai_appium 移动端实现,这也是它的输入→处理→输出与纯网页脚本的区别所在。

抢票机制时间线拆解:环境检查到提交订单的6个阶段

把 核心逻辑源码 的执行路径按时间线展开,共 6 个阶段:

  1. 环境检查:加载config.json,校验 Chrome 与 ChromeDriver 版本是否匹配;
  2. 扫码登录:打开大麦登录页,你用 APP 扫码,这是全程唯一需要你动手的环节;
  3. 详情页选择:依次匹配城市(如"广州站")、场次(如"2023-10-28 周六 19:00")、票价(如"1039"),并设置购票数量,这一阶段对应的就是页面上城市 Tab、场次和票档区域;
  4. 轮询预订按钮:开售前页面不可购买,程序按固定间隔刷新检测"立即预订"是否出现,fast_mode开启时轮询间隔从 1 秒降到 0.3 秒(项目文档给出的示例数据);
  5. 勾选观演人:按users列表逐个勾选,未找到时自动重试 5 次、每次间隔 0.5 秒;
  6. 提交订单:找到"立即提交"按钮并点击,是否真正提交由if_commit_order控制。

最简配置5分钟跑通:最小命令与最小字段

最小可跑版本

git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase pip install -r damai/requirements.txt ./check_environment.sh

编辑damai/config.json,只保留跑通一次所需的最少字段,if_commit_order先设为false,让程序走完全流程但不真正下单:

{ "index_url": "https://www.damai.cn/", "login_url": "https://passport.damai.cn/login", "target_url": "https://detail.damai.cn/item.htm?id=738291023", "users": ["张三"], "city": "广州", "dates": ["2023-10-28"], "prices": ["1039"], "if_commit_order": false }
cd damai python damai.py

看到"扫码登录"提示后用手机扫码,控制台会依次输出城市、场次、票价的匹配结果。首次运行以观察输出为目的,确认每一步都能对上再谈抢票。

完整配置字段逐项说明

  • index_url/login_url:大麦首页与登录页地址,保持默认即可;
  • target_url:演出详情页完整地址,必须带id=xxx参数,直接从浏览器地址栏复制;
  • users:观演人姓名数组,必须与账号里填写的名字逐字一致,程序会按列表人数自动设置购票数量;
  • city:城市名称,与页面城市 Tab 的文本匹配,"广州站"只需填"广州";
  • dates:场次日期数组,YYYY-MM-DD与页面上的"10月28日"等形式都能被模糊匹配;
  • prices:票档价格数组,只填数字,不带"元"或"¥";
  • if_listen:是否监听缺货登记回流,开启后售罄状态也会持续轮询;
  • if_commit_order:是否自动点击"立即提交",首次使用保持false;
  • fast_mode:快速模式,减少各类等待时间,项目文档称约节省 5-8 秒(示例数据);
  • max_retries:轮询按钮的最大重试次数,默认 1000;
  • page_load_delay:订单确认页加载等待秒数,默认 2,网络慢可调到 5。

字段细节也可以对照 PC端完整使用指南.md) 核对。

场景化玩法:按你的实际情况选配置

单人首刷,验证配置正确性。目标是确认流程跑通而不是抢票:fast_mode设false保留完整调试输出,if_commit_order设false,page_load_delay给 3-5 秒,users只放 1 个人。

热门场次准点抢。配置确认无误后切换到实战参数:

{ "users": ["张三", "李四"], "dates": ["2023-10-28"], "prices": ["1039", "999"], "fast_mode": true, "if_listen": true, "if_commit_order": true, "max_retries": 5000 }

prices里按偏好顺序放多个票档,主档售罄时程序会尝试下一档;max_retries调大是为了撑过开票前的持续轮询(以上数值为示例配置)。

网络一般的低配置环境。关掉fast_mode,page_load_delay调到 5 秒以上,dates和prices多写几种格式(如"2023-10-28"与"10月28日"),用冗余匹配弥补页面加载慢带来的失误。

票源只在 APP 端。先跑./check_environment.sh与./start_appium.sh把 Appium 拉起来,然后在设备上打开大麦 APP 并搜到目标演出,最后执行./start_ticket_grabbing.sh。移动端配置在damai_appium/config.jsonc,字段换成server_url、keyword(搜索关键词)、date(如"10.04")、price(如"1039元")和price_index(票档在页面上的位置索引,从 0 开始,需先手动数一遍)。移动端细节见 app.md 说明,注意新版 APP 票档文本可能为空串,price_index的取值依赖你手动核对。

踩坑实录:我遇到的4个真实问题

第一次跑 Web 端时,脚本启动即抛SessionNotCreatedException。定位是报错里写明的 ChromeDriver 与 Chrome 版本不匹配。解决:重跑脚本让它自动下载匹配的驱动,或手动执行 check_environment.py 复核。

第一次真实演练时,日志反复提示未找到观演人"张三"。定位:关闭fast_mode看扫描输出,页面里的名字带了一个不可见空格。解决:在users里加上带空格的变体,程序在第 3 次重试时命中。

转战移动端,start_ticket_grabbing.sh直接报 Appium 服务器未运行。定位:curl http://127.0.0.1:4723/status无响应,说明服务根本没启动。解决:先跑./start_appium.sh,再执行抢票脚本,顺序不能反。

还有一次appium driver install报 Node 版本过低。定位是报错要求^20.19.0 || ^22.12.0 || >=24.0.0。解决:升级 Node 到 20.19.0 以上后重装驱动,通过。

边界清单:5件事别做

⚠️ 不要用抢到的票做商业倒卖,本项目仅供个人购票与学习研究。

不要把max_retries调到极限、同时跑多个实例去高频轰击页面,轮询频率保持克制。

不要在配置文件里写真实密码,也不要把含观演人信息的配置公开分享。

不要在同一段开售时间用多个账号叠加同一台设备反复下单。

不要在未确认订单内容前把if_commit_order设为true,金额与票档核对完再放手。

收口

如果你只是第一次接触,把if_commit_order保持为false跑通全流程,确认城市、场次、票价都能对上再谈实战。如果你已有明确目标场次且配置验证过,直接开启fast_mode与自动提交,提前约 30 分钟启动脚本完成登录。如果你要抢的票只在 APP 端放售,就跳过 Web 端,按移动端路径先把./check_environment.sh跑绿,再进入 Appium 流程。

【免费下载链接】ticket-purchase大麦自动抢票,支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询