Python大麦抢票脚本完整指南:从环境配置到自动化下单全流程

📅 2026/8/23 15:39:15
Python大麦抢票脚本完整指南:从环境配置到自动化下单全流程
Python大麦抢票脚本完整指南从环境配置到自动化下单全流程【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase开票前 3 秒你按下购买页面还卡在加载几秒后屏幕只剩缺货登记——这就是手动抢票的真实处境。这套大麦抢票脚本 Automatic_ticket_purchase 就是干这件事的用浏览器完成一次登录后全程切换为纯 API 请求持续盯住票档状态按钮一旦变成立即购买就自动走完下单流程不需要你再碰鼠标。 项目速览这套大麦抢票脚本是什么定位面向大麦网damai.cnPC 网页端的自动抢票工具V2.1 版本核心逻辑集中在 核心源码一个DaMaiTicket类和 工具函数库 两个文件里没有复杂架构读完一遍就能懂。解决什么问题人工抢票的瓶颈不在手速而在浏览器要渲染页面、人眼要确认状态。脚本把这两件事都省掉——登录之外的一切操作都直接打接口毫秒级完成。核心亮点双引擎设计Selenium 只负责登录账号密码 / 扫码 / 短信抢票阶段完全用 Requests 直连 APICookie 复用首次登录后把 Cookie 存进cookies.pkl再次运行不再弹浏览器状态机监控循环检查目标票档的按钮文案即将开抢 / 立即购买 / 缺货登记 / 选座购买自动决策下一步V2.1 支持选座购买自动拉取座位图、过滤可售座位、按顺序选座暂不支持连坐。一句实话README.md 顶部明确标注已停止维护——大麦的大部分购买流程已迁移到手机端纯 PC 网页链路需要配合抓包才能维持。把它当作学习浏览器自动化 接口调用混合架构的优质范本来看价值比当工具更大。 快速上手大麦抢票脚本安装与首次运行安装依赖与配置 ChromeDriver# 1. 克隆项目 git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase # 2. 安装依赖selenium 3.141.0 / requests / beautifulsoup4 / pyexecjs pip install -r requirements.txt注意一点项目锁定的 selenium 是 3.141.0 老版本必须手动指定 ChromeDriver 路径。去 ChromeDriver 官方下载页取与你 Chrome 版本匹配的驱动按系统重命名后放到项目根目录chromedriver_linux / chromedriver_windows / chromedriver_mac对应 tools.py 里account_login函数的查找逻辑命名不对浏览器就打不开。选座功能还会用到execjs执行 JS 签名如果你要跑选座分支需另外装一个 Node.js 运行环境。如何获取 item_id 并配置抢票参数编辑 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 [你的姓名] # 观演人须与大麦网登记的名字完全一致 self.buy_nums: int 1 # 购买数量必须等于观演人人数 self.ticket_price: int 180 # 目标票价元用于匹配 skuitem_id怎么拿浏览器打开目标演出页地址栏id后面那串数字就是viewer里填的名字必须与大麦常用购票人管理中登记的信息一字不差脚本在提交订单前会用接口返回的观演人列表做一次校验对不上会直接终止首次运行大麦抢票脚本# 默认账号密码登录会打开 Chrome python Automatic_ticket_purchase.py # 或改用扫码登录推荐避免密码明文 python Automatic_ticket_purchase.py --mode qr首次运行会弹出浏览器登录。登录成功后 Cookie 自动写入cookies.pkl之后的运行直接复用登录态脚本一启动就进入抢票主循环。抢票成功后终端会打印支付宝订单号和支付链接记得去交易中心 → 订单管理确认并支付。 核心机制拆解脚本如何三步完成抢购整体流程是一个状态机README.md 里的流程图讲得很清楚登录阶段Selenium 只做这一件事account_login用 Chrome 打开登录页账号模式下切进alibaba-login-boxiframe 填账号密码回车扫码模式则等页面标题变成大麦首页标题WebDriverWait最长等 180 秒。拿到 Cookie 后还有一道check_login_status校验——请求我的大麦个人页用 BeautifulSoup 比对title是否为我的大麦-个人信息防止看似登录实则没登。这段代码里藏着两个反自动化检测的细节值得抄走option.add_experimental_option(excludeSwitches, [enable-automation]) # 关掉 webdriver 特征 option.add_argument(--disable-blink-featuresAutomationControlled) # 防滑块拦截不加这两行navigator.webdriver暴露自动化身份登录页大概率弹滑块卡死。抢票主循环盯住按钮文案做决策登录后脚本进入while True死循环每一轮做三件事step1 取商品信息请求detail.damai.cn/subpage从返回的skuList里按ticket_price匹配出目标sku_id同时读出该票档按钮的文案btnText按文案分支即将开抢→ 继续循环缺货登记→ 结束并提示立即购买→ 进入下单选座购买→ 进选座分支下单两步走step2_click_buy_now请求buy.damai.cn/orderConfirm并正则抠出页面里的window.__INIT_DATA__订单确认页的全部数据step3_submit_order校验观演人后 POSTcreateOrder提交。也就是说脚本快的本质不是发请求快而是省掉了所有渲染和人工确认你盯着页面看能不能买的那几秒就是它拉开的差距。还有一个容易忽略的细节get_api_param函数是正则解析大麦前端 JS 源码g.alicdn.com上的 vendor.js来提取请求参数模板的。这意味着大麦一旦升级前端 JS这套正则就会失配——这也是此类接口型脚本最脆弱的一环下文 FAQ 会再提。选座分支JS 签名 自动选座选座购买的请求走mtop.damai.cn网关必须带一个sign参数。signcode.js 里是作者从大麦页面扒下来的签名函数本质是一段 MD5 变体实现get_sign_code用execjs在 Node 里执行它算出签名。拿到签名后脚本依次拉取座位区数据 → 查询可售座位状态 → 按楼层 → 排 → 列构建座位树并过滤掉不可售座位和价格不符的座位 →pick_seat从树上按序取buy_nums个seatId→ 走orderConfirm确认选座 → 提交订单。pick_seat的实现非常朴素——遍历顺序取前 N 个可用座位不保证连坐。想改选座策略比如偏好中间区、连坐优先只需重写这个函数。 进阶技巧与常见坑先跑通登录再抢票开票前几小时先把脚本跑到登录成功、进入监控循环的状态让cookies.pkl就位。开抢时脚本秒进主循环比现场现登录省下至少几十秒。buy_nums与viewer数量不一致会直接退出run()第一行就校验比如买 2 张票viewer就必须写 2 个名字。观演人校验失败是高频报错请检查输入的观演人信息与大麦网观演人信息是否一致通常是名字含生僻字、多打了空格或该观演人未在常用购票人里启用。登录态失效的处理终端提示登录失败时删掉cookies.pkl重新运行即可大麦 Cookie 有效期有限跨天使用建议重登。前端 JS 变更导致解析异常如果 step2 打印获取购买必备参数异常说明window.__INIT_DATA__的结构或get_api_param里的正则匹配不上了需要打开大麦页面重新抓一遍 JS 修 tools.py 对应函数。这是该项目停更后最大的使用障碍。网络环境有线网络 关掉占带宽的后台程序。脚本循环间隔由接口响应时间决定不要人为把间隔改得更短去刷高频异常请求只会触发风控。成功 ≠ 出票脚本打印抢票成功只代表订单创建成功支付宝支付链接需要在有效期内完成付款别挂完就关终端。❓ 常见问题 FAQQ完全不懂代码只改 6 个参数能跑吗能但前提环境得装对Python、依赖、ChromeDriver 三者版本匹配。建议先用--mode qr扫码登录跑一次冷门场次确认能走到监控票状态的循环再上真正的开抢。Q为什么每次运行都弹浏览器说明cookies.pkl没生成或已失效。可能原因首次登录没等页面完全跳回大麦首页、扫码超时脚本只等 180 秒、或大麦 Cookie 过期。手动删除cookies.pkl重新登录一次。Q支持连坐吗能指定区域选座吗当前 V2.1 选座只按座位树顺序取前 N 个可售座位不支持连坐也不能指定内场/看台 A 区。pick_seat是个十几行的函数按排号排序、按奇偶行配对都能自己改。Q项目停更了现在还能用吗能用于学习和低热度场次的实战但热门演出要谨慎大麦已将多数购买流程迁到手机端PC 端接口和反爬策略随时可能变化作者也明确无更新计划。把它当成一套活的教学案例——登录反检测、接口逆向、JS 签名复现、状态机设计四个知识点都在几十行代码里。QChromeDriver 版本不匹配会怎样Chrome 90 之后版本严格校验不匹配会报session not created直接崩。原则是驱动版本与浏览器版本的大版本号一致。Q有封号风险吗脚本没有做高频轰炸请求节奏跟随接口响应正常个人使用风险可控但任何绕过前端直接调接口的行为都可能在风控升级时失效。建议只用于个人购票别转售别多账号轮询。 结语这套大麦抢票脚本的真正价值是把一次登录、全程接口、状态机决策、JS 签名复现这套完整的自动化链路压缩到了 500 行以内的可读代码里——哪怕它已经停更也足够你拆解清楚一个 Web 抢票系统是怎么跑起来的。技术的价值在于服务自己用它帮自己抢下一张想看很久的演出票是合理需求但请保持对个人使用的边界——不商用、不转售、不施压服务器尊重平台规则和其他抢票者的公平机会。【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考