news 2026/9/24 13:34:51

3步跑通大麦自动抢票:Python+Selenium+Appium双端购票自动化完整攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3步跑通大麦自动抢票:Python+Selenium+Appium双端购票自动化完整攻略

3步跑通大麦自动抢票:Python+Selenium+Appium双端购票自动化完整攻略

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

开票 30 秒就售罄,手再快也快不过服务器——这是大多数人在热门演出面前的真实处境。今天介绍的大麦自动抢票工具基于 Python 开发,用 Selenium 接管 Chrome 网页、用 Appium 驱动 Android 手机,把选城市、选场次、选票价、勾观演人、提交订单这一整套动作全部自动化。你只需要提前配好参数,开票瞬间它替你完成下单,全程零人工干预。

30 秒速览

项目内容
一句话定位大麦网购票全流程自动化,支持 Web 与手机双端
技术栈Python + Selenium(Web)/ Appium(移动端)
环境依赖Python 3.7+;移动端另需 Node.js 20.19.0+、Android SDK、Appium、UiAutomator2
上手难度低,配好 JSON 参数即可运行
适合谁需要抢演唱会、体育赛事门票的新手和普通用户

先做选型:Web 端还是移动端?

两条技术路线都能跑通,但依赖成本不同。先看对比再决定:

对比项Web 端移动端
自动化引擎Selenium + ChromeAppium + UiAutomator2
额外依赖无(Chrome 最新版即可)Node.js 20.19.0+、Android SDK、Appium、UiAutomator2
配置文件damai/config.jsondamai_appium/config.jsonc
启动方式python damai.py./start_appium.sh+./start_ticket_grabbing.sh
操作对象大麦网页大麦 Android APP
适合人群想最快跑通、不想折腾环境的人习惯 APP 体验、需要模拟真机操作的用户

结论很直接:追求最短路径跑通,选 Web 端;需要 APP 侧界面或想模拟手机操作,选移动端。

两条路线互不冲突,环境允许的话可以都备着,开票时双管齐下。

从 0 到跑通:一条主线走完

不管选哪端,主线都是这 5 步:

第 1 步:拉取代码

git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase

第 2 步:安装 Python 依赖

poetry install # 或者 pip install -r damai/requirements.txt

Selenium 和 chromedriver-autoinstaller 会被自动装好,ChromeDriver 版本问题不用你操心。

第 3 步:一键体检环境

./check_environment.sh

这条命令把 Python、Chrome、ChromeDriver(移动端还会检查 Node、Appium、ADB)全部扫一遍,缺什么报什么。

第 4 步:移动端额外配置(仅移动端需要)

  • 安装 Node.js 20.19.0+
  • 安装 Appium 与驱动:npm install -g appium后执行appium driver install uiautomator2
  • 设置ANDROID_HOMEANDROID_SDK_ROOT环境变量
  • adb devices确认设备已连接,并在设备里提前登录好大麦 APP

第 5 步:填配置并启动

  • Web 端:编辑好 damai/config.json 后,进入damai目录执行python damai.py,浏览器会自动打开,你扫码登录,脚本开始监控票务状态。
  • 移动端:先./start_appium.sh启动 Appium 服务,确认手机停在目标演出页,再执行./start_ticket_grabbing.sh

环境检查一次到位,后面每次抢票只需要"改配置 + 点启动"。

配置精解:每个字段怎么填

配置文件是整个工具的核心,填对了才有后面的一切。先看target_url怎么拿:

打开大麦网页,搜索目标演出进入详情页,把浏览器地址栏的完整 URL 复制出来——里面有演出 ID,是脚本定位演出的唯一依据,填进target_url。页面上的城市、场次日期、票价栏,就是citydatesprices三个参数的取值来源。

日期和票价支持多格式匹配。页面今天显示 "2024.05.11",明天可能改成 "5月11日",你一次把可能的写法都配上,脚本会挨个尝试:

"dates": ["2024-05-11", "5月11日", "2024.05.11"], "prices": ["580", "¥580", "580元"]

大麦改了显示格式,你的配置照样能命中,不用等代码更新。

