大麦网自动抢票脚本全解:5 个步骤完成环境配置与抢票参数设置

📅 2026/8/24 8:28:30
大麦网自动抢票脚本全解:5 个步骤完成环境配置与抢票参数设置
大麦网自动抢票脚本全解5 个步骤完成环境配置与抢票参数设置【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchaseAutomatic_ticket_purchase 是一个大麦网自动抢票脚本项目思路是登录环节用 Selenium 驱动 Chrome 完成账号密码或扫码登录之后的票档状态查询、确认订单、提交订单全部改走requests发起的 HTTP 接口。整个仓库只有两个 Python 文件加一个 JS 签名文件核心逻辑分别位于Automatic_ticket_purchase.py下单主流程和tools.py登录、参数提取、选座适合作为接口逆向与浏览器自动化的学习样本本文按原理、环境、配置、流程细节、边界五个部分拆解它。 脚本的整体思路页面操作只保留登录这一步作者 README 里说明了 v2.0 改造的动机早期版本通过 Selenium 模拟点击页面上的购买按钮必须等待页面元素加载速度慢且不稳定。改造后浏览器只负责拿到登录态其余步骤全部是纯接口调用调detail.damai.cn/subpage拉取票档信息按ticket_price匹配出目标价位的sku_id调buy.damai.cn/orderConfirm获取提交订单所需的完整参数调buy.damai.cn/multi/trans/createOrder提交订单成功后打印支付宝订单号与支付链接。中间用while True循环轮询票档按钮文案step1_get_order_info返回的btnText共处理四种状态即将开抢则继续循环等待缺货登记说明已售罄打印提示后退出立即购买则进入上述三步下单选座购买则走 v2.1 新增的选座分支。成功与否的判定标准是接口返回success为True且带alipayOrderId。 运行环境准备依赖安装与 ChromeDriver 配置步骤依赖很少requirements.txt里只有四个包requests、selenium、beautifulsoup4、pyexecjs。git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt由于登录环节用到了 Selenium还需要手动准备与本机 Chrome 版本匹配的 ChromeDriver下载后按操作系统重命名并放在项目根目录Windows 改名为chromedriver_windowsLinux 为chromedriver_linuxmacOS 为chromedriver_mac。tools.py的account_login函数通过platform.system()自动选择对应文件名不需要额外配置路径。另外注意account_login里加了两条反自动化探测的选项excludeSwitches: [enable-automation]和--disable-blink-featuresAutomationControlled作者注释说明如果不开这两项登录页会出现滑块导致 Selenium 无法进入。这是这类脚本能否跑通的常见卡点。⚙️ 抢票参数配置方法item_id、观演人与票价怎么填所有参数都写在DaMaiTicket.__init__里上手只需改这几行self.login_id: str account # 大麦网登录账户名 self.login_password: str password # 大麦网登录密码 self.item_id: int 610820299671 # 商品id self.viewer: list [viewer1] # 在大麦网已填写的观影人 self.buy_nums: int 1 # 购买数量, 需与观影人数量一致 self.ticket_price: int 180 # 购买指定票价其中有两个约束直接决定脚本能否走到最后一步建议在开票前先核对buy_nums必须等于viewer列表长度run()入口处就会校验不符直接返回viewer里的姓名必须与你大麦网账号常用购票人中已录入的姓名逐字一致step3_submit_order会做交集校验不一致就终止下单。从详情页地址栏获取 item_id打开目标演出的详情页地址栏 URL 中id后面的数字就是item_id。不同城市、不同场次的商品 id 不同跨城巡演要分别填写。先在大麦网录入观演人登录你的大麦网账号进入我的大麦 - 常用购票人管理把购票人姓名和证件类型填好。脚本本身不负责写入观演人信息它只是按姓名匹配并勾选所以这一步漏了会导致下单前被拦截。配置完成后运行首次没有本地 cookies默认走账号密码登录加--mode qr可改为扫码登录python Automatic_ticket_purchase.py python Automatic_ticket_purchase.py --mode qr 关键流程代码解读登录态缓存、接口参数与选座理解这个脚本有三个值得细看的设计。登录态缓存。run()优先检查根目录是否存在cookies.pkl存在就直接load_cookies复用登录态跳过浏览器登录首次登录成功后由save_cookies落盘。脚本还通过check_login_status请求个人信息页、校验页面标题是否为我的大麦-个人信息来验证 cookies 是否仍然有效。提示登录失败时按日志提示删除cookies.pkl重新登录即可。接口参数动态提取。tools.py的get_api_param()会下载大麦的前端 JS 文件用正则从中解析出subpage和orderConfirm两个接口所需的请求参数。这是整个脚本最脆弱的一环正则匹配写死了 JS 的代码形态一旦大麦升级前端版本这里解析失败脚本就会停在获取购买必备参数异常。维护成本集中在这一个函数里。选座购买的实现路径v2.1 新增了选座分支但它走的是另一套 mtop 接口依赖更重需要先从登录 cookies 里取_m_h5_tk作为h5_token配合时间戳和请求参数用signcode.jsexecjs计算sign签名再依次调dynamicinfo、getB2B2CAreaInfo、queryseatstatus三个接口拼出完整座位图。脚本最终用format_valuable_seatid过滤出目标价位且可售的座位pick_seat按遍历顺序取前 N 个。两个已知限制只支持单一票价档、不支持连坐。⚠️ 适用边界与现状停止维护、只覆盖 PC 端流程使用或参考这个项目前有几个事实需要摆在前面已停止维护。README 第一行写明已停止维护大部分购买方式已迁移至手机端需配合抓包处理暂无更新计划。文中描述的接口链路与 mtop 签名方案能否在当前线上环境跑通需要自行验证不能当作开箱即用的抢票工具。能力边界明确。选座仅支持指定单一票价、不连坐购买数量必须与观演人数一一对应整个流程基于 PC 端接口移动端购票不在覆盖范围内。用途限制。README 免责声明声明仓库仅用于个人参考学习作者明确表示不认可将代码用于商业或黄牛场景。如果你关注的是技术本身建议的学习路径是先读Automatic_ticket_purchase.py里step1到step3三步接口调用弄清一次下单的完整参数流转再看tools.py中get_api_param的正则解析和signcode.js的签名计算这是浏览器登录态 纯接口下单这类方案里最典型的两块难点。【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考