Python大麦抢票脚本完整指南:从环境搭建到订单提交,如何跑通整个流程
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
Automatic_ticket_purchase 是一个开源的大麦自动抢票脚本:登录成功后持续监控目标演出的库存状态,一旦开售便自动完成下单与订单提交。它适合想学习 Web 自动化的 Python 入门者,以及希望为指定演出预先配置购票流程的用户。
工作原理:浏览器只负责登录,下单走直连
脚本的主逻辑分成两层。登录环节通过 Selenium 打开大麦登录页,输入账号密码(或等待扫码),页面标题变为大麦首页后收集 cookies;之后的所有操作不再依赖浏览器,而是用requests直接请求detail.damai.cn、buy.damai.cn等接口,按"获取商品信息 → 立即购买 → 提交订单"的顺序推进。
有两个设计点值得注意:
- 登录成功后 cookies 会写入项目根目录的
cookies.pkl,再次运行时直接读取该文件,仅在失效时才重新登录。 - 监控循环根据按钮文案判断目标价位 SKU 的当前状态:"即将开抢"继续等待,"缺货登记"退出,"立即购买"进入下单,"选座购买"走选座分支(V2.1 新增,仅支持指定价位,暂不支持连坐)。
三步完成环境搭建
1. 克隆项目并安装依赖
环境要求 Python 3.6 及以上版本,在终端依次执行:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt依赖清单 只有四项:beautifulsoup4、requests、selenium、pyexecjs。最后一项的作用是通过 Node.js 执行选座所需的签名脚本 signcode.js。
2. 准备 ChromeDriver
登录环节要驱动真实浏览器,因此需要下载与系统、Chrome 版本对应的 ChromeDriver,放到项目根目录,并按操作系统重命名:Windows 下为chromedriver_windows,Linux 下为chromedriver_linux,macOS 下为chromedriver_mac。脚本按系统自动定位驱动文件,命名不符会在启动浏览器时直接报错。
3. 运行脚本
修改好参数(见下一节)后启动:
python Automatic_ticket_purchase.py # 或使用扫码登录 python Automatic_ticket_purchase.py --mode qr默认走账号密码登录;如果目录中已有上次保存的cookies.pkl,会优先读取该文件并跳过登录页。
参数配置:item_id 与 viewer 必须填对
需要修改的参数都在主脚本DaMaiTicket类的__init__方法中:
| 参数 | 作用 | 注意事项 |
|---|---|---|
item_id | 商品 ID | 每个城市、每个日期独立 |
viewer | 观影人姓名列表 | 须与账号登记的常用购票人一致 |
buy_nums | 购票数量 | 必须与viewer数量相同 |
ticket_price | 目标票价 | 用于匹配对应价位的 SKU |
login_id/login_password | 账号与密码 | 仅在账号登录模式下使用 |
获取item_id的方法:打开目标演出详情页,查看浏览器地址栏,id=后面的数字串即为商品 ID。不同城市、不同日期属于不同商品,务必确认复制的是目标场次。
viewer建议直接从"我的大麦 → 常用购票人管理"页面复制,与登记的实名信息逐字一致。脚本在提交订单前会把填写的观影人与服务端返回的常用购票人列表做比对,不一致会直接终止流程。
从监控到下单:运行后会发生什么
脚本启动后先请求个人信息页,验证 cookies 是否有效;验证通过则进入监控循环,反复拉取商品详情接口、读取目标价位 SKU 的按钮文案。读到"立即购买"后依次获取订单信息、勾选观影人、调用createOrder提交订单。
抢票成功时,终端会打印两行关键内容:
alipayOrderId(支付宝订单号)- 支付宝支付链接
此时前往"我的大麦 → 交易中心 → 订单管理"确认订单并完成支付即可。若在下单前提示"购买数量与实际观演人数量不符",检查viewer列表长度与buy_nums是否一致。
故障排除:四个常见问题
- 浏览器无法启动或立即报错:ChromeDriver 与本地 Chrome 版本不匹配。在"帮助 → 关于 Google Chrome"查看版本号,下载对应版本的驱动。
- 提示观演人信息不一致:姓名未逐字匹配。不要手动输入,直接从常用购票人管理页面复制。
- 登录反复失败:删除
cookies.pkl让脚本重新登录并保存;仍失败则检查账号是否被限制登录。 - 接口结构对不上:README 中声明项目已停止维护,大部分购买方式迁移至手机端,需配合抓包处理。若发现返回结构变化,需要自行调整 tools.py 中的解析逻辑,或将项目作为学习参考。
使用须知
本项目采用 MIT License,作者已声明仅供个人参考学习,并对商业使用不承担任何责任。请将其限定于个人学习与技术研究,遵守大麦网平台规则,避免高频请求对服务器造成压力,也不要利用脚本进行囤票、转售等行为。由于项目已停止更新,若计划用于正式演出,建议先在非热门场次验证整个流程的可用性。
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考