如何5分钟跑通抢票脚本:Automatic_ticket_purchase 完整上手指南
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
开票一秒,页面开始转圈,等你点下“立即购买”已经灰掉。Automatic_ticket_purchase 就是为这种场面而生的——它跳过页面界面、直连大麦票务后端,把购票动作从秒级压到毫秒级。这篇带你一步步跑起来。
它是怎么抢的:直连 API 抢票原理
先给结论:这个脚本不模拟你点击。它只用 Selenium 打开一次页面登录并收集 cookies,之后全部请求由 requests 库直发接口。
为什么快?浏览器里“等页面渲染、找按钮、等点击生效”的环节全被砍掉,一次“查库存 + 下单”只花几个请求的往返时间,是毫秒级,而人工点击还在秒级。
整体流程固定四步:
登录拿凭证 → 轮询商品接口直到按钮从“即将开抢”变“立即购买” → 组装参数提交订单 → 成功打印支付链接
全程在后台完成,你只需要盯控制台输出。
5分钟跑起来:环境安装步骤与首次运行
前置条件就两个:Python 3 和一个 Chrome 浏览器(浏览器只在登录时用一次)。安装只需五行命令:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase python -m venv venv source venv/bin/activate # Windows 用 venv\Scripts\activate pip install -r requirements.txt预期输出:pip 依次打印 requests、selenium、beautifulsoup4、pyexecjs 安装成功,没有红色报错行,就算通过。
还要准备一件事:登录依赖 Selenium,你需要下载与本机 Chrome 大版本匹配的 ChromeDriver,放进项目根目录,并按系统重命名为chromedriver_windows、chromedriver_mac或chromedriver_linux。驱动加载逻辑在 tools.py 里,版本不匹配会直接起不来,务必装对。
配置改完后执行python Automatic_ticket_purchase.py --mode qr,会弹出 Chrome,扫码即可;登录成功后 cookies 会存到cookies.pkl,之后再直接运行就不会开浏览器了。
核心配置逐项讲:在哪里改、为什么这么设
所有参数集中在 Automatic_ticket_purchase.py 的__init__里,改这四处就行:
self.item_id: int = 610820299671 # 商品id,每个城市不同 self.ticket_price: int = 180 # 目标票价,须与页面一致 self.viewer: list = ['李四'] # 购票人,需与账号列表完全一致 self.buy_nums: int = 1 # 购买数量,与购票人数量相等item_id 与票价:从演出页获取
同一场演出的不同城市站有各自的 item_id,它就在页面 URL 里,长这样:
为什么要设它:脚本靠这个编号锁定“抢哪张票”,拿错城市就等于白轮询。票价同理,同一场次有多个价位档,脚本按数值匹配档位,照抄页面数字即可,别自己凑整。
购票人列表与轮询间隔怎么调
viewer 里的姓名必须和“我的大麦”常用购票人列表一字不差,数量要和buy_nums相等,对不上脚本会当场拒绝执行:
轮询间隔方面,当前版本是死循环,两次轮询之间没有 sleep,间隔本质上就是一次接口请求的往返时间。想温和一点,就在 while 循环里加一小段 sleep;想抢得更快,就别加。
进阶提速三招:多线程、会话复用、时间同步
只讲思路,每招几行就能落地。
多线程监控多票价:每个价位开一条线程,谁先有票谁触发下单:
for price in price_list: t = threading.Thread(target=monitor, args=(price,)) t.start()会话复用:项目里的 requests session 自带连接复用,关键是别在轮询循环里反复新建会话,超时值也别设太大,否则重试反而拖慢节奏。
时间同步:本地时钟和服务器可能差出一点,开抢前先和 NTP 对一次时(Windows 右键托盘时钟就能同步),提前把请求预热好,开抢那一刻才不丢拍。
换平台/过验证怎么办
想换其他平台:思路和大麦一致——抓包找到查库存与下单两个接口,逆向出必需的参数和签名,再把主脚本里的步骤逐个替换。签名生成的 JS 逻辑在 signcode.js 里,可以直接当模板抄。
遇到验证码:登录是唯一的人机验证点,脚本已给 Chrome 去掉自动化标记(excludeSwitches 等参数),通常能直接过。万一弹出滑块,就在浏览器窗口里手动完成这一次登录即可,程序会一直等待页面标题变化,不会崩掉。
⚠️ 一句实话:README 已注明项目停止维护,多数购买流程迁移到了手机端,PC 端接口若变更需要你自行重新抓包。把它当学习框架,别当开箱即用的产品。
常见坑 FAQ
Q:启动就报 ModuleNotFoundError,缺模块?没激活虚拟环境,或依赖装进了别的 Python。用pip -V看解释器路径对不对,再回到 venv 里重装一次。
Q:Chrome 一闪就退出,提示 session not created?基本是 ChromeDriver 版本和 Chrome 大版本对不上。按你 Chrome 的版本重新下载驱动,按系统要求重命名并放到项目根目录,再跑一遍。
Q:运行后提示“获取购买必备参数失败”?多半是大麦前端 JS 更新,tools.py 里解析参数的正则不再命中,需要重新抓包比对参数;也可以换个网络环境稍后再试。
Q:为什么一直提示“购买数量与实际观演人数量不符”?viewer 数量和 buy_nums 不等,或姓名与我的大麦里列表对不上,先修正再跑。
抢票军备竞赛不会停,但这份代码是理解“接口 + 脚本”玩法的好起点。改出什么新坑的解法或新平台适配,欢迎 Fork 仓库后提 PR 一起完善。
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考