☰
Python大麦网抢票脚本:5步跑通部署与关键参数说明
2026/9/30 11:07:14 网站建设 项目流程

Python大麦网抢票脚本:5步跑通部署与关键参数说明

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

这个项目是一个Python大麦网抢票脚本:首次运行用浏览器完成登录并把cookie存到本地,之后不再依赖浏览器,直接用requests请求票务接口,当目标票价变为"立即购买"时自动完成下单与提交。核心能力是接口驱动的完整购票流程。

项目概览

脚本把大麦网PC端购票的三步(查票态→进下单页→提交订单)改写成纯HTTP请求执行,避开了页面渲染的等待。README开头注明项目已停止维护、大部分购买方式已迁移至手机端,把它当作技术学习样本比当作生产工具更合适。

完整流程:

  1. 读取本地cookie;没有则启动Chrome登录
  2. 校验登录状态,成功后保存cookie
  3. 循环轮询票务接口,检查目标票价状态
  4. 状态变为"立即购买"后调用接口创建订单
  5. 提交订单,输出支付宝支付链接

🚀 从0到跑通大麦网抢票脚本

环境要求:Python 3.7+、本机Chrome浏览器、Node.js(选座场景下通过execjs调用JS计算签名参数)。

  1. 获取代码并安装依赖:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt
  1. 下载与本地Chrome版本匹配的ChromeDriver,放到项目根目录,并按系统重命名:Windows为chromedriver_windows,Linux为chromedriver_linux,macOS为chromedriver_mac。驱动查找逻辑在 tools.py 的account_login中。

  2. 修改 Automatic_ticket_purchase.py 中__init__方法的参数,见下节。

  3. 启动:

python Automatic_ticket_purchase.py # 账号密码登录(默认) python Automatic_ticket_purchase.py --mode qr # 扫码登录

配置说明

所有参数都在 Automatic_ticket_purchase.py 的__init__方法中:

参数作用如何获取/填写
login_id/login_password首次登录大麦网使用的账号填已注册的大麦网账号密码
item_id定位目标演出商品演出详情页URL中的id参数
viewer观演人姓名列表必须与账户中已登记的观演人姓名完全一致
buy_nums购买数量必须等于viewer列表的人数
ticket_price目标票价(元)详情页对应票价档位的数字

获取演出项目ID:打开目标演出的详情页,在浏览器地址栏中找到id=后面的数字(例如...item.htm?...id=610820299671),这个值就是item_id。

大麦网抢票脚本中item_id的获取位置:详情页地址栏里的id参数

填写观影人:观演人需要提前在大麦网账户中登记。进入"我的大麦 → 常用购票人管理",把列表中的姓名原样填入viewer,一人一个元素,例如['张三', '李四']。

大麦网抢票脚本的viewer参数来源:常用购票人管理界面中的姓名列表

大麦网抢票脚本核心机制解析

为什么只在登录时用Selenium。早期版本靠按钮操作页面,每一步都要等待元素加载。2.0版把浏览器仅保留在登录环节(也是唯一有反自动化检测的环节),之后的票态查询、下单、提交全部改为requests直接请求接口,省掉了页面渲染开销。轮询与状态判断逻辑在 Automatic_ticket_purchase.py 的run方法中:

ticket_sku_status = ticket_info['skuPagePcBuyBtn']['skuBtnList'][sku_id_sequence]['btnText'] if ticket_sku_status == '立即购买': submit_order_info = self.step2_click_buy_now(ex_params, buy_serial_number) break

为什么本地缓存cookie。首次登录成功后,cookie通过save_cookies写入cookies.pkl;再次运行时load_cookies直接读取,跳过整个浏览器启动和登录流程,cookie失效时删除该文件即可。实现在 tools.py。代价是全部接口与参数都来自对PC网页的逆向:get_api_param靠正则从大麦前端JS里提取参数,选座签名靠 signcode.js 复算,大麦前端一旦改版,对应环节就会失效。

常见问题

现象:控制台输出"登录失败, 请检查登录账号信息"。 可能原因:本地cookie过期、账号密码填写错误,或ChromeDriver版本与浏览器不匹配。 解决:删除项目根目录的cookies.pkl后重跑;仍失败则改用--mode qr扫码登录,并核对驱动版本。

现象:控制台输出"获取购买必备参数异常,请重新解析response返回的参数"。 可能原因:脚本依赖的下单接口与页面参数解析来自旧版网页,大麦前端更新后get_api_param的正则不再匹配,且项目已停止维护、没有官方修复。 解决:用浏览器开发者工具手动抓取对应接口,比对返回结构与代码中的解析逻辑,自行更新。

现象:控制台提示"请检查输入的观演人信息与大麦网观演人信息是否一致"或"购买数量与实际观演人数量不符"。 可能原因:viewer中的姓名与登记值不完全一致,或buy_nums与viewer人数不等。 解决:核对常用购票人管理界面,保证姓名逐字一致、数量相等。

进阶方向

想深入的话,建议重点看选座签名的实现:脚本通过execjs在Node中执行 signcode.js 生成mtop接口的sign参数,是"接口逆向+签名复现"的一个完整小案例。项目已停止维护,动手前建议先用一场竞争小的演出跑通完整流程,验证环境后再自行评估接口是否可用。

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

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

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

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

立即咨询