大麦自动抢票 3 分钟跑通Selenium Appium 双端配置到开票时刻【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase开票前 3 分钟浏览器停在登录页、手机停在搜索结果页、配置文件里的城市和日期还没改成目标场次——这类仓促的场面往往决定了最后能不能下单。ticket-purchase 是一个基于 Python 的大麦自动抢票工具Web 端用 Selenium 驱动 Chrome、移动端用 Appium 驱动 Android 设备两条路线都覆盖并内置城市、日期、票价的智能匹配和失败重试。这篇文章按装环境 → 写配置 → 到点启动的顺序讲一遍目标是让你照着做就能在开票时刻把脚本跑起来。 能力速览它替你做哪些事工具接管的是从登录之后开始的整段流程进入演出详情页、按配置匹配城市和场次、选中目标票价和数量、点击预订、勾选观演人、提交订单。其中选对选项这一步靠多格式模糊匹配完成——dates和prices里可以同时写2026-04-11、4月11日、2026.04.11这类写法页面无论用哪种排版都能命中。平台方面Web 端只需要 Chrome 和 Python 环境适合固定在电脑上跑移动端通过 Appium 直接操作手机上的大麦 APP流程更接近真实用户操作适合希望脱离桌面浏览器的场景。两端共用同一套配置驱动思路所有目标参数写在 JSON 文件里不改代码。 快速上手从克隆仓库到开票时刻第 1 步装环境与自检。克隆仓库并安装 Python 依赖然后用仓库自带的环境检查脚本确认版本git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase pip install -r requirements.txt ./check_environment.sh第 2 步准备执行端这里出现分叉。用电脑抢票的走 A装好最新版 Chrome 即可ChromeDriver 由脚本自动下载。用手机抢票的走 B启动 Android 模拟器或连上开启 USB 调试的真机确认设备上装了大麦 APP 并已登录然后启动 Appium 服务器./start_appium.sh第 3 步写配置。分叉的另一个落点Web 端编辑damai/config.json核心是target_url演出详情页链接和观演人移动端编辑damai_appium/config.jsonc核心是keyword搜索关键词——移动端脚本要求手机上已搜索到目标演出并停在详情页。两端都先别开if_commit_order第一次跑通流程再打开。第 4 步开票时刻启动。Web 端cd damai python damai.py移动端Appium 已在另一个终端跑着./start_ticket_grabbing.sh脚本启动后会先校验配置文件再进入登录Web 端需扫码→ 选择场次 → 轮询预订按钮的流程开票瞬间的点击和提交由它自动完成。⚙️ 配置文件逐项讲解两个端的配置项数量不同分开看更清楚。Web 端damai/config.json参数类型说明index_url/login_url字符串大麦首页与登录页地址一般用默认值target_url字符串目标演出详情页 URL必填users数组观演人姓名列表脚本按人数选票city字符串演出城市用于城市选项匹配dates数组场次日期支持多格式并列prices数组目标票价档位支持多格式并列if_listen布尔值是否监听缺货/回流状态if_commit_order布尔值是否自动提交订单max_retries数字最大重试次数默认 1000fast_mode布尔值快速模式缩短等待与轮询间隔默认 truepage_load_delay数字订单确认页加载等待秒数默认 2移动端damai_appium/config.jsonc参数类型说明server_url字符串Appium 服务器地址默认http://127.0.0.1:4723keyword字符串大麦 APP 内的搜索关键词users数组观演人姓名列表city字符串演出城市date字符串演出日期如12.06price字符串票价档位描述如内场1199元price_index数字票价在页面上的索引从 0 开始if_commit_order布尔值是否自动提交订单一个贴近真实场景的 Web 端完整配置{ index_url: https://www.damai.cn/, login_url: https://passport.damai.cn/login, target_url: https://detail.damai.cn/item.htm?id123456789, users: [张三, 李四], city: 杭州, dates: [2026-04-11, 4月11日, 2026.04.11], prices: [680, ¥680, 680元], fast_mode: true, if_listen: true, if_commit_order: false, max_retries: 5000, page_load_delay: 2 }日期和票价各写三种格式是为了把页面排版差异的容错交给脚本if_commit_order保持 false首轮跑通后再打开。移动端配置的结构可参考仓库内的示例文件截图中是config.jsonc的实际填写效果 三类演出的操作策略热门演唱会。这类场次开票即售罄拼的是启动时机与参数完备度提前 30 分钟启动脚本并完成扫码让流程停在等待开票状态fast_mode保持 truemax_retries给到 5000 以上以覆盖开售前的无效轮询dates和prices多写几种格式避免开票瞬间页面文案与配置对不上if_commit_order是否打开取决于你此前是否完整测试过选座和选观演人环节。话剧与音乐剧。演出档期常连续多场价格档位也多。把目标日期都写进dates票价按预算从高到低多列几档提高任一档位有票即可成交的概率首轮建议fast_mode设为 false 并调大page_load_delay确认每步选择正确后再切回快速模式。观演人较多时先在订单确认页核对人数与票价总额再放开自动提交。体育赛事。主客场对应不同城市和场次容易配错页面。开跑前先人工确认target_url指向的是要抢的那一场city与页面城市完全一致票价档位往往跨度大看台到内场prices里多列几档这类场次回流票常见if_listen保持 true让脚本在缺货状态下继续监听。 调优与排错网络、设备、脚本参数网络维度。现象详情页打开缓慢、轮询期间页面反复超时。排查改用有线连接关闭视频流、大文件下载等占带宽的应用Web 端保持浏览器已登录状态减少会话重建的开销。设备维度。现象Appium 启动时报Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported。排查在~/.zshrc或~/.bashrc中导出ANDROID_HOME与ANDROID_SDK_ROOT指向 SDK 目录。现象adb devices里没有设备。排查真机确认已开启 USB 调试并授权或先启动模拟器确认后执行curl http://127.0.0.1:4723/status验证 Appium 服务器可达。现象Web 端报 ChromeDriver 版本不匹配SessionNotCreatedException。排查直接重跑python damai/damai.py让脚本自动装匹配版本或运行python damai/check_environment.py定位环境。脚本参数维度。现象订单页反复提示找不到观演人。排查先把page_load_delay提到 3–5 秒关闭fast_mode查看扫描输出核对用户名是否带空格或后缀如张三 、张三(VIP)必要时在users里加上变体写法。现象移动端 Node.js 版本报错Node version must be at least ^20.19.0。排查升级 Node 到 20.19.0 以上兼容版本后重跑./check_environment.sh。更多 Web 端报错的排查细节可参考仓库内的 完整使用指南(PC端).md.md)。 项目结构仓库按端划分模块damai/是 Web 端damai_appium/是移动端tests/放测试根目录的三个 shell 脚本分别负责环境检查、启动 Appium、启动抢票日常使用基本只碰配置文件和这三个脚本。ticket-purchase/ ├── damai/ # Web 端damay.py 入口、concert.py 核心逻辑、config.json ├── damai_appium/ # 移动端damai_app_v2.py 入口、config.jsonc ├── tests/ # 单元与集成测试 ├── check_environment.sh # 环境自检 ├── start_appium.sh # 启动 Appium 服务器 └── start_ticket_grabbing.sh # 启动移动端抢票⚠️ 安全与合规遵守大麦网的使用条款脚本请求频率max_retries保持合理不要多端同时跑多个实例。配置文件里有观演人姓名等个人信息不要随意外发或提交到公共位置。建议用本人实名账号购票自用本项目仅用于学习和研究勿用于倒卖门票。 开票前最后检查清单users、city、date(s)、price(s)与本次目标场次逐一核对无误Web 端已完成扫码登录移动端确认大麦 APP 停在目标演出详情页移动端先跑./start_appium.sh且curl http://127.0.0.1:4723/status有响应用if_commit_order: false完整跑过一轮确认选座、选人无误网络切换为有线或稳定连接无关的大流量应用已关闭到开票时间前把脚本留在等待状态剩下的交给它。【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
