ticket-purchase 零基础上手:大麦自动抢票从选城市场次到提交订单的完整链路
ticket-purchase 零基础上手大麦自动抢票从选城市场次到提交订单的完整链路【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchaseticket-purchase 是一个大麦自动抢票工具用 Appium 驱动安卓设备上的大麦 App串起选城市、选场次、选票档、勾观演人、提交订单这一整条链路另配一套 Selenium 的 Web 端实现兜底。跑通之后你的任务只剩把手机打开停在演出详情页等页面按钮切到立即购买后续点击交给脚本。它替你干了什么整条链路可以拆成输入 → 关键节点 → 输出三段来看。输入是三样东西停在演出详情页的手机、写好的 damai_appium/config.jsonc、以及一个存活在 4723 端口的 Appium 服务。关键节点是脚本接管的七个动作全部发生在详情页之后主流程实现在 damai_appium/damai_app_v2.py按city点中城市站点底部按钮预约和购买两种文案都认在票档区点中price_index指定的第 N 个可点位置按users人数点加号数量从 1 起调点确定购买进入观演人页按users里的姓名批量勾选点立即提交完成下单。输出是订单提交前的那一步if_commit_order为true时走完整下单为false时用它做首次空跑验证。单个节点失败不会直接收手脚本最多尝试 3 次失败后隔 2 秒重新初始化驱动再来一轮。搜索环节不在接管范围详情页之前的事由你手动完成。Web 端兜底实现放在 damai/ 目录damai/config.py 里target_url填详情页地址users、city、dates分别对应观演人、城市与场次。动手前先备齐这三样仓库自带自检脚本 check_environment.sh会逐项检查 Python、Node.js、Appium、Android SDK、ADB、设备连接和配置文件每项给出 ✅ 或 ❌。Windows 用户改跑 Python 版自检 damai/check_environment.py并参考 完整使用指南(PC端).md.md)。先对照下表过一遍项目要求用途环境Python3.9运行抢票脚本环境Node.js20.19.0 / 22.12.0 / 24.0.0运行 Appium环境Appium3.1.0含 uiautomator2 驱动把指令桥接到安卓设备环境Android SDK已设置 ANDROID_HOME / ANDROID_SDK_ROOT管理与设备的通信设备安卓机开启 USB 调试的真机或已完全启动的模拟器承载大麦 App设备App已安装大麦包名cn.damai脚本驱动的目标应用账号登录与观演人大麦已登录观演人已登记提交订单的必要前提分步跑通主流程第 1 步克隆仓库并进入目录操作git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase预期看到目录下有check_environment.sh、start_appium.sh、start_ticket_grabbing.sh三个脚本以及damai/和damai_appium/两个子目录。不符时先确认 git 可用再重新执行克隆。第 2 步跑一次环境自检操作./check_environment.sh预期看到Python、Node.js、Appium、SDK、ADB、设备、配置文件逐项输出 ✅出现 ❌ 的项下方会直接给安装提示。常见补齐命令npm install -g appium appium driver install uiautomator2 pip install -r damai/requirements.txt补齐后重跑一遍直到红色项清零。卡在 SDK 路径检查上通常是脚本里写死的示例路径见下一步。第 3 步把脚本里的示例路径换成你自己的操作用编辑器打开 start_appium.sh、start_ticket_grabbing.sh、check_environment.sh全局搜/Users/shengwang把两处硬编码替换掉一是 Android SDK 目录三个脚本里都有二是 start_ticket_grabbing.sh 末尾那个 poetry 虚拟环境的 python 解释器路径改成本机可用的 python。预期看到三个脚本里不再出现/Users/shengwang字样再跑一次自检时 SDK 一项变绿。⚠️ 只改配置文件不改脚本的话跑起来仍是路径报错。第 4 步启动 Appium 服务终端 1操作./start_appium.sh预期看到依次打印环境变量已设置 → 检测到 N 个 Android 设备 → 大麦APP已安装 → 启动Appium服务器服务挂在 4723 端口并保持运行。这个终端必须全程开着关掉它脚本就失去连接。看到未检测到 Android 设备就停下先跑adb devices查状态。第 5 步手机停在演出详情页操作打开大麦 App搜出目标演出与配置里的keyword对应进入详情页后不再操作。未开售时底部按钮是预约开售后变立即购买两种文案脚本都能识别所以停在页面上等就行。预期看到页面呈现与下图一致的城市、场次、票档三行信息底部有可点的状态按钮。若提示未登录或观演人列表为空先回 App 里补完。第 6 步触发抢票主任务终端 2操作./start_ticket_grabbing.sh预期看到先回显Appium服务器运行正常和配置文件存在再打印当前的keyword、city、users供你核对输入y后进入循环终端依次刷出选择城市 → 点击预约按钮 → 选择票价 → 选择数量 → 确定购买 → 选择用户 → 提交订单的进度最后给出本次耗时。提示Appium服务器未运行时回终端 1 确认服务还活着。配置逐项拆解移动端行为全部由 damai_appium/config.jsonc 驱动仓库当前默认值{ server_url: http://127.0.0.1:4723, keyword: 周深, users: [王胜, 潘鸿运], city: 深圳, date: 12.06, price: 内场1199元, price_index: 5, if_commit_order: true }字段含义易错点server_urlAppium 服务地址换了端口要同步改这里keyword演出搜索关键词填歌手名或巡演名users观演人姓名数组必须与账号登记逐字一致购票数量也按它的人数来city城市站支持模糊匹配深圳可命中深圳站date场次日期形如12.06price票档的文字描述只供人眼核对不参与点击price_index票档索引从 0 计数5 表示第 6 个if_commit_order是否自动提交订单首次运行先置false空跑两个字段值得单独说明因为它们和行为不完全对得上。其一price_index才是真正瞄准的目标price只是给你对档位的。新版大麦 App 里票档的 Text 是空串按文字找按钮这条路已经走不通damai_appium/app.md 有明确记录脚本改为在票档区容器里点第price_index个可点击位置。所以改配置时要在详情页票档区从上往下数数到目标档位是第几个填序号 - 1。其二city匹配走三级策略先精确匹配文本失败后退回textContains包含匹配最后用 XPath 兜底这也是城市名不必写全的原因。但反过来页面文案一旦改版date的显示格式如12.06变成12月06日就可能不再匹配空跑时重点核对这一步。报错对照表卡住时先在下表里找关键词按行处理报错关键词 / 现象可能原因处理办法Node version must be at least ^20.19.0本地 Node 版本过低升级 Node如brew upgrade node再跑一次自检Neither ANDROID_HOME nor ANDROID_SDK_ROOTSDK 环境变量未设置export两个变量指向你的 SDK 目录并写进~/.bashrc或~/.zshrcUnable to find an active device or emulator设备处于离线态adb devices看状态是否为device模拟器用adb shell getprop sys.boot_completed确认完全启动Connection refusedAppium 未运行或 4723 端口被占curl http://127.0.0.1:4723/status验证端口被占则换端口并同步server_url抢票脚本回显Appium服务器未运行终端 1 的服务被关或已退出重新执行./start_appium.sh再跑抢票脚本点到了不想要的票档索引从 0 计数且页面档位顺序可能变化详情页票档区从上往下重新数改price_index后再开跑开跑前逐条确认环境自检全绿三个脚本里的/Users/shengwang示例路径已替换为本机路径配置已改成目标演出且if_commit_order置false时已空跑通到提交页观演人姓名与账号登记逐字一致人数即计划购票数量Appium 终端保持打开curl http://127.0.0.1:4723/status正常返回手机停在演出详情页账号已登录网络稳定已确认开售时间开抢前一刻才把if_commit_order改为true把配置改成下一场想抢的演出让脚本在开售那一刻接管屏幕上的点击。同时请遵守大麦网使用条款合理使用本工具尊重其他购票者的权益。【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考