大麦网抢票脚本 Automatic_ticket_purchase 新手完整教程:3 条命令跑通,6 个参数填对
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
Automatic_ticket_purchase 是一个面向学习研究的大麦网自动抢票脚本,用 Selenium 完成登录、requests 发起下单请求。读完本文,你可以在本地把脚本跑起来,配好全部关键参数,并看懂它从登录到下单的完整流程。
先搞清它是什么、能不能用
这个项目的定位是给学习者拆解大麦网 PC 端购票链路用的演示代码,不建议直接拿来当生产工具。它的技术分工比较清晰:首次登录会由 Selenium 打开浏览器完成,默认走账号密码,加--mode qr可以改成扫码;登录之后,查询商品、监控状态、提交订单全部改用 requests 直接发 HTTP 请求,不再依赖浏览器。
脚本会循环盯着目标票价按钮的文字变化:显示"即将开抢"就继续等,"缺货登记"直接结束,"立即购买"或"选座购买"才进入下单环节。V2.1 版本还新增了选座流程,可以指定票价档位并自动挑座位,但选座接口的签名依赖 signcode.js,本地需要先装好 Node.js。
有一点必须提前说明:README.md 已注明项目停止维护,且部分购买链路已迁往手机端,平台更新后接口随时可能失效。动手之前,建议先核对 tools.py 里的接口是否还可用。
把环境备齐
环境上只需要三样东西,缺一样都跑不起来:
- Python 3:解释器本体,任意较新版本即可。
- Chrome 浏览器:首次登录要靠 Selenium 驱动它。
- ChromeDriver:必须与本机 Chrome 版本严格匹配。下载后放到项目根目录,并按系统重命名(比如 Windows 下叫
chromedriver_windows),驱动查找逻辑写在 tools.py 的account_login里。
依赖包共四个:requests、selenium、beautifulsoup4、pyexecjs,一条命令就能装完,见下一节。
几条命令跑起来
依次执行下面三条命令:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase把源码拉到本地。
cd Automatic_ticket_purchase && pip install -r requirements.txt进入项目目录并安装全部依赖。
python Automatic_ticket_purchase.py启动脚本,默认用账号密码登录并进入购票流程;想改用扫码登录,就追加--mode qr参数。
参数怎么填、值从哪来
需要动手改的参数只有六处,全部集中在 Automatic_ticket_purchase.py 的__init__里。先记两条硬规则:buy_nums 必须等于 viewer 列表的长度,viewer 必须与网站常用购票人逐字一致(含大小写和空格)。
| 参数 | 含义 | 值从哪来 |
|---|---|---|
| login_id | 大麦网账号名 | 你平时登录大麦官网用的账号,仅首次页面登录时使用 |
| login_password | 大麦网密码 | 同上 |
| item_id | 目标场次(商品)的唯一编号 | 商品详情页地址栏里的id参数 |
| viewer | 购票人姓名列表 | "我的大麦 → 常用购票人"页面里的姓名,须逐字一致 |
| buy_nums | 购买张数 | 按需求自定,但必须与 viewer 人数相等 |
| ticket_price | 指定票价档位 | 详情页上你要买的那一档票价数字,如 180 |
item_id的取法直接看商品页 URL,红框处就是:
注意同一个演出在不同城市站对应的 item_id 不同,切换场次时务必重新核对。
viewer则来自常用购票人管理页,脚本提交订单前会用名单做比对,任何一个字对不上都会被拦截并提示观演人信息不符:
它到底是怎么下单的
整个运行过程分四个阶段,心里有数之后排查问题会快很多:
- 登录态检查:启动时先读本地 cookies.pkl;文件不存在或失效,就走 Selenium 打开登录页完成登录,成功后保存 cookies,再请求个人信息页确认登录真的有效。
- 信息准备:解析前端 js 拿到后续接口需要的公共参数(选座场景还要经 signcode.js 算出签名),然后拉取目标商品的 SKU 和各票价档位信息。
- 状态监控:循环查看目标票价按钮文字,按"即将开抢 / 缺货登记 / 立即购买 / 选座购买"四种状态决定是等待、结束还是进入下单。
- 下单请求:先请求订单确认页拿到提交所需参数,从账号常用购票人中勾选对应人员,再发出 createOrder 请求;成功后会打印订单号和支付链接。
让它跑得更稳
- 开抢前把系统时间与网络时间同步,避免时间偏差影响接口参数。
- 给关键请求加失败重试,并用逐步递增的退避间隔控制节奏。
- 挑延迟低、丢包少的网络,别和高负载任务抢带宽。
- 先在预售期或已散场时段把完整流程跑一遍,确认登录态和参数解析都正常。
- 项目已停止维护,用前把 tools.py 里的接口逐一核对一遍。
报错速查
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 启动后提示登录失败 | 本地 cookies.pkl 过期,或账号密码填错 | 删掉 cookies.pkl 重新登录 |
| Chrome 打不开或卡在登录页 | ChromeDriver 与浏览器版本对不上 | 下载匹配版本的驱动,按系统重命名后放进项目根目录 |
| 找不到商品或票价档位 | item_id 填错,或场次还没开售 | 对照商品页 URL 的 id 参数复核,确认售票状态 |
| 提示购买数量与观演人数量不符 | viewer 列表长度和 buy_nums 对不上 | 两者改成相等,例如 2 名购票人就买 2 张 |
| 提示观演人信息不一致 | viewer 姓名与网站常用购票人有细微差别 | 登录大麦网逐字核对姓名后修正 |
| 请求超时或参数解析异常 | 网络不稳,或前端 js 更新导致 get_api_param 取参失败 | 换稳定网络重试;按 tools.py 中该函数的注释重新解析参数 |
写在最后
本项目仅供学习与研究,不构成任何结果承诺。使用时请遵守大麦网及相关平台的使用条款,控制请求频率、不影响平台正常服务;建议先在预售或测试窗口完整验证一遍,再决定后续如何使用。
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考