300行Python实现大麦网自动抢票:大麦抢票脚本完整部署指南
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
热门演出开售的那一秒,手动点几下往往就错过了。Automatic_ticket_purchase 是一个大麦网抢票脚本:这个 Python 自动抢票项目用约 300 行代码(主脚本 Automatic_ticket_purchase.py 共 314 行)把登录和下单流程自动化,配置好参数后即可在个人电脑上运行。
🚀 部署与上手:五步跑起来
获取项目代码
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase安装 Python 依赖:requirements.txt 里只有 4 个库(requests、selenium、beautifulsoup4、pyexecjs),一条命令装完:
pip install -r requirements.txt配置 ChromeDriver:ChromeDriver 是让程序能"驱动"一个真实 Chrome 浏览器的可执行程序。按你的系统从官方渠道下载对应版本,重命名后放到项目根目录——Windows 下命名为
chromedriver_windows,Linux 下为chromedriver_linux,macOS 下为chromedriver_mac。主脚本会按操作系统自动拼接该路径。修改核心参数:打开
Automatic_ticket_purchase.py,定位到DaMaiTicket类的__init__方法,这是全部配置所在区域,下一节逐项说明。首次运行:
# 默认:账号密码登录(首次运行没有 cookie 时的默认方式) python Automatic_ticket_purchase.py # 或指定扫码登录 python Automatic_ticket_purchase.py --mode qr扫码登录不经过键盘输入密码,建议作为首选方式。另外注意 README.md 开头已注明该项目处于停止维护状态,且大部分购买方式已迁移至手机端、暂无更新计划,建议先拿一场非热门演出跑通整个流程再依赖它。
📝 这些参数必须改
以下配置集中在Automatic_ticket_purchase.py的__init__方法中,逐项核对后再运行:
| 参数 | 含义 | 填写要点 |
|---|---|---|
login_id/login_password | 大麦网账号名与密码 | 仅在账号密码登录方式下必填,扫码登录可留默认值 |
item_id | 商品ID,每场演出的唯一编号 | 必须从演出页 URL 提取,不同城市/场次各不相同 |
viewer | 观演人姓名列表 | 必须与你账号里已登记的观演人完全一致 |
buy_nums | 购票数量 | 需与viewer中的人数一致 |
ticket_price | 目标票价(元) | 脚本按此价格匹配对应票档,漏填会直接提示 |
如何从演出页 URL 提取 item_id:在浏览器中打开目标演出的详情页,看地址栏中的item_id=610820299671这类参数,把等号后面的数字填进self.item_id即可。
观演人怎么保持一致:提前在大麦网"常用购票人"里添加好观演人,然后把姓名原样写进viewer列表。名字差一个字,下单就会失败。
⚡ "快"在哪:浏览器登录 + 接口直接下单
脚本把流程拆成两个技术栈,各干各擅长的事:
- 登录阶段用 Selenium:打开真实页面完成扫码/短信/账号登录,拿到 cookie。
- 抢票阶段用 requests:登录完成后不再碰页面,直接以 HTTP 请求走完"获取下单参数 → 点击立即购买 → 提交订单"的链路(对应主脚本中
step1_get_order_info、step2_click_buy_now等方法),参数拼装和签名处理分别由 tools.py 和 signcode.js 承担。
为什么比纯浏览器操作快:纯 Selenium 方案每一步都要等页面加载、等元素渲染、再定位按钮点击,中间全是空耗;接口方式跳过了渲染环节,请求直达服务端。README 中作者对 V2.0 的改造理由正是"之前的版本通过按钮操作,还要等待页面元素加载,效率低下"。需要说明的是,作者只定性描述了这一改进,并未给出具体提速倍数,实际快多少取决于你的网络环境。
🎯 按抢票对象选策略
- 演唱会:
- 提前约 30 分钟启动脚本进入待命状态,而不是开售瞬间才运行
- 热门场次往往多个价位同时开抢,想清楚你优先要哪个价位,把
ticket_price定到主目标价位 - 建议使用扫码登录,避免密码暴露
- 体育赛事:
item_id按城市/场次区分,多场赛事要分别核对,别拿 A 场次的 ID 去抢 B 场次- 多个票档区域有优先级时,想清楚先抢哪个看台,脚本只会下单到你配置的那个价位
- 关注官方公布的放票时间点,在开售前把时间同步和网络都准备好
📈 把成功率挤出来
- 网络:能用有线就别用 Wi-Fi;延迟每低一点,你发出的下单请求就比别人先到一点
- 硬件:关闭浏览器多余标签页和后台下载,把资源留给脚本本身
- 时间同步:用 NTP 校准系统时间,确保你脚本的"开抢瞬间"和服务端时钟对得上
- 多账号协同:为多个账号分别提前登记好观演人和收货地址;注意控制每个账号的请求频率,操作节奏过密容易触发平台风控
- 提前热身:开售前先登录一次拿到 cookie,再跑通一次完整参数校验,开售时只剩最后一步
🧯 不工作时怎么办
| 现象 | 可能原因 | 解决 |
|---|---|---|
| 登录失败 | 账号密码有误、验证码未通过,或本地无有效 cookie | 改用--mode qr扫码登录,重新执行登录流程 |
| 拿不到票务信息 | item_id填错、该场次未放票,或大麦接口已调整 | 重新从 URL 核对item_id;该项目已停止维护,接口变动风险较高,属预期内 |
| 下单失败 | viewer与账号内登记的观演人不一致 | 先在大麦网更新观演人,再让viewer列表逐字对齐 |
| 运行缓慢 | 网络延迟高、ChromeDriver 与 Chrome 版本不匹配 | 优化网络;核对驱动版本与本机 Chrome 版本对应关系 |
✅ 合规使用,留好退路
- 本项目仅用于个人参考学习(见 LICENSE),请遵守相关法律法规和大麦网平台规则,不要将脚本用于商业倒卖,也不要对平台接口造成过度压力
- 先用非热门场次完整测试一遍,确认每个参数都正确,再面对真正的抢票时刻
- 手动抢票永远是备用方案——脚本失败时你能立刻切回网页自己操作
- 行动清单:① 完成环境、依赖、ChromeDriver 配置;② 填好
item_id、viewer、ticket_price并用冷门场次验证;③ 正式开抢前做时间同步与网络热身;④ 每次运行后记录失败原因,针对性调整参数
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考