尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Automatic_ticket_purchase 大麦接口抢票脚本拆解:3 次请求完成购票

发布时间:2026/9/30 2:23:23

资讯中心
01
ARTICLE

Automatic_ticket_purchase 大麦接口抢票脚本拆解:3 次请求完成购票

Automatic_ticket_purchase 大麦接口抢票脚本拆解:3 次请求完成购票
Automatic_ticket_purchase 大麦接口抢票脚本拆解3 次请求完成购票【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchaseAutomatic_ticket_purchase 是大麦抢票脚本V2.1selenium 仅负责登录拿到 cookie 后全链路用 3 次接口请求完成购票覆盖普通购买与指定价位选座两种模式。30 秒看懂它是什么这款大麦抢票脚本以「selenium 登录 requests 抢票」为主线Automatic_ticket_purchase.py 把购票链路写成 step1/step2/step3 三个方法tools.py 负责登录、参数抽取与签名计算signcode.js 提供 mtop 签名函数。全部依赖只有 requirements.txt 中的 4 个库。核心指标速览数值版本V2.1源码__Version__ 2.1.0购票链路3 次请求subpage→orderConfirm→createOrder登录方式首次 selenium之后复用cookies.pkl购买模式普通购买 选座单一价位不支持连坐Python 依赖4 个beautifulsoup4 / requests / selenium / pyexecjs它要解决什么问题开抢瞬间的人手时延。开抢那一秒人工「点击购买 → 等页面渲染 → 确认订单」要花数秒票会先被更快的脚本拿走。V2.0 之前的 V1 版本靠按钮操作还要逐个等待页面元素加载README 直接评价其「效率低下」。接口参数的黑盒成本。改走接口直连后commodity_param、ex_params与 mtopsign签名规则均无公开文档。传统做法是手工抓包后硬编码参数大麦前端 JS 一更新脚本即失效。登录态的维护成本。每次运行脚本都要重新登录而 selenium 易被识别为自动化控件、触发滑块。tools.py 用excludeSwitches掩掉了webdriver特征注释写明「若关闭会导致出现滑块并无法进入」。核心设计怎么工作登录解耦selenium 只取 cookie机制是「浏览器只干登录其余全部交给 requests」selenium 打开登录页成功后把 cookie 存入cookies.pkl下次运行先读文件再由check_login_status以页面标题是否为「我的大麦-个人信息」判定登录态。实现见 tools.py 的account_login/save_cookies/load_cookies调用顺序在 Automatic_ticket_purchase.py 的run()中。参数反解从前端 JS 动态取购票参数不硬编码参数而是请求大麦前端 bundle 后用正则抽出两组参数代码注释明确提示「大麦网 js 代码更新后需要修改此函数」。实现见 tools.py 的get_api_param()# 拉取前端 bundle用正则抽出两组购票参数 js_code_define requests.get( https://g.alicdn.com/damai/??/vue-pc/0.0.70/vendor.js,vue-pc/0.0.70/perform/perform.js).text commodity_param re.search(getSkuData:function.*?\|\|}}, js_code_define).group() ex_params re.search(,iZ}else{.*?;e, js_code_define).group()签名绕过本地计算 mtop sign选座链路要走 mtop 网关每次请求都需要h5_token 时间戳 参数算出的签名。机制是把站点签名逻辑复刻进 signcode.js用 execjs 加载后调用calcaulate得到 sign。实现见 tools.py 的get_sign_code()# 用 execjs 加载 signcode.js拼接 h5_token、时间戳与参数计算签名 node execjs.get() with open(signcode.js, r, encodingutf-8) as f: js_exec node.compile(f.read()) sign_code js_exec.call(calcaulate, {}{}12574478.format(h5_token, time_stamp) api_param)数据说话实测与横向对比以 V1 页面操作方式为基线README 的 V2.0 改造说明对比维度V1 页面操作基线V2.1 接口方式相对基线变化页面元素等待逐页等待元素加载0仅登录用到页面整页渲染 → 3 次请求登录每次运行 selenium 填账号首次 selenium之后复用cookies.pkl1 次 → 失效前复用选座不支持支持单一价位、不连坐V2.1 新增参数来源手工抓包硬编码动态抽取 alicdnvendor.js硬编码 → 动态上图即脚本操作的商品详情页URL 里的item_id如610820299671是抢票的核心输入不同城市、不同场次对应不同值。从零跑起来# 安装依赖与浏览器匹配的 Chromedriver 放项目根目录并按平台重命名如 chromedriver_windows pip install -r requirements.txt # 首次运行默认账号登录也可指定扫码登录 python Automatic_ticket_purchase.py python Automatic_ticket_purchase.py --mode qr5 个必改参数位于 Automatic_ticket_purchase.py 的DaMaiTicket类内# viewer 需与大麦网「常用购票人」已填写的姓名一致buy_nums 需与其数量相等 self.login_id: str account # 大麦网登录账户名 self.login_password: str password # 大麦网登录密码 self.item_id: int 610820299671 # 商品 id在商品 URL 中 self.viewer: list [viewer1] # 大麦网已填写的观影人 self.buy_nums: int 1 # 购买影票数量 self.ticket_price: int 180 # 购买指定票价运行后脚本循环轮询subpagebtnText为「即将开抢」则继续「立即购买」立即执行 step2/step3「缺货登记」则结束本轮。典型落地场景演唱会开抢瞬间的抢票抢演唱会某价位票是最典型用法。开售前从商品页 URL 取item_id见上文截图填好观影人姓名与目标价位后运行脚本。开抢后脚本在秒级内完成从轮询到下单的 3 次请求成功时打印alipayOrderId与支付宝支付链接提示到「订单管理」确认订单。剧场演出的指定价位选座剧场演出需要选座。脚本先通过mtop.damai.wireless.seat.dynamicinfo拿到 standId 与价位列表再拉全量座位图 JSON用format_valuable_seatid剔除不可售座位与目标价位外的座位pick_seat按字典序取前 N 个可售座位补齐buy_nums最后带上seatId走 orderConfirm 提交。以 180 元价位买 1 张为例脚本自动完成「选座 → 标记 isUsed → 提交订单」无需人工看座。⚠️ 踩坑与调优建议现象 / 监控点处理建议登录失败标题未落在「我的大麦-个人信息」检查账号密码删除cookies.pkl重新登录脚本有打印提示报「请检查输入的观演人信息与大麦网观演人信息是否一致」viewer与「常用购票人」姓名对齐且buy_nums等于人数打印「手慢了该票价已经售空」btnText 缺货登记结束本轮等下一轮放票或改ticket_price打印「获取 sku_id 失败」选座模式价位列表中未命中目标价核对ticket_price与现场价位get_api_param()正则匹配不到内容大麦前端 JS 已更新重新取vendor.js调试正则版本号0.0.70硬编码selenium 触发滑块验证确认excludeSwitches与disable-blink-featuresAutomationControlled两项选项均已开启边界与展望当前局限README 开头标注「已停止维护暂无更新计划」且大部分购买方式已迁移至手机端PC 接口方式需配合抓包适配。选座仅支持指定单一价位不支持连坐V2.1 更新说明。get_api_param()的正则与 JS 版本号0.0.70均硬编码前端一更新即断裂。演进方向适配手机端购买链路README 已点出抓包方向。基于coordinate2sid坐标结构把pick_seat扩展为连坐组合选择。参数抽取从硬编码正则改为版本自适应拉取。合规提示README 声明仓库仅用于个人参考学习作者对商业用途或侵犯大麦网利益的行为不承担责任。把 selenium 限制在登录边界、把整条购票链路换成纯接口请求Automatic_ticket_purchase 用 3 次请求替代了「点击—等待—再点击」给出了一个可迁移到其他电商链路验证的低成本接口抢票实现。站点迁移手机端削弱了它的直接抢票价值但「登录态复用 参数动态抽取 本地签名计算」的完整拆解样本仍有参考意义。【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。