手把手跑通大麦网 Python 抢票脚本:从 item_id 到提交订单
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
这篇带你走一遍 Automatic_ticket_purchase,一个用 Python 写的大麦抢票脚本。登录靠 Selenium,下单靠 requests 直连接口,item_id、观演人、票价填好就能跑。适合想练手接口自动化、也想看懂抢票流程的新手。
先说清楚:为什么手动抢不过脚本
热门演出开售时间精确到点,你从打开详情页到点完"立即购买",中间隔着选票价、填观演人、页面加载,每步 1-2 秒。手动抢经常还没进下单页就售罄了。
另一个卡点是按钮状态:开售前显示"即将开抢",要人肉盯到它变成"立即购买"再动手,手动刷新很难卡准时间点。
脚本的思路是把鼠标点击换成接口请求:登录一次存下 cookies,之后循环轮询票价状态,状态一变就连续发下单请求。
快速上手:5 步跑通第一次抢票 🚀
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase- 安装依赖,一共 4 个库:
pip install -r requirements.txt- 准备 ChromeDriver:下载与本机 Chrome 匹配的版本,按平台改名为
chromedriver_windows、chromedriver_linux或chromedriver_mac,放在项目根目录。 - 修改 Automatic_ticket_purchase.py 里的登录账号、item_id、观演人、票价。
- 运行:
python Automatic_ticket_purchase.py # 账号密码登录 python Automatic_ticket_purchase.py --mode qr # 扫码登录首次运行会自动弹出浏览器完成登录,成功后生成cookies.pkl,下次运行直接复用,不再走登录流程。
核心机制是怎么跑起来的 🔧
登录验证。登录页用 Selenium 打开,填账号密码。代码里用excludeSwitches关掉 webdriver 自动化标记,避免触发滑块。登录后发一个请求到个人信息页,确认页面标题是"我的大麦-个人信息"才算成功。这部分逻辑在 tools.py。
参数提取。下单接口需要的commodity_param、ex_params不是写死的,而是下载大麦前端 JS 后用正则现场抽取(get_api_param())。选座接口的 sign 则用 execjs 执行 signcode.js 计算得出。大麦前端 JS 一旦改版,这些函数要跟着修。
下单流程。run()里是个轮询循环:step1 查目标价位的按钮状态,"即将开抢"就继续轮询;变成"立即购买"就进 step2 请求订单确认页;"选座购买"则先拉座位数据挑座。最后 step3 调 createOrder 提交订单,成功会打印alipayOrderId和支付链接。
关键配置项逐个说明
配置集中在DaMaiTicket类的__init__里,一共 5 组参数:
| 参数 | 含义 |
|---|---|
login_id/login_password | 大麦账号密码,账号登录方式才需要 |
item_id | 商品 id,不同城市场次对应不同值 |
viewer | 观演人姓名,须与账户里已填的完全一致 |
buy_nums | 购票数量,必须等于观演人数量 |
ticket_price | 目标票价,脚本只买这个价位 |
item_id 就藏在详情页 URL 的id=参数里,选对城市站点再取这一串数字。
viewer填的姓名要和"我的大麦"里常用购票人列表一致,提交订单前脚本会做这个比对,不一致直接报错退出。
提升成功率的做法与常见失败原因 ⚠️
三个提分做法:
- 提前把脚本跑到轮询状态再等开售,按钮一变就发请求,省掉页面加载时间。
- 复用
cookies.pkl,第二次运行跳过整个登录环节。 - 只盯一个票价、一个观演人,请求链越短越稳。
高频失败原因:
- 登录页出现滑块或验证:浏览器指纹被识别,或驱动与 Chrome 版本不匹配。
- 提示"观演人信息不一致":
viewer里有人名缺失或错别字。 - 提示"获取购买必备参数异常":大麦前端 JS 变了,
get_api_param()的正则匹配不到。
使用边界与合规
README 已说明项目停止维护:大部分购买方式迁到了手机端,需配合抓包处理,暂无更新计划,所以对当前线上流程的效果要打折看。脚本会高频请求接口,可能被平台风控限制甚至封号,频率和次数请自己把控。仓库声明仅用于个人参考学习(MIT License),商用和倒卖转售不在允许范围内。
结语
这个脚本的价值在于把"登录 → 查状态 → 下单"拆成了三段可复现的接口调用,是练 Selenium 加 requests 的好样本。适合想啃接口自动化的新手,也适合想搞懂大麦抢票链路的人,照着改参数就能上手。
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考