多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Python大麦网抢票脚本:自动购票三步配置与 item_id 获取实战指南

Python大麦网抢票脚本:自动购票三步配置与 item_id 获取实战指南 Python大麦网抢票脚本自动购票三步配置与 item_id 获取实战指南【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase本文介绍 Python 大麦网抢票脚本Automatic_ticket_purchase的使用方法。该项目用 Selenium 仅完成登录后续通过 requests 直连大麦网购票接口实现自动购票流程支持指定票价立即购买与指定价位选座两种购买方式适合想学习 Web 自动化与接口购票实现的开发者。项目目前处于停止维护状态建议仅用于学习研究。项目速览项目说明解决什么问题手动点击完成详情页 → 立即购买 → 确认订单 → 提交订单整条链路耗时长脚本将该链路固化为连续的 API 请求支持什么账号密码登录与扫码登录--mode qr、指定票价立即购买、指定价位选座购买不支持连坐谁适合用有 Python 基础、想研究 Web 自动化登录与购票接口时序的学习者对实际抢票成功率不承诺核心代码集中在 Automatic_ticket_purchase.py、tools.py 与 signcode.js 三个文件依赖清单见 requirements.txt。核心机制拆解能力层做了什么登录与凭据管理首次用浏览器登录大麦网获取 Cookie本地持久化后复用后续运行免登录。票源状态轮询循环查询商品 SKU 接口按按钮文案判定状态即将开抢 / 缺货登记 / 立即购买 / 选座购买决定继续等待、退出或进入下单流程。自动下单按获取购买参数 → 进入订单确认页 → 提交订单三步请求完成下单。结果反馈下单成功时输出支付宝订单 ID 与支付链接。实现层怎么做到的Automatic_ticket_purchase.pyDaMaiTicket类实现step1_get_order_info、step2_click_buy_now、step2_click_confirm_select_seats、step3_submit_order与主循环run()状态分支与轮询逻辑都在run()中。tools.pyCookie 读写pickle 文件cookies.pkl、account_loginSelenium 驱动 Chrome 完成账号或扫码登录、check_login_status请求个人信息页校验登录态以及get_api_param——用正则解析大麦前端 JS 文件动态提取接口所需参数降低页面改版后参数失配的问题。signcode.js一个 MD5 实现的小函数通过 pyexecjs 在 Node 环境中执行为选座接口生成sign签名参数。落地实操环境准备、配置与启动1. 环境准备步骤要求 Python 3.6、Chrome 浏览器以及与 Chrome 版本匹配的 ChromeDriver重命名为chromedriver_windows/chromedriver_linux/chromedriver_mac后放在项目根目录。git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt2. 关键配置修改 Automatic_ticket_purchase.py 中DaMaiTicket.__init__内的参数login_id、login_password、item_id、viewer、buy_nums、ticket_price。购票人姓名需提前在大麦网注册且与viewer中名称完全一致。3. 启动运行# 默认账号密码登录 python Automatic_ticket_purchase.py # 或扫码登录 python Automatic_ticket_purchase.py --mode qr登录成功后 Cookie 写入cookies.pkl下次运行直接加载不再弹出浏览器登录失败时删除该文件重试。关键参数配置表与 item_id 获取方法参数名含义示例获取方式item_id演出场次商品唯一 ID同一巡演不同城市 ID 不同610820299671大麦网演出详情页 URL 中的id参数viewer购票人姓名列表[李四]大麦网我的大麦 → 常用购票人管理中已登记的姓名buy_nums购买数量1须与viewer列表长度一致否则启动即退出ticket_price目标票价元按价位匹配 SKU180演出详情页展示的票价login_id/login_password大麦网登录账号与密码自有账号仅账号登录方式需要viewer必须与网页登记信息逐字一致提交订单前脚本会用接口返回的观演人列表做校验不匹配会直接中止。进阶用法多账号与选座场景配置多张同价购票将ticket_price设为目标价位buy_nums与viewer列表长度设为相同值如 2脚本按价格匹配 SKU 后一次性提交全部观演人。选座购买场次为选座制时主循环自动进入选座购买分支拉取座位图并筛选目标价位下的可售座位。只需保证ticket_price填写正确脚本据此定位skuId/priceId暂不支持连坐购买。多实例并行脚本没有内置多账号队列需要时以多个进程分别运行各实例使用独立账号与 Cookie。注意并行会成倍增加请求量应控制在必要数量内。性能与稳定性调优时机开票前 10~15 分钟启动脚本完成登录与 Cookie 预热使轮询状态在开票时已就绪。轮询频率主循环目前为无休眠的单次请求循环建议自行加入 0.5~1s 的sleep间隔避免高频空轮询触发风控。网络优先低延迟有线网络脚本使用requests.Session复用连接不要自行改成每次新建连接。失败排查接口参数结构变化时优先检查 tools.py 的get_api_param与各 step 请求的解析正则选座sign异常时核对 signcode.js。风险与合规边界README 已声明项目停止维护大部分购买方式已迁移至手机端桌面端接口的时效性取决于大麦网现状不能保证可用。项目采用 MIT 协议发布作者声明仅供个人参考学习使用者应控制请求频率、遵守大麦网用户协议不得用于囤票、倒卖等商业用途由此产生的责任由使用者自行承担。参与与反馈Issue 与贡献方向提交 Issue 时附上失败步骤的接口响应原文便于判断是登录态、参数解析还是签名问题。最有价值的贡献方向是接口适配get_api_param的 JS 解析规则、step1~step3 的请求结构、signcode.js签名逻辑。PR 中请给出改动前后的实际请求参数与运行结果避免仅贴猜测性修改。一句话总结本项目是Selenium 登录 requests 直连接口的 Web 购票自动化学习样本适合作为接口时序与登录态管理的参考实现用于实际抢票前需自行验证接口仍有效并自行承担合规与失败风险。【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表