首页/新闻资讯/正文详情

大麦抢票自动化:从详情页到提交订单,把整个流程压进10秒

发布时间:2026/9/24 15:16:53 来源:云帆数科 栏目:资讯中心
大麦抢票自动化:从详情页到提交订单,把整个流程压进10秒
大麦抢票自动化从详情页到提交订单把整个流程压进10秒【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase你有没有过这种体验演出开票时间一到鼠标停在按钮上等它变成可点击的那一瞬间屏幕已经跳成了已售罄。开源大麦自动抢票脚本 ticket-purchase 干的就是这件事——Web 端用 Selenium 驱动 Chrome移动端用 Appium 驱动安卓手机上的大麦 APP把选城市 → 选场次 → 选票价 → 勾观演人 → 提交订单整条链路自动跑完。你只负责三件事改配置、扫码登录、按回车。最小可运行路径5分钟把大麦抢票跑起来Web 端依赖最少建议先跑通它摸熟流程。一共 8 步移动端的部分单独标注获取代码并安装 Python 依赖要求 Python 3.9一条命令完成git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase pip install -r damai/requirements.txt新建damai/config.json。脚本启动时会校验字段缺了会直接把模板打印到控制台模板见下文配置速查一节。运行 Web 端主程序。第一次会弹出浏览器让你扫码Cookie 会存成damai/damai_cookies.pkl之后每次运行自动加载不用再扫cd damai python damai.py✅ Web 端到此结束。接下来 5 步是移动端热门演出的票经常只有 APP 能买这条路迟早要铺安装 Appium 及 UiAutomator2 驱动Node 需 20.19 / 22.12 / 24版本太低起不来。启动 Appium 服务并确认adb devices里能看到设备手机装好大麦 APP 并登录账号。在手机上打开大麦手动搜索并进入目标演出的详情页脚本从详情页接管不需要它自己搜索。编辑damai_appium/config.jsonc填keyword、users、city、date重点确认price_index。跑抢票脚本前面几步连起来就是npm install -g appium appium driver install uiautomator2 appium --port 4723 cd damai_appium python damai_app_v2.pytarget_url从哪来打开大麦 PC 端的演出详情页把地址栏整条复制过去即可。配置里每个字段对应页面上哪个位置看这张标注图内部机制一个状态机在驱动大麦抢票Web 端的核心思路是预置 轮询。登录完成后脚本先在详情页把城市、场次、票价、数量全部选好预置然后进入轮询循环每隔 0.20.3 秒读一次购买按钮的文本看到立即购买或立即预订就立刻点再靠页面标题和 URL 判断是否跳进了订单确认页。如果按钮还显示提交缺货登记说明没开票自动刷新继续等。可以把它理解成一个每几秒查一次门的保安门一开就冲进去。进到订单确认页后选观演人是最容易出错的环节——不同版本的页面 DOM 结构会变所以脚本对勾人准备了 4 套定位方案依次尝试按用户名文本找 div → 用 label 关联复选框 → 直接点包含用户名的元素 → 走 JS 脚本精确定位哪套先成功走哪套。提交订单同理有 5 套兜底。移动端流程更直白城市 → 预约按钮 → 票价 → 数量 → 确定购买 → 勾选观演人 → 提交订单任何一步失败就断开重连驱动最多重试 3 轮。各阶段的分工可以这样看阶段干什么关键机制预置详情页选城市/场次/票价/数量配置支持多格式模糊匹配如2023-10-28和10月28日轮询盯住购买按钮快速模式每 0.3 秒一次缺货登记则刷新重等订单确认勾观演人、提交4 套/5 套定位方案轮询兜底任一成功即通过重试断连、元素没找到移动端自动重建驱动3 轮内恢复关键配置速查这些配置项决定速度上限两端配置都在 JSON 里参数不多但每个都影响结果参数作用推荐值/示例target_urlWeb演出详情页地址脚本只认它从浏览器地址栏复制users双端观演人名单人数即票数[姓名1, 姓名2]dates/pricesWeb场次与票价匹配条件多格式并存如[1039, ¥1039]city/date/priceApp城市、日期、票价描述price_index必须手动数对fast_modeWeb开关等待/日志策略truemax_retriesWeb轮询刷新的最大次数1000 起步预售日可加大if_listenWeb遇到缺货登记是否继续监听盯回流票trueif_commit_order双端是否自动提交订单调试期设false验证通过再改true下面是一份 Web 端完整配置照抄改值即可用{ index_url: https://www.damai.cn/, login_url: https://passport.damai.cn/login, target_url: https://detail.damai.cn/item.htm?id演出ID, users: [姓名1, 姓名2], city: 广州, dates: [2023-10-28, 10月28日], prices: [1039, ¥1039, 1039元], if_listen: true, if_commit_order: false, max_retries: 3000, fast_mode: true }仓库里的移动端配置damai_appium/config.jsonc已经是一份可直接参考的真实示例结构更简单8 个字段全在上面表格里。编辑器里实际长这样进阶技巧把抢票压到毫秒级的三个手法点击提速坐标点击替代元素点击你遇到的问题Appium 默认的element.click()单次常常 100ms 以上勾两个观演人就耗掉好几百毫秒。背后的原因常规 click 要走可访问性层而且 UiAutomator2 默认会等页面空闲才执行动作。具体做法v2 版本全部改用mobile: clickGesture发坐标直点duration只有 50ms同时把waitForIdleTimeout设为 0不再等页面空闲。设备侧再顺手关掉三组动画开关界面切换无残帧adb shell settings put global window_animation_scale 0 adb shell settings put global transition_animation_scale 0 adb shell settings put global animator_duration_scale 0实测效果单次点击从约 100ms 压到 50ms多人勾选时脚本先批量收集全部坐标再连续点间隔仅 10ms选 2 个人几乎是瞬时的。票价文本是空串改用位置索引定位你遇到的问题APP 更新后按文本找票价按钮的 XPath 全部失效。背后的原因新版界面把票价行重做了按钮文本变成动态绘制视图树里拿到的是空字符串按文字定位从根上不成立。具体做法v2 改按第几个可点击控件定位——在票价容器里找index price_index的 FrameLayout 直接点。所以price_index必须手动数从 0 开始仓库示例里周深深圳站的内场1199元就是 5。实测效果票价选择从必挂变成稳定命中代价是换一场演出要重新数一次索引对单场抢票完全可接受。打开 fast_mode轮询间隔从 1 秒降到 0.3 秒你遇到的问题正常模式下轮询刷新要等 1 秒开票这种秒售罄的场景里这是致命差距。背后的原因正常模式给每个环节都留了调试余量——固定 sleep、大量页面扫描日志。具体做法fast_mode设为true后点击后等待 0.5s → 0.1s轮询间隔 1s → 0.3s订单页加载从固定 sleep 换成显式等待调试扫描日志整体跳过。实测效果预置阶段总耗时减半以上配合 Cookie 登录免扫码脚本从启动到走到已提交订单能控制在几秒内。高频踩坑这四个问题一行命令解决Appium 启动时报 Node 版本不兼容。根因Node 太旧Appium 3.x 只认 20.19 / 22.12 / 24。 解法brew upgrade nodeLinux 用 nvm 装 22 再切换。脚本报 Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported。根因找不到 adbSDK 环境变量没配。 解法把ANDROID_HOME和ANDROID_SDK_ROOT都指向 SDK 安装目录macOS 默认~/Library/Android/sdk并写进 shell 配置文件。adb devices 里看不到设备报 Unable to find an active device。根因手机没开 USB 调试或模拟器压根没启动。 解法真机重插重认一次模拟器用emulator -avd 你的设备名启动后再跑adb devices确认。仓库里的一键脚本start_appium.sh/start_ticket_grabbing.sh直接跑报错。根因脚本里的 ANDROID_HOME 和 python 路径是作者 Mac 的硬编码路径。 解法改脚本开头的两行export或干脆按本文最小路径里的裸命令手动执行。另外两个小提醒Web 端如果 Chrome 升级后驱动版本报错跑一次python damai/check_environment.py会自动检测并安装匹配的 ChromeDriverWeb 端 Cookie 过期总被弹回登录页时删掉damai/damai_cookies.pkl重跑一次重新扫码即可。使用边界几句温和的提醒建议用专门的小号跑脚本配置文件是明文 JSON别把真实敏感信息提交进仓库。轮询间隔是为没开票设计的等待不是让你把请求频率拉满去压接口保持脚本默认节奏即可。平台对高频自动化有风控手段抢到与否看运气别把期望建立在必中上更别用于倒卖——项目方也明确声明仅供学习研究、不用于商业用途。实名购票意味着票最终只属于你本人抢到的票好好看演出。继续深挖跑通之后值得看的 4 个路径damai_appium/app.md移动端 V2 版的设计笔记讲清楚为什么引入price_index、为什么换clickGesture理解作者为什么这么优化最快的材料。damai/check_environment.pyWeb 端 ChromeDriver 的自动检测与安装逻辑想给自己的项目写环境自检可以抄思路。完整使用指南(PC端).md.md)PC 端从登录到订单页的完整操作手册卡在某一步时按图排查。tests/单元测试骨架看它怎么校验配置合法性能帮你理解脚本对输入的预期。下次开票时间到你不需要盯着鼠标等它变绿只需要看控制台滚到订单已提交再瞄一眼那句耗时 X.XX 秒——19:00 那场和已售罄的故事到此可以翻篇了。【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

5个参数调对,GSM-R信号用SDR一次跑通
5个参数调对,GSM-R信号用SDR一次跑通

5个参数调对,GSM-R信号用SDR一次跑通 【免费下载链接】SDRPlusPlus Cross-Platform SDR Software 项目地址: https://gitcode.com/GitHub_Trending/sd/SDRPlusPlus 瀑布图上出现一条间隔 200 kHz 的竖线,就是 GSM-R 网里正在通话的一个信道。SDRP… · 2026/9/24 15:16:53

String s1 = new String(“abc“); 这个s1称为什么,存储在什么位置?
String s1 = new String(“abc“); 这个s1称为什么,存储在什么位置?

1. s1 是什么?s1 是一个引用变量(Reference Variable),它的类型是 String。变量:它是一个存储在 ** 栈(Stack)** 上的内存位置,用于存放数据。引用:它存放的数据不是 &qu… · 2026/9/24 15:16:46

Gitee 使用步骤:从注册到代码托管全流程
Gitee 使用步骤:从注册到代码托管全流程

1. 什么是 Gitee Gitee(码云)是国内知名的代码托管平台,基于 Git 技术构建,提供代码托管、版本管理、团队协作、代码评审、持续集成等功能。相比 GitHub,Gitee 在国内访问速度快、中文界面友好,是许多开发者… · 2026/9/24 15:16:33

EVA 与 PU 材质对比:定制收纳包怎么选不踩坑
EVA 与 PU 材质对比:定制收纳包怎么选不踩坑

1. 引言 定制收纳包时,材质选择往往是最让人纠结的一步。市面上最常见的两种材质——EVA 和 PU,一个主打轻便防摔,一个主打质感高级,看似都能做收纳包,实际使用体验却天差地别。选错了,轻则用几个月就开裂变… · 2026/9/24 15:43:15

Instant 常见错误避坑指南:schema、权限、事务、查询与存储的实战修正
Instant 常见错误避坑指南:schema、权限、事务、查询与存储的实战修正

后端数据库 【免费下载链接】instant Instant is the best backend for AI-coded apps. You get auth, permissions, storage, presence, and streams — everything you need to ship apps your users will love. 项目地址: https://gitcode.com/gh_mirrors/inst/i… · 2026/9/24 15:43:15

PR Review Triage Skill 实战:用 pr-review-triage 打造 loop-engineering 的 PR 看护循环
PR Review Triage Skill 实战:用 pr-review-triage 打造 loop-engineering 的 PR 看护循环

人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务 【免费下载链接】loop-engineering Practical patterns, starters & CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and … · 2026/9/24 15:43:15

PHP 按位取反(~)运算创建免杀后门:原理、编码陷阱与源码级复现
PHP 按位取反(~)运算创建免杀后门:原理、编码陷阱与源码级复现

PHP 按位取反(~)运算创建免杀后门:原理、编码陷阱与源码级复现 【免费下载链接】webshell This is a webshell open source project 项目地址: https://gitcode.com/gh_mirrors/we/webshell 导读 本文基于仓库 php/php-xor.md&#x… · 2026/9/24 15:43:09

麦克米特控制器系统注塑机数据采集网关与解析 第三十二章
麦克米特控制器系统注塑机数据采集网关与解析 第三十二章

1. 引言在注塑行业数字化转型过程中,设备数据采集是打通生产现场与上层管理系统(如 MES、ERP)的关键环节。麦克米特(Micromite)控制器系统广泛应用于各类注塑机,其数据接口多样、协议复杂,如何通… · 2026/9/24 15:43:09

科大讯飞语音链路 Demo:从唤醒到播报的完整抽离
科大讯飞语音链路 Demo:从唤醒到播报的完整抽离

在一个桌面类 Android 项目里,语音助手经常会越写越“粘”:首页要显示状态,悬浮窗要同步状态,业务指令要启动系统设置,通话页面又要暂停麦克风。最后真正想复用的那条链路,反而被 Launcher 业务包住了。 一… · 2026/9/24 15:42:51

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码