5分钟跑通大麦抢票:Selenium 自动抢票脚本完整上手指南
【免费下载链接】ticket-purchase大麦自动抢票,支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase
开售那一刻,页面还在转圈,点进场次时已显示售罄;回流票放出的那几十秒,手动刷新总慢半拍。ticket-purchase 是一个基于 Python + Selenium 的大麦抢票自动化工具:它替你完成登录、轮询票源、选择城市场次票档并提交订单,适合愿意花十分钟搭环境、只想要一张票的个人用户。
🚀 最快跑起来
环境要求:Python 3.7+ 和最新版 Chrome,macOS / Windows / Linux 均可。
- 获取项目:
git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase- 安装依赖(ChromeDriver 版本由 chromedriver-autoinstaller 自动匹配,无需手动下载):
cd ticket-purchase pip install selenium chromedriver-autoinstaller- 在项目根目录创建 config.json,填好 target_url、users 等必填项(模板见下文"关键配置",缺文件时脚本会直接打印模板)。
- 启动:
python damai/damai.py首次运行会弹出 Chrome,用大麦 App 扫码登录;登录态会存成本地文件,之后运行不用重复扫码。
🔍 它是怎么干活的
整个流程是一条状态明确的链条,每一步都知道自己走到哪:
- 环境检查与启动:自动匹配并安装对应版本的 ChromeDriver,失败时提示运行
python damai/check_environment.py修复;启动 Chrome 时关闭自动化标记,让页面表现得像正常浏览器。 - Cookie 登录:首次扫码登录成功后,Cookie 写入本地
damai_cookies.pkl;下次启动直接加载,省掉扫码环节。 - 进入详情页并做选择:按配置依次点选城市、场次、票价、数量。dates 和 prices 支持多格式模糊匹配,"2026-04-11"、"4月11日"、"2026.04.11" 都能对上页面文案。
- 轮询检测购票状态:程序循环检查详情页按钮——未开售或售罄时刷新等待;出现"缺货登记"且 if_listen 开启时自动登记并持续监控票源;按钮变为"立即预订/立即购买/选座购买"的瞬间点击,不等固定延时。
- 订单确认页提交:if_commit_order 为 true 时自动选观演人并提交;流程结束后页面停留 5 分钟,方便你核对订单状态。
流程按"登录 → 加载购票信息 → 检测票状态 → 提交订单"推进,未登录走扫码分支,目标票缺货则走缺货登记分支,两条分支都会回到主循环。
快与稳来自三处设计:fast_mode 把轮询间隔从约 1 秒降到 0.3 秒、用显式等待替代固定 sleep,详情页选择通常从 4-7 秒缩到 1.1-1.8 秒;Cookie 复用与驱动版本自动匹配减少环境类故障;每一步都有异常分支,失败时刷新重试而不是崩溃,max_retries 限制总次数防止无限循环。
⚙️ 关键配置怎么填
config.json 核心参数:
| 参数 | 作用 | 建议值 |
|---|---|---|
| target_url | 目标演出详情页地址 | 演出页 URL |
| users | 观演人姓名列表 | 与大麦实名观演人逐字一致 |
| city | 演出城市 | 与详情页城市标签一致 |
| dates | 场次日期列表 | 多格式,如 "2026-04-11"、"4月11日" |
| prices | 票价列表 | 多格式,如 "680"、"¥680" |
| fast_mode | 快速模式开关 | true |
| if_listen | 缺货登记与回流监控 | true |
| if_commit_order | 是否自动提交订单 | 首次 false |
| max_retries | 最大重试次数 | 1000,热门演出 5000+ |
| page_load_delay | 订单页加载等待(秒) | 2 |
配置项与详情页元素一一对应:city 对应城市标签,dates 对应场次行,prices 对应票档,users 人数决定右下角的购买数量。
两个最影响结果的参数:
- fast_mode:开启后轮询间隔从约 1 秒降到 0.3 秒,点击后等待从 0.5 秒降到 0.2 秒,单轮整体节省约 5-8 秒。网络稳定、熟悉流程时保持 true;首次跑通或排查问题时改 false,能看到完整的调试输出。
- if_commit_order:true 时进入订单确认页后自动选观演人并提交。建议首次先设 false,人工确认流程走到哪一步、按钮文案是否符合预期,再放开自动提交。
📊 效果与实测
| 环节 | 手动操作 | 脚本执行 |
|---|---|---|
| 登录验证 | 约 30 秒 | 约 15 秒(Cookie 复用后更快) |
| 场次/票价选择 | 3-5 秒 | 通常 0.5-1 秒 |
| 订单提交 | 2-4 秒 | 约 0.5-1 秒 |
| 单轮总耗时 | 约 37-42 秒 | 约 2-3 秒 |
以上为项目文档给出的量级:fast_mode 下详情页选择约 1.1-1.8 秒,单轮整体节省 5-8 秒。抢票竞争集中在开售后的前几秒,省下的这几秒决定了脚本能否在票放出的瞬间完成点击。
🛡️ 避坑与调优
三个高频问题:
- 找不到观演人/用户元素:现象是选择步骤卡住报错。原因通常是页面未加载完,或 users 中的姓名与大麦观演人实名不一致(多了空格或后缀)。解法:page_load_delay 调到 3-5,并逐字核对姓名。
- ChromeDriver 版本不匹配:现象是启动时环境检查失败。解法:运行
python damai/check_environment.py,自动下载匹配版本。 - 提交订单失败:现象是停在订单确认页不往下走。原因可能是按钮文案变化或页面存在遮挡层。解法:先设 if_commit_order 为 false,手动走到确认页核对元素,再恢复自动提交。
调优建议:开售前 30 分钟跑 check_environment,10 分钟前扫码确认会话有效,5 分钟前打开详情页开始轮询;使用有线网络并关闭占带宽的应用,热门演出把 max_retries 提到 5000 以上。
📌 边界与收尾
合规使用:
- 仅用于个人观演,不用于商业倒卖;
- 保持脚本轮询频率在默认范围内,避免对服务器造成额外压力;
- 遵守大麦网服务条款,账号因此被风控需自行负责。
账号安全:
- 建议用专门账号测试,勿用主账号长时间空跑;
- Cookie 存在本地
damai_cookies.pkl文件中,不要随代码一起分享; - 避免在公共网络中运行脚本。
把仓库克隆下来,写好配置,开售前半小时启动即可——剩下的动作只剩一次扫码。
【免费下载链接】ticket-purchase大麦自动抢票,支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考