Automatic_ticket_purchase:Python 大麦抢票脚本,自动完成登录、票源监控与下单
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
热门演出开票时,手动点击常常败给页面加载与人工填写。Automatic_ticket_purchase 是一个开源的 Python 抢票脚本:它自动登录大麦网、监控指定演出的票源状态,并在目标票价出现购买入口时自动提交订单,用户只需最后付款。下文从使用者角度说明如何运行、如何配置,以及它背后的基本工作原理。
📌 大麦抢票脚本定位:解决什么问题、适合谁
大麦 PC 端购票流程包含登录、查询票档、点击购买、填写观演人、提交订单等多个步骤,每一环都依赖人工操作。Automatic_ticket_purchase 把这条链路自动化:在开票前启动后持续监控票源,按钮可点时立刻进入下单流程,成功后输出支付链接。
- 适用场景:已知开票时间,希望开票瞬间自动开始抢购;支持非选座(直接购买)与指定价位的选座购买(V2.1 版本,暂不支持连坐)。
- 适用人群:想为本人或亲友抢购演出票的用户,以及想学习 Python 网页自动化的新手,代码集中在两三个文件中,篇幅短、易通读。
- 需要说明:README 明确标注项目已停止维护,大部分购买方式已迁移至手机端,实际可用性取决于大麦 PC 端接口的现状,建议先当作学习材料评估。
🚀 三分钟跑起来:抢票脚本部署步骤
第一步,获取代码并安装依赖:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt第二步,准备 Chrome 驱动。脚本通过 selenium 驱动 Chrome 完成登录,需下载与本机 Chrome 版本匹配的 chromedriver,按系统重命名(chromedriver_windows / chromedriver_linux / chromedriver_mac),放到项目根目录。
第三步,按下一节填好参数后启动:
python Automatic_ticket_purchase.py # 默认账号密码登录 python Automatic_ticket_purchase.py --mode qr # 二维码登录首次运行会弹出浏览器完成登录并保存 cookie,之后再次启动就不再需要重复登录。
🧾 配置参数速查:item_id、viewer 等核心参数怎么填
核心参数都写在 Automatic_ticket_purchase.py 的__init__中:
| 参数 | 作用 | 从哪里获取 | 常见错误 |
|---|---|---|---|
item_id | 演出商品 ID,脚本靠它定位目标演出 | 大麦演出页面 URL 中的id=部分 | 不同城市、场次对应不同 item_id,不能照抄示例 |
viewer | 观演人姓名列表 | 大麦网「常用购票人」中已添加的姓名 | 姓名必须与网站登记的完全一致,且需提前添加 |
buy_nums | 购买票数 | 按实际需求填写 | 必须等于viewer人数,否则脚本直接退出 |
ticket_price | 目标票价(元) | 演出页面的价格档位 | 只精确匹配该价位,填错就抢不到 |
login_id/login_password | 大麦账号与密码 | 自有账号 | 仅在无 cookies.pkl 时使用 |
--mode | 登录方式 | 启动参数 | 默认 account,可选 qr 扫码 |
item_id就在演出页地址栏里,见下图红框位置:
viewer的姓名需要先在大麦网「我的大麦 → 常用购票人管理」中添加,脚本提交订单时会自动勾选你指定的这些观演人:
⚙️ 脚本内部如何工作:requests 与浏览器自动化的分工
整个项目就三个代码文件,分工清晰:
- Automatic_ticket_purchase.py:主流程。
DaMaiTicket类把购票拆成三步——第 1 步请求票档接口并判断按钮状态(即将开抢 / 缺货登记 / 立即购买 / 选座购买),开票前循环轮询「即将开抢」,状态变为「立即购买」立即进入第 2 步订单确认,第 3 步用指定观演人提交订单并打印支付链接; - tools.py:工具函数。用 selenium 完成登录、读写 cookie(存为 cookies.pkl)、校验登录状态、解析请求所需参数,选座相关接口也在其中;
- signcode.js:选座接口的签名算法,通过 pyexecjs 在 Python 中执行。
两种技术的分工值得留意:浏览器只在开头登录时用一次,之后的所有操作都由 requests 直接请求网站自身使用的数据接口(所谓 API 直连,即不打开网页、直接调用页面背后的数据接口,省去了等待页面渲染的时间)。登录得到的 cookie 会保存到本地文件——即 cookie 持久化,把「已登录」凭证留下来下次直接复用。可以这样理解:快递员先上门取件(浏览器登录),之后包裹走固定专线(API)直达目的地,不再逐站绕行。
🛠️ 避坑与排查:常见问题速查
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 首次运行弹出浏览器要求输入密码 | 还没有 cookies.pkl,走账号登录 | 填写正确账号密码,或改用--mode qr扫码 |
| 启动提示「登录失败」 | 保存的 cookie 已失效 | 删除 cookies.pkl 后重新登录 |
| 浏览器打不开、报 chromedriver 错误 | 驱动版本与 Chrome 不匹配,或文件没放项目根目录、命名不符 | 下载对应版本驱动,按平台要求重命名 |
| 提示「购买数量与实际观演人数量不符」 | buy_nums与viewer人数不一致 | 调整两处保持一致 |
| 提示「请检查输入的观演人信息与大麦网观演人信息是否一致」 | 姓名未添加或写法不一致 | 提前在网站添加常用购票人,姓名与登记完全相同 |
| 提示「缺货登记」后退出 | 目标票价已售空 | 更换票价档位或放弃本次抢购 |
| 解析参数报错、拿不到票源信息 | 项目已停维护,网站 JS 或接口更新后get_api_param可能失效 | 按提示重新解析参数,或把代码当学习材料研究 |
⚖️ 使用边界与合规说明
- 依据 MIT License 与 README 免责声明,仓库仅限个人参考学习与技术研究;
- 不要用于倒卖门票等商业用途,维护正常市场秩序;
- 控制请求频率,避免给平台服务器带来压力,遵守大麦网服务条款;
- 购票流程已向手机端迁移,脚本当前实际可用性有限,更适合作为接口分析与自动化实践的学习样本。
适合谁、如何参与
适合想为自己或家人抢一张演出票、同时愿意读一点代码来弄懂请求与自动化的新手。使用过程中发现问题,或在接口变动后修复了解析逻辑,都可以向仓库提交 issue 或 Pull Request。
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考