一个完整的 Web 端配置长这样:

参数速查表(Web 端 damai/config.json):

参数作用推荐值
index_url大麦首页,脚本入口https://www.damai.cn/
login_url登录页https://passport.damai.cn/login
target_url目标演出详情页完整地址从浏览器地址栏复制
users观演人姓名数组,按购买顺序排列["张三", "李四"]
city演出城市与页面城市栏一致,如广州
dates场次日期,支持多格式["2024-05-11", "5月11日"]
prices票价,支持多格式["580", "¥580"]
fast_mode快速模式开关true(首次运行建议先false
if_listen持续监听回流票true
if_commit_order是否自动提交订单首次运行务必false
max_retries轮询最大重试次数默认 1000,热门演出 5000+
page_load_delay订单确认页加载等待(秒)3~5

移动端 damai_appium/config.jsonc 字段略有不同,核心是server_url(Appium 地址)、keyword(APP 内搜索词)、datepriceprice_index(票价列表下标,从 0 开始)和if_commit_order,思路一致。

多格式写法是免费的容错保险,日期和票价能配几种格式就配几种。

原理拆解:开票瞬间脚本到底做了什么

Web 端详情页长这样,城市、场次、票价三个选择区域就是脚本依次操作的位置:

完整流程串起来是:

  1. 环境检查:验证 Chrome 与 ChromeDriver 版本兼容
  2. 扫码登录:打开大麦首页,等你人工扫码(唯一需要动手的环节)
  3. 进入详情页:加载target_url
  4. 依次选择:按配置匹配城市 → 场次日期 → 票价
  5. 轮询按钮:不断检查"立即预订"是否可点,有票立即跳订单确认页
  6. 选观演人:勾选users里配置的人
  7. 提交订单if_commit_ordertrue时自动提交

各阶段的终端输出长这样,方便你判断脚本卡在哪一步:

环境检查阶段

================================================== 大麦网抢票脚本启动 ================================================== ✓ 配置文件加载成功 - 目标URL: https://detail.damai.cn/item.htm?id=123456 - 观众人数: 2人 ⏳ 正在检查Chrome环境... Chrome版本: 144 ✓ ChromeDriver就绪

详情页选择阶段

***选择城市*** 目标城市: 杭州 ✓ 匹配成功: 杭州站 ***选择场次*** ✓ 匹配成功: 2026-04-11 周六 19:30 ***选择票价*** ✓ 匹配成功: ¥680

订单提交阶段

***准备提交订单*** ✓ 找到立即提交 ***订单已提交***

看懂输出日志,你就知道了脚本在哪一步、还差什么——排障只有一半工作量。

进阶调优:按场景开对开关

场景一:准点开票的热门场,快就是全部

  • 做法:配置里设"fast_mode": true
  • 收益:订单确认页加载从 2.0s 优化到 0s(改用显式等待);轮询间隔从 1.0s 降到 0.3s;点击后等待从 0.5s 缩到 0.2s。整体节省 5~8 秒,分秒必争的场景里这就是成败差距
  • 提醒:快速模式会减少调试输出。第一次用、或出问题时,先关掉它看完整日志

场景二:网络波动、页面加载慢

  • 做法:什么都不用配——选观演人环节找不到元素时,系统自动重试 5 次,每次间隔 0.5 秒,最多额外等 2.5 秒
  • 收益:服务器响应慢时不再一票否决,成功率明显更稳

场景三:想多留一手

  • 做法:多设备协同——不同账号 + 不同浏览器/设备并行跑,配置同一场演出
  • 收益:相当于多买几份"保险";但控制请求频率,别太频繁,避免触发风控

场景四:不同票源,时间策略不同

场景做法
准点开票max_retries设 5000+,提前 30 分钟启动脚本、10 分钟前完成登录、5 分钟前打开详情页
预售抢票提前 1~2 分钟开始轮询,卡住开票瞬间
回流票if_listen: true持续监听,有票立即下单

进阶的本质是"提前量":模式、重试、设备数都是为开票那几秒服务。

排障避坑:问题速查 + 安全清单

现象可能原因解法
提示"找不到用户元素"page_load_delay偏小;姓名与页面格式不一致page_load_delay调到 3~5 秒;检查名字有没有多余空格或后缀;关掉fast_mode看详细扫描日志
ChromeDriver 版本不匹配Chrome 更新后 Driver 还是旧的直接重跑脚本,会自动安装匹配版本;仍报错就执行python damai/check_environment.py手动体检
移动端提示设备未连接USB 调试未开 / 线缆问题开启 USB 调试后adb devices复验;检查ANDROID_HOME是否已设置
移动端报 Node 版本错误Node.js 低于 20.19.0升级到 20.19.0 / 22.12.0 / 24.0.0 任一兼容版本
Appium 连接被拒服务没启动或端口占用确认./start_appium.sh在跑,检查 4723 端口是否被占用

安全使用清单

  • ✅ 用小号测试和抢票,别拿主账号试错
  • ✅ 首次运行设if_commit_order: false,人工确认订单无误再开启自动提交
  • ✅ 配置文件里有观演人真实姓名,不要外发、不要提交到公开位置
  • ✅ 遵守大麦网使用条款,工具仅供学习与个人使用

先 false 后 true、先小号后主力——顺序对了,踩坑成本趋近于零。

资源延伸:核心文件与文档

  • Web 端主程序:damai/damai.py
  • 移动端优化版程序:damai_appium/damai_app_v2.py
  • 配置解析类:damai/config.py
  • 环境检查脚本:damai/check_environment.py
  • 一键环境检查:./check_environment.sh
  • Appium 启动脚本:./start_appium.sh
  • 移动端抢票启动脚本:./start_ticket_grabbing.sh
  • 项目概览:README.md
  • 快速入门:QUICK_START.md
  • PC 端完整指南:完整使用指南(PC端).md.md)

