大麦网抢票脚本三步跑通指南:从登录到下单
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
本文讲大麦网抢票脚本 Automatic_ticket_purchase 的用法。它把购票全流程自动化:Selenium(浏览器自动化的库)只负责登录一次,之后由 requests 直接发接口请求查票、下单,不用手动点页面。时间成本约半小时:装 4 个依赖、配 6 个参数、跑 1 条命令,会看 Python 注释就够。
一句话看懂大麦网抢票脚本
一句话定位:浏览器只管登录,买票全走接口请求,这就是大麦网抢票脚本。
三条核心卖点:
- 接口请求,不用等页面渲染
- cookies 有缓存,二次运行免登录
- 随机票、选座购买都支持
📋 运行抢票脚本前要备齐的清单
- Python 环境就绪,装好 requirements.txt 里的 4 个依赖(selenium、requests、beautifulsoup4、pyexecjs)
- Chrome 浏览器 + 同版本 chromedriver,放到项目根目录并按系统改名:Windows 用 chromedriver_windows,Linux 用 chromedriver_linux,macOS 用 chromedriver_mac
- 一个大麦网账号,并提前在"我的大麦 - 交易中心"添加常用购票人
- 拿到目标演出的 item_id(详情页地址栏 id= 参数里),确认要抢的票价
🚀 三步跑通 Automatic_ticket_purchase
第一步,获取代码并装依赖。把项目克隆到本地,一次性装好依赖:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt第二步,做最小配置。打开 Automatic_ticket_purchase.py,找到init方法,把 6 行参数改成你自己的值:
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 # 购买指定票价第三步,运行验证。首次没有 cookies,默认走账号密码登录:
- 账号登录:
python Automatic_ticket_purchase.py - 扫码登录:
python Automatic_ticket_purchase.py --mode qr
看输出判断状态:出现"抢票成功"并打印 alipayOrderId,说明订单已创建,去"交易中心 - 订单管理"付款即可;循环停在"即将开抢"则是在等开售,提前启动挂着就行。
抢票脚本参数表:在哪改、坑在哪
| 参数 | 含义 | 在哪改 | 常见坑 |
|---|---|---|---|
| login_id / login_password | 大麦网账号与密码 | Automatic_ticket_purchase.py 的init | 只有账号登录才需要填,走扫码可留默认 |
| item_id | 演出商品id,各城市站不同 | Automatic_ticket_purchase.py 的init | 站选错就抢错场次,从详情页 URL 的 id= 里取 |
| viewer | 本次购票的常用购票人姓名 | Automatic_ticket_purchase.py 的init | 必须与大麦网购票人一字不差 |
| buy_nums | 购买票张数 | Automatic_ticket_purchase.py 的init | 要与 viewer 人数一致,否则启动即报错 |
| ticket_price | 目标票价(元) | Automatic_ticket_purchase.py 的init | 必须与场次实际价格一致,否则定位不到 sku |
| chromedriver_* | 驱动文件名 | tools.py 的 account_login() | 驱动与 Chrome 版本不匹配会起不了浏览器 |
| --mode | 登录方式 account / qr | 命令行参数 | 默认 account;首次无 cookies 时只有账号密码登录 |
🔁 大麦网抢票流程:登录后走到哪一步
登录(读本地 cookies.pkl 或开浏览器页面登录)之后,脚本进入循环:先用 subpage 接口查票源状态,"即将开抢"就继续等、再查;一旦变成"立即购买",就走到 orderConfirm 页面取订单参数,最后 POST 一次 createOrder 提交订单。
手动方式是"加载页面 - 找按钮 - 点击 - 等下一页"循环,每步都夹着渲染与网络抖动;脚本只发它需要的那几个接口请求,省掉全部中间页面动作,时间差就出在不等页面渲染上。
📸 参数定位实操:两张截图找 item_id 与购票人
我以抢一张 180 元价位的演唱会门票为例,参数定位分两步。
- 打开该场演出的详情页,取地址栏中 id= 后面的数字(图中为 610820299671),填进 item_id 参数。
- 进"我的大麦 - 交易中心",打开"常用购票人管理",把这次要买票的人加进去(图中为"李四"),姓名一字不差地写进 viewer 参数。
- 其余参数:buy_nums 填 1,ticket_price 填 180。开售前把脚本跑起来,"即将开抢"的状态由脚本循环盯着。
⚠️ 避坑:跑脚本时 5 个问题和改法
- 启动时提示"购买数量与实际观演人数量不符":buy_nums 与 viewer 姓名数不一致;改:让 buy_nums 等于 viewer 里的姓名个数。
- 提示"请检查输入的观演人信息与大麦网观演人信息是否一致":viewer 里的姓名与平台常用购票人对不上;改:对照大麦网"常用购票人管理"里的姓名逐字改。
- 提示"登录失败, 请检查登录账号信息":cookies.pkl 失效或密码改过;改:删除 cookies.pkl 文件重新登录一次。
- 浏览器起不来或页面卡死:chromedriver 版本与 Chrome 不匹配;改:换与 Chrome 同版本的驱动,按原名放进项目根目录。
- 抢选座场次时输出"获取sku_id失败":ticket_price 与选座页的价位对不上;改:改成选座页实际显示的票价之一。
⚡ 抢票脚本跑通后的几个小动作
- 首次登录成功会自动生成 cookies.pkl,之后运行跳过浏览器登录,直接进抢票流程。
- 不想把密码写在代码里,就用 --mode qr 改走扫码登录。
- 未开售的场次脚本会停在"即将开抢"循环等待,提前启动挂着即可。
- tools.py 里页面加载超时设为 60 秒,网络慢可以调大 set_page_load_timeout 的值。
- 接口参数取自大麦网前端 JS,页面改版导致解析失败时,按 get_api_param() 里的注释重新取参。
📁 项目资源文件位置
整个项目就三个主体文件:Automatic_ticket_purchase.py 管主流程,tools.py 管登录与选座,signcode.js 管接口签名。看懂上面那张流程图后,代码逻辑基本是透明的,你要做的只是把参数换成自己要抢的场次。
- 官方文档
- 核心源码
- 工具模块
- 签名脚本
- 依赖文件
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考