Automatic_ticket_purchase:改 6 个参数,大麦开票瞬间自动下单
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
大麦详情页的按钮从"即将开抢"翻成"立即购买"只有一瞬,你的手动刷新根本抢不过接口。Automatic_ticket_purchase 是一个大麦网抢票脚本,用 requests(Python 的 HTTP 请求库)直连购票接口轮询票态,命中"立即购买"瞬间自动完成下单并拿支付链接。项目已停止维护,主购买链路迁到了手机端,适合当抓包逆向教材拆解,不适合拿去倒卖。
⚙️ 填什么:6 个参数
6 个参数全部位于 Automatic_ticket_purchase.py 的__init__方法内,先把这张表看完再动手:
| 字段名 | 它控制什么 | 值从哪来 |
|---|---|---|
| login_id | 大麦登录账号,账号登录方式才需要 | 你的大麦登录名 |
| login_password | 大麦登录密码,账号登录方式才需要 | 你的大麦密码 |
| item_id | 要抢的演出场次编号 | 详情页地址栏id=后面的数字 |
| viewer | 观演人姓名列表,下单时替你在订单里勾上这些人 | 平台"常用购票人管理"中已登记的姓名 |
| buy_nums | 购买张数,必须等于 viewer 列表长度 | 你要抢几张就填几 |
| ticket_price | 目标票价,只抢这一档 | 详情页上你想抢的那档价格,如 180 |
- ⚠️item_id 分城市站→ 同一演出每个城市的编号不同,从你要抢的那一站详情页地址栏里取
- ⚠️viewer 名字写错一个字就下单失败→ 对照"常用购票人管理"逐字核对,去掉多余空格
- ⚠️buy_nums 与 viewer 数量对不上直接报错退出→ 买 2 张就写 2 个观演人、buy_nums 填 2
🚀 怎么跑:4 步启动
- 克隆仓库,拿到全部源码:
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase- 安装依赖,requirements.txt 里只有 4 个包:requests、selenium、beautifulsoup4、pyexecjs:
pip install -r requirements.txt- 下载与本机 Chrome 版本匹配的 ChromeDriver(驱动浏览器自动化的组件),重命名为
chromedriver_windows/chromedriver_linux/chromedriver_mac(按操作系统选一个),放到项目根目录,tools.py 会按系统自动查找。 - 在
__init__方法中填好上一节的 6 个参数。 - 启动脚本,默认走账号密码登录;偏好扫码就加
--mode qr。首次登录成功后 cookie(登录成功后网站发的那张"已验证"小票)会存入 cookies.pkl,之后运行直接复用:
python Automatic_ticket_purchase.py python Automatic_ticket_purchase.py --mode qr🔬 它怎么跑的:一条接口链路
全流程压成一行:
Selenium 打开登录页 → 登录成功存 cookies.pkl → requests 轮询 detail.damai.cn 票态 → 命中"立即购买" → orderConfirm 生成订单 → createOrder 提交拿支付宝支付链接
为什么登录环节要动真浏览器:大麦的登录页带滑块等反自动化检测,代码里用excludeSwitches关掉 webdriver 特征才能把真实浏览器骗过去,cookie 到手后 Selenium 立即退场。之后全程不再渲染页面,直接打接口,省掉了等页面加载的几百毫秒到几秒,这正是抢票场景里和别人的差距来源;反过来"即将开抢"就继续轮询、"缺货登记"就认输退出,状态判断也走的是接口返回的btnText字段,不靠看页面按钮。
选座接口的签名算法:选座演出要走 mtop 系列接口,请求里必须带一个 sign 参数。tools.py 的get_sign_code把 cookie 里的 h5_token、当前毫秒时间戳和接口参数拼成字符串,交给 signcode.js 的calcaulate函数算出 sign,由 pyexecjs 在本地执行,这套逻辑就是典型的接口逆向产物。
🎯 跟它过一遍:抢 2 张 180 元档
你的目标是开售瞬间买走指定场次 2 张 180 元的票。把 viewer 填上 2 个已登记的观演人、buy_nums 填 2、ticket_price 填 180、item_id 指向目标场次,然后运行脚本:它会先登录存 cookie,再开始轮询票态。按钮翻成"立即购买"后,控制台会打印"抢票成功"、alipayOrderId 和支付宝支付链接,订单出现在大麦"我的大麦 → 交易中心 → 订单管理"里,尽快付款即可。如果控制台只反复轮询、迟迟不出链接,优先检查 item_id 是不是你想抢的城市站、ticket_price 是否和页面上某一档完全一致。遇到选座演出走的是同一个参数入口,命中后脚本会自动拉座位图、过滤出目标价位的可售座位、按遍历顺序挑出与 buy_nums 一致的座位再提交,当前版本只支持同一价位选座、不保证连坐。
🩹 挂了看哪
症状:控制台打印"登录失败, 请检查登录账号信息。若使用保存的cookies,则删除cookies文件重新尝试"根因:cookies.pkl 已过期或账号密码填错,接口校验登录态不通过动作:删 cookies.pkl,用 --mode qr 重新扫码
症状:启动时报 selenium 相关错误,浏览器窗口起不来根因:ChromeDriver 缺失、与本机 Chrome 版本不匹配或文件名没改对动作:换匹配版本驱动并改名放根目录
症状:打印"购买数量与实际观演人数量不符"根因:buy_nums 和 viewer 列表长度不相等,run入口校验直接拦截动作:把两个值改成相等再运行
症状:打印"请检查输入的观演人信息与大麦网观演人信息是否一致"根因:viewer 里的姓名与平台登记值有出入,多了空格也算不一致动作:对照常用购票人管理逐字改
症状:打印"获取购买必备参数异常,请重新解析response返回的参数"根因:大麦前端 JS 更新,get_api_param的正则解析失效动作:按最新页面 JS 手动重提取参数
如果以上都不是,去 issue 区搜关键词,比硬猜快。
收尾
最值得花 30 分钟拆的是get_api_param:用正则从压缩后的 JS 包里还原出请求参数,是抓包逆向的标准入门样本。把票态查询抽成常驻轮询并接桌面通知,就是现成的开售前监控方向。MIT 协议,仅供个人学习,遵守目标平台服务条款,凭证只留本地。
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考