ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

大麦抢票自动化5分钟跑通:ticket-purchase从登录到提交订单的完整流程

大麦抢票自动化5分钟跑通:ticket-purchase从登录到提交订单的完整流程 大麦抢票自动化5分钟跑通ticket-purchase从登录到提交订单的完整流程【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase从扫码登录到提交订单整条链路都由程序代你完成。ticket-purchase 是一个大麦抢票自动化项目支持一次性指定观演人员、城市、日期场次与票价你只需写好几行配置剩下的选择、轮询、重试、提交它来执行。大麦抢票自动化工具定位配置进、订单出这个项目用 Python 实现Web 端基于 Selenium 驱动 Chrome移动端基于 Appium 驱动 Android 上的大麦 APP。输入是一份 JSON 配置目标演出地址、观演人、城市、场次日期、票价处理过程是程序模拟人工操作大麦详情页——匹配城市选项、点选场次与票价、轮询立即预订按钮、勾选观演人输出是一份已提交的订单或停留在确认页等你手动提交。大麦的不少票源仅限 APP 端购买因此仓库同时提供了 damai_appium 移动端实现这也是它的输入→处理→输出与纯网页脚本的区别所在。抢票机制时间线拆解环境检查到提交订单的6个阶段把 核心逻辑源码 的执行路径按时间线展开共 6 个阶段环境检查加载config.json校验 Chrome 与 ChromeDriver 版本是否匹配扫码登录打开大麦登录页你用 APP 扫码这是全程唯一需要你动手的环节详情页选择依次匹配城市如广州站、场次如2023-10-28 周六 19:00、票价如1039并设置购票数量这一阶段对应的就是页面上城市 Tab、场次和票档区域轮询预订按钮开售前页面不可购买程序按固定间隔刷新检测立即预订是否出现fast_mode开启时轮询间隔从 1 秒降到 0.3 秒项目文档给出的示例数据勾选观演人按users列表逐个勾选未找到时自动重试 5 次、每次间隔 0.5 秒提交订单找到立即提交按钮并点击是否真正提交由if_commit_order控制。最简配置5分钟跑通最小命令与最小字段最小可跑版本git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase pip install -r damai/requirements.txt ./check_environment.sh编辑damai/config.json只保留跑通一次所需的最少字段if_commit_order先设为false让程序走完全流程但不真正下单{ index_url: https://www.damai.cn/, login_url: https://passport.damai.cn/login, target_url: https://detail.damai.cn/item.htm?id738291023, users: [张三], city: 广州, dates: [2023-10-28], prices: [1039], if_commit_order: false }cd damai python damai.py看到扫码登录提示后用手机扫码控制台会依次输出城市、场次、票价的匹配结果。首次运行以观察输出为目的确认每一步都能对上再谈抢票。完整配置字段逐项说明index_url/login_url大麦首页与登录页地址保持默认即可target_url演出详情页完整地址必须带idxxx参数直接从浏览器地址栏复制users观演人姓名数组必须与账号里填写的名字逐字一致程序会按列表人数自动设置购票数量city城市名称与页面城市 Tab 的文本匹配广州站只需填广州dates场次日期数组YYYY-MM-DD与页面上的10月28日等形式都能被模糊匹配prices票档价格数组只填数字不带元或¥if_listen是否监听缺货登记回流开启后售罄状态也会持续轮询if_commit_order是否自动点击立即提交首次使用保持falsefast_mode快速模式减少各类等待时间项目文档称约节省 5-8 秒示例数据max_retries轮询按钮的最大重试次数默认 1000page_load_delay订单确认页加载等待秒数默认 2网络慢可调到 5。字段细节也可以对照 PC端完整使用指南.md) 核对。场景化玩法按你的实际情况选配置单人首刷验证配置正确性。目标是确认流程跑通而不是抢票fast_mode设false保留完整调试输出if_commit_order设falsepage_load_delay给 3-5 秒users只放 1 个人。热门场次准点抢。配置确认无误后切换到实战参数{ users: [张三, 李四], dates: [2023-10-28], prices: [1039, 999], fast_mode: true, if_listen: true, if_commit_order: true, max_retries: 5000 }prices里按偏好顺序放多个票档主档售罄时程序会尝试下一档max_retries调大是为了撑过开票前的持续轮询以上数值为示例配置。网络一般的低配置环境。关掉fast_modepage_load_delay调到 5 秒以上dates和prices多写几种格式如2023-10-28与10月28日用冗余匹配弥补页面加载慢带来的失误。票源只在 APP 端。先跑./check_environment.sh与./start_appium.sh把 Appium 拉起来然后在设备上打开大麦 APP 并搜到目标演出最后执行./start_ticket_grabbing.sh。移动端配置在damai_appium/config.jsonc字段换成server_url、keyword搜索关键词、date如10.04、price如1039元和price_index票档在页面上的位置索引从 0 开始需先手动数一遍。移动端细节见 app.md 说明注意新版 APP 票档文本可能为空串price_index的取值依赖你手动核对。踩坑实录我遇到的4个真实问题第一次跑 Web 端时脚本启动即抛SessionNotCreatedException。定位是报错里写明的 ChromeDriver 与 Chrome 版本不匹配。解决重跑脚本让它自动下载匹配的驱动或手动执行 check_environment.py 复核。第一次真实演练时日志反复提示未找到观演人张三。定位关闭fast_mode看扫描输出页面里的名字带了一个不可见空格。解决在users里加上带空格的变体程序在第 3 次重试时命中。转战移动端start_ticket_grabbing.sh直接报 Appium 服务器未运行。定位curl http://127.0.0.1:4723/status无响应说明服务根本没启动。解决先跑./start_appium.sh再执行抢票脚本顺序不能反。还有一次appium driver install报 Node 版本过低。定位是报错要求^20.19.0 || ^22.12.0 || 24.0.0。解决升级 Node 到 20.19.0 以上后重装驱动通过。边界清单5件事别做⚠️ 不要用抢到的票做商业倒卖本项目仅供个人购票与学习研究。不要把max_retries调到极限、同时跑多个实例去高频轰击页面轮询频率保持克制。不要在配置文件里写真实密码也不要把含观演人信息的配置公开分享。不要在同一段开售时间用多个账号叠加同一台设备反复下单。不要在未确认订单内容前把if_commit_order设为true金额与票档核对完再放手。收口如果你只是第一次接触把if_commit_order保持为false跑通全流程确认城市、场次、票价都能对上再谈实战。如果你已有明确目标场次且配置验证过直接开启fast_mode与自动提交提前约 30 分钟启动脚本完成登录。如果你要抢的票只在 APP 端放售就跳过 Web 端按移动端路径先把./check_environment.sh跑绿再进入 Appium 流程。【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表