☰
大麦自动抢票脚本 Automatic_ticket_purchase:六项配置与登录到支付链接的完整购票链路
2026/10/19 1:56:41 网站建设 项目流程

大麦自动抢票脚本 Automatic_ticket_purchase:六项配置与登录到支付链接的完整购票链路

【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase

大麦网自动抢票脚本 Automatic_ticket_purchase 的核心设计很直接:登录后网页退场,下单环节全部通过 requests 直连接口,脚本对目标场次持续查询票态,对应价位变为可售的瞬间自动发起下单。从克隆仓库到首次登录成功,正常操作应在 10 分钟以内。README 已注明项目停止维护,购买主流程部分迁往手机端,把它当作接口交接材料更稳妥;完整链路都摆在明面上,适合想拆解抓包与接口逆向的开发者,不适用于商业倒卖。

仓库代码分三个文件:主脚本 Automatic_ticket_purchase.py 负责票态查询与下单,tools.py 负责登录、cookie 读写与接口参数解析,signcode.js 存放选座接口的签名算法。

克隆仓库与 4 个依赖安装

执行git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase进入目录,再pip install -r requirements.txt即可完成部署。requirements.txt 一共 4 个包:requests、selenium、beautifulsoup4、pyexecjs。Selenium 只在登录一步用于驱动真实浏览器,后续购票接口的调用全部交给 requests。ChromeDriver 要单独准备:下载与本机 Chrome 一致的版本,按系统重命名为chromedriver_windows、chromedriver_linux、chromedriver_mac,放到项目根目录,tools.py 会按系统自动找到它。

六项配置逐项填写

六项配置全部位于 Automatic_ticket_purchase.py 的__init__方法中:login_id、login_password是大麦账号与密码,默认账号模式才需要;item_id是演出商品编号,即详情页链接里id=后的数字,同一演出在不同城市取值不同,以目标城市场次为准;viewer是观演人姓名列表,须与“常用购票人管理”中的登记条目逐字相同,写错一字或留了空格都会通不过平台校验;buy_nums为购票张数,必须与viewer列表长度一致;ticket_price指定目标价位,如 180,脚本只盯这一档。

上图标出了id=的位置,照抄那串数字即可;viewer的姓名则要与“常用购票人管理”里登记的条目一一对应。

首次登录运行与 cookie 复用

直接运行python Automatic_ticket_purchase.py,默认走账号密码登录;偏好扫码就在命令后追加--mode qr。Selenium 打开大麦登录页,你完成输密或扫码后,tools.py 把得到的 cookie 写入本地cookies.pkl并做一次有效性校验。下次运行只要cookies.pkl存在就直接读取,浏览器只会在本地没有凭证时出现;旧凭证通不过校验时,脚本会直接提示登录失败。

两条下单链路与购票接口流程

下单前,脚本先由 tools.py 的get_api_param从大麦前端 JS 里提取两组请求参数(commodity_param、ex_params),随后进入循环:向 detail.damai.cn 查询item_id的价位状态,按钮文案为“即将开抢”就继续等待,为“缺货登记”说明该价位售罄、直接退出,出现“立即购买”才请求 buy.damai.cn 的orderConfirm生成订单信息,再 POSTcreateOrder拿到支付宝支付链接;付款后到“我的大麦 → 交易中心 → 订单管理”核对订单。

选座演出走另一条分支:先拉取座位图数据,过滤出目标价位下可售的座位,再按遍历顺序挑出与buy_nums一致的张数提交。当前版本只支持同一价位选座,不支持连坐,也不保证座位相邻。选座类接口带签名校验,算法在 signcode.js,由 tools.py 借助 pyexecjs 的 execjs 编译执行后得到 sign 参数。

登录与票态故障排查

  • 提示“登录失败”:先核对账号密码是否正确;cookies.pkl过期时删除该文件,改用python Automatic_ticket_purchase.py --mode qr重新扫码。
  • 浏览器起不来报 selenium 错误:多为 ChromeDriver 缺失、版本不匹配或命名不对,重新下载与本机 Chrome 一致的驱动,按系统重命名放入根目录。
  • 提示购买数量与实际观演人数量不符:buy_nums与viewer长度不一致,改为相等再运行。
  • 提示观演人信息不一致:对照“常用购票人管理”的登记条目逐项核对,去掉多余空格。
  • 提示“获取购买必备参数异常”:大麦前端 JS 更新导致get_api_param的解析逻辑失效,需对照最新页面代码手动重新提取两组参数,这是停止维护后必须自行处理的一步。

学习价值与延伸方向

剥掉抢票场景,这个仓库的价值在于把登录、查票态、下单的完整链路拆开逐步展示,比零散教程拼接接口知识直观得多。值得跟进的方向有两个:顺着现有代码继续学抓包,补全已迁移到移动端的下单链路;或者把票态查询抽成定时轮询,接上桌面通知,做成开售前常驻值守的监控。协议为 MIT,仅供个人学习参考;使用前请确认符合大麦网服务条款,账号、密码与 cookies.pkl 只存放在自己可信的设备上。

【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询