遇到问题先看 QUICK_START.md,细节查完整使用指南,基本能覆盖 90% 的情况。

抢票拼的从来不是手速,而是提前量:环境提前备好、参数配全格式、开关按场景调好,开票瞬间剩下的就交给脚本。祝你一次锁票成功 🎫⚡

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 13:34:37

1GW 机房:Anthropic 降本 40% 的底气?

模型的价格写在官网上,随时能改;算力的价格写在租约里,一签就是好几年。9 月 23 日,Anthropic 把这两件事同时摆上了台面。 模型那一侧:Opus 5.5 已在亚马逊云、谷歌云和微软 Azure 上线,官方称它在大多数任务上性能接近 Claude Fable 5.1,运行成本比 Opus 5 低 40%,定…

作者头像 李华
网站建设 2026/9/24 13:34:05

Keil中ARM Compiler 5.06u7安装与配置全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 13:33:44

【Dv2Admin】SoftDelete软删除

在现代Web应用开发和数据库管理中,软删除(Soft Delete)已经成为了一项重要的技术。软删除不仅可以在数据看似被删除的情况下保留其完整性,还可以提供安全性和可恢复性。这种技术尤其适用于数据审计和恢复需求较高的场景,能够有效减少因误删或恶意操作带来的数据损失风险。…

作者头像 李华
网站建设 2026/9/24 13:33:16

【Dv2Admin】ManyToManyField数据表单显示与配置

在教育管理系统中,学生与课程之间的多对多关系是一种常见且复杂的数据关联。如何高效管理这种关系,直接影响到学校资源的合理分配。Django 作为一个流行的 Python Web 框架,通过 ManyToManyField 提供了一种简单而强大的解决方案来处理这种复杂关系。 本文将通过构建一个学…

作者头像 李华
网站建设 2026/9/24 13:32:44

【Coze】【视频】书单选书工作流No.2

今天要演示的是一个 书单选书视频自动化工作流。它基于 Coze 平台,将书籍信息、封面图片、配套音频与视频合成能力结合在一起,能够实现从选书到生成完整短视频的全流程。工作流的设计逻辑不仅覆盖了数据处理、批量任务调度,还融合了大模型在音频合成、图像生成和视频渲染等方…

作者头像 李华