大麦网抢票脚本:Python 自动购票的完整实战指南
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
热门演唱会的票放出来也就几秒,等你手动刷新、点选、确认,页面早就变成"缺货登记"了。大麦网抢票脚本的思路是:让程序替你盯住目标票价,一旦按钮状态变成可购买,就自动走完查询、选席、提交订单的流程,把拼手速变成拼准备。
项目速览
一个基于 Python 的大麦网自动购票工具:Selenium 只负责登录这一步,requests 负责后续的查询和下单请求,BeautifulSoup4 解析页面状态,帮你把抢票流程自动跑完。
有一点要先说清楚:README.md 里标注项目已停止维护,部分购买链路已迁到手机端,跑之前先确认目标场次还能走 PC 端下单。
快速上手
- 检查 Python 版本(要求 3.6 及以上):
python --version- 准备浏览器驱动:下载与你 Chrome 版本匹配的 ChromeDriver,放到项目根目录,Windows 下重命名为
chromedriver_windows,Linux 下为chromedriver_linux,Mac 下为chromedriver_mac。驱动版本要和 Chrome 主版本一致,否则登录页容易触发滑块。 - 拉取代码:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase- 安装依赖(requirements.txt 已锁定 selenium、requests、beautifulsoup4、pyexecjs 四个包的版本):
pip install -r requirements.txt- 首次运行,先跑通登录:
python Automatic_ticket_purchase.py关键配置详解
打开Automatic_ticket_purchase.py,需要填写的参数都集中在DaMaiTicket类的__init__方法里,一共六处:
self.login_id: str = 'account' # 大麦网登录账户名 self.login_password: str = 'password' # 大麦网登录密码 self.item_id: int = 610820299671 # 商品id self.viewer: list = ['viewer1'] # 在大麦网已填写的观影人 self.buy_nums: int = 1 # 购买数量, 需与观影人数量一致 self.ticket_price: int = 180 # 购买指定票价| 参数 | 含义 | 获取方式 | 注意事项 |
|---|---|---|---|
| item_id | 目标演出的商品 ID | 打开演出详情页,取地址栏id=后面的数字 | 同一巡演不同城市站是不同的 item_id,别复制错场次 |
| viewer | 观演人姓名列表 | "我的大麦 → 常用购票人"里提前添加 | 必须与后台姓名逐字一致,多人写在列表里 |
| buy_nums | 购票张数 | 按实际需求填 | 必须等于 viewer 里的人数,否则脚本直接退出 |
| ticket_price | 目标票价,单位元 | 在演出页票价列表里选一个 | 一次只能指定一个价位,选座场次暂不支持连坐 |
| login_id / login_password | 大麦账号密码 | 你的登录账号 | 仅在首次登录时使用,之后走本地 cookies 文件 |
两个最容易踩的坑:item_id 复制成了其他城市的场次,抢下来的是别的演出;viewer 的名字和大麦后台差一个空格,提交订单时会被直接拦下。
item_id 怎么拿
进入任意一场演出的详情页,地址栏里id=后面那串数字就是 item_id,注意要选对你要抢的城市站。
观演人姓名从哪来
登录大麦网进入"我的大麦 → 常用购票人",把姓名原样复制进 viewer 即可,证件信息不用填,脚本按姓名匹配。
运行方式与工作流程
两种启动模式
python Automatic_ticket_purchase.py # 默认:账号密码登录 python Automatic_ticket_purchase.py --mode qr # 扫码登录脚本内部执行链路
- 处理登录:目录里有
cookies.pkl就直接加载,没有才用 Selenium 打开登录页;登录成功后自动把 cookies 存盘,下次不再打开浏览器。 - 校验登录状态:请求个人中心页面,用 BeautifulSoup 比对页面标题,确认 cookies 有效。
- 抓取下单参数:tools.py 会下载大麦前端 JS,用正则提取查询和下单接口所需的参数,省去手动抓包;选座接口需要的 sign 由 signcode.js 在本地计算。
- 轮询放票状态:循环请求商品信息,读目标价位的按钮文本,"即将开抢"就继续转,"缺货登记"直接退出,出现"立即购买"才放行。
- 提交订单:在订单数据里勾选指定观演人后 POST 到下单接口,成功时打印支付宝订单号和支付链接。
进阶技巧
开售前就位,吃满轮询窗口
首次登录后 cookies 会落盘,之后启动不再需要浏览器,全程就是纯 HTTP 轮询。开售前 10 分钟把脚本跑起来,它会安静地盯住目标价位,放票瞬间自动推进下单,你只需要盯着终端输出。
多账号多目录并行
想提高命中率,可以把项目复制成多份,每份填不同账号和观演人,各自独立运行。注意每个目录必须独立,因为cookies.pkl写在项目根目录,共用目录会互相覆盖登录态。
登录异常先查驱动
如果登录页反复弹滑块或超时,多数是 ChromeDriver 和 Chrome 版本不匹配。换一对版本一致的驱动,或者改用--mode qr扫码绕过,都比改代码省事。
常见问题
提示"购买数量与实际观演人数量不符"
viewer 里的人数和 buy_nums 对不上,比如填了 2 个观演人但 buy_nums 还是 1。把两个数改成一致再运行。
一直显示"登录失败"怎么办
先删掉本地cookies.pkl重新登录,旧 cookies 过期会卡在这里。还不行就换--mode qr扫码登录,同时确认账号近期有没有在其他设备操作过。
脚本跑起来没有任何输出,是不是卡住了
没有。目标票价还处于"即将开抢"时它就在静默轮询,等开售时间到,终端会立刻给出下一步动作或"手慢了,该票价已经售空"的提示。
报"观演人信息不一致"怎么排查
去"我的大麦 → 常用购票人"把姓名原样复制进 viewer,注意繁简体和空格,脚本是按字符串精确匹配的。
下单成功但没看到支付页
脚本成功后会打印alipayOrderId和支付宝支付链接,复制链接到浏览器打开付款即可。订单也可以在大麦"交易中心 → 订单管理"里查到。
这套脚本只适合给自己和家人买票的个人场景,遵守大麦网的使用规则,别拿来做批量倒卖。参数配好、开售前就位,剩下的交给它。
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考