大麦自动抢票脚本实测记录:完整跑通全流程 + 签名校验逆向拆解

📅 发布时间:2026/9/29 2:21:55
大麦自动抢票脚本实测记录:完整跑通全流程 + 签名校验逆向拆解
大麦自动抢票脚本实测记录完整跑通全流程 签名校验逆向拆解【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchaseAutomatic_ticket_purchase 是一个 Python 实现的大麦自动抢票脚本。它的核心机制很简单只让真实浏览器负责登录余票状态查询、下单、观演人提交全部走 HTTP 直连大麦接口完成。我完整跑了一遍流程这里记录配置、运行和容易出问题的细节。先说结论跑通了。装环境、登录、配参数、跑起来全程大约半小时。代码不长核心逻辑集中在两个文件里适合想看清接口逆向怎么做的开发者。如果你期待拿到就能抢到任意场次要先想清楚项目已经停止维护。操作实录从环境配置到自动抢票跑通环境准备核心依赖就四个都在 requirements.txt 里requests发 HTTP 请求负责所有接口直连selenium驱动浏览器只在登录环节使用beautifulsoup4解析 HTML用来校验登录状态pyexecjs在 Python 里执行 JS 签名代码另外要准备一个与本机 Chrome 匹配的 ChromeDriver。下载后改名为chromedriver_linux、chromedriver_windows或chromedriver_mac放到项目根目录。登录模块 会自动识别当前平台按名字加载对应驱动。登录与凭证复用脚本只在第一次运行时弹浏览器。登录成功后cookies 写入本地cookies.pkl。之后每次运行检测到文件存在直接复用登录态不再开浏览器。登录方式有两种默认账号密码把凭证填进代码加参数--mode qr改成扫码登录终端弹出二维码手机扫一下即可。推荐扫码密码不用写进代码里。关键参数配置打开 主脚本找到__init__方法一共六项self.login_id: str 你的账号 # 大麦网登录账户名 self.login_password: str 你的密码 # 大麦网登录密码 self.item_id: int 610820299671 # 商品id self.viewer: list [张三] # 大麦已登记的观演人 self.buy_nums: int 1 # 购票数量 self.ticket_price: int 180 # 目标票价档位item_id是商品 ID。用浏览器打开目标演出页面URL 里id后面的那串数字就是它。不同城市、不同场次对应不同 ID。viewer是观演人姓名必须和我的大麦 → 常用购票人管理里的记录一字不差多一个空格都会在提交订单时被拦下。buy_nums是购票数量必须和观演人数量相等。ticket_price是目标票价档位填错价格脚本就定位不到对应的 SKU。运行与状态变化运行命令python Automatic_ticket_purchase.py # 账号密码登录 python Automatic_ticket_purchase.py --mode qr # 扫码登录脚本进入循环持续查询目标票价的状态按状态分支即将开抢继续循环保持高频轮询缺货登记该价位已售空脚本直接退出并提示立即购买立刻发起下单一秒不耽选座购买走选座分支先拉座位图数据再按票价档过滤出可售座位下单成功后终端会输出支付宝订单号与支付链接去订单中心完成支付即可。它凭什么做到比手动快在自动抢票的每一环浏览器只干登录其余全部走接口常见的抢票脚本模拟人点按钮每一步都要等页面加载。这个项目让浏览器只干一件事登录。之后requests直连大麦接口不渲染页面不等按钮状态延迟从秒级降到毫秒级。tools.py 里还有个细节请求要带的参数不是写死的而是去拉大麦网的前端 JS 文件用正则把参数结构抠出来。官方 JS 更新后只需要改这一处代码。签名校验每个请求都要带的暗号大麦的接口有一层签名校验参数必须按特定算法加密缺了它服务器直接拒绝。这套算法完整实现在 signcode.js 里Python 通过 pyexecjs 读取该文件为每次请求生成 sign 字段。签名输入里有时间戳电脑时间一漂移签名就对不上。抢票前记得校准系统时间。四种状态驱动下单抢票的关键不是发请求越快越好而是该动的时候才动。脚本持续读取目标票价的状态变成立即购买才发起下单。状态没到就提前发请求会被风控拦下。取订单信息、点立即购买、提交观演人锁单每一环都有失败回退。README 里附了一张完整流程图可以对照着看。不注意这些细节就会出问题观演人姓名不精确多一个空格、少一个字提交订单都会失败。从常用购票人管理页面复制不要手打。数量与姓名不匹配buy_nums和viewer数量不一致时脚本会直接拒绝运行。跑之前先核对。系统时间不准签名依赖时间戳差几秒服务器就可能拒签。抢票前与网络时间同步。ChromeDriver 与 Chrome 版本不对应登录环节直接报错。下载驱动前先确认本机 Chrome 的版本。cookies.pkl过期失效后脚本仍会复用旧登录态且没有明显提示。登录失败时删除文件重新登录。item_id 填错会抢错场次。切换场次后务必重新核对地址栏里的id不同城市 ID 不同。想玩得更深多账号并行脚本按单账号优化跑多个实例、各自配置不同账号是最简单的扩展方式。连坐选择pick_seat函数目前按顺序取座位不考虑相邻有兴趣可以改成按相邻座位聚类后再挑。抢票通知下单成功后目前只打印支付链接在这里接上邮件或微信推送做到抢到即提醒。异步提速把requests换成aiohttp轮询和下单改成异步协程整体速度还能再上一个台阶。获取与使用提醒git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt项目是 MIT 协议。它的价值主要在技术学习接口逆向、签名算法复现、状态机设计三种实战都在这里。不适合高频刷接口也不适合商业倒票。另外大部分购买方式已迁移至手机端实际使用可能需要配合抓包调整逻辑。它最适合想练手网络编程的 Python 开发者。【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考