大麦 Python 自动化抢票实战笔记Selenium Appium 双通道跑通一次开票【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase开票前 2 分钟还在手动刷新大麦页面这个 ticket-purchase 项目把点击交给 Python 自动化Web 端用 Selenium 驱动 Chrome 打开演出详情页移动端用 Appium 驱动 Android 大麦 APP双通道并行。观演人、城市、场次、票价提前配好开票瞬间由脚本完成操作。Web 端与移动端两条通道怎么分工Web 端Android 移动端技术框架SeleniumChrome 最新版Appium 3.1.0 uiautomator2 驱动配置文件damai/config.jsondamai_appium/config.jsonc启动命令cd damai python damai.py./start_appium.sh再./start_ticket_grabbing.sh适用场景有票页链接电脑前值守真机或模拟器贴近 APP 真实操作两条通道干的是同一件事比别人先点到提交订单。差别在执行环境和定位方式——Web 端靠页面 URL 和 DOM 元素移动端靠控件 ID 和 UiAutomator2 表达式后面调参时的手感也不一样。跑起来之前环境和依赖核对清单Python 3.9Poetry 或 pip 可用Node.js 20.19.0或 22.12.0、24.0.0移动端必装npm install -g appium完成且执行过appium driver install uiautomator2Android SDK 就位ANDROID_HOME/ANDROID_SDK_ROOT已设置adb devices能看到设备项目依赖装好poetry install或pip install -r requirements.txtPC 端装了最新版 Chrome只跑 Web 端可跳过 Node/Appium 相关项清单勾完后先跑一遍项目自带的环境自检脚本Python、Node、Appium、SDK 会逐项给你结果./check_environment.sh大麦配置项对应页面哪个区域打开大麦演出详情页和抢票有关的区域就三块顶部的城市选择、中部的场次日期区、下部的票价列表。配置文件本质是把这三块加上观演人和开关写下来。移动端在damai_appium/config.jsonc里配置。keyword是 APP 里的搜索词city、date、price分别对应上面三个区域users是要勾选的观演人姓名必须提前在大麦 APP 里添加过。有个容易忽略的细节APP 里部分票价节点的文本是隐藏的脚本不靠文字定位而是用price_index从 0 开始的序号在票价容器里数到第几个再点这个值要对着页面数。Web 端在damai/config.json里配置。入口是target_url直接从浏览器地址栏复制演出详情页链接不需要再找元素。dates和prices都是数组想盯多个场次或多档票面价就往里加。if_listen是持续监听开关开着脚本会在开售前一直守着页面if_commit_order控制选完观演人后是否自动点提交。移动端最小配置长这样{ server_url: http://127.0.0.1:4723, keyword: 周深, users: [王胜, 潘鸿运], city: 深圳, date: 12.06, price: 内场1199元, price_index: 5, if_commit_order: true }Web 端对应配置{ index_url: https://www.damai.cn/, login_url: https://passport.damai.cn/login, target_url: https://detail.damai.cn/item.htm?id..., users: [陈伟成, 李晓婷], city: 杭州, dates: [2026-04-11], prices: [680], if_commit_order: false, max_retries: 10000 }从开票前 30 分钟到订单提交一次完整抢票移动端主逻辑在damai_appium/damai_app_v2.py按时间线走是这样的Web 端damai/damai.py节奏类似只是元素定位换成 DOM开票前 30 分钟启动 Appium 服务器和脚本确认 APP 停在演出详情页且登录态有效脚本会先检查再进主流程。脚本先点预约/购买按钮随后对按钮状态做循环轮询不开票时这一圈什么都不发生。开票瞬间按钮变可点击立即触发单次点击耗时压到 50ms 左右。进入下单页后依次选城市、场次、目标票价再点加号把数量加到观演人人数。观演人列表按users里的姓名逐个批量勾选。点提交if_commit_order为 true 时直接完成下单控制台打印整个流程耗时。提速与调参按收益从大到小改四处等待时间是最大的成本。damai_app_v2.py里 capabilities 关了窗口动画disableWindowAnimationupdate_settings把waitForIdleTimeout设为 0、waitForSelectorTimeout从 500ms 压到 300ms。抢票场景下这些零等待比别的优化都值钱自己加逻辑时别把显式等待放宽回去。坐标点击替代常规点击。ultra_fast_click不等元素进入可点击状态拿到元素 rect 后用mobile: clickGesture按坐标点下去duration 只有 50ms。代价是元素没就绪时会落空所以它配了备用选择器和重试兜底。重试保证流程不死。移动端run_with_retry默认 3 次失败后重建 driver 再来Web 端靠max_retries配置文件里可以到 10000加if_listen长时监听适合余票释放这种不定时场景。两处思路一致单次操作可以快整体链路必须能扛住偶发失败。多设备并行放在最后一步。多台真机各配一个 Appium 端口各自跑一份damai_app_v2.py。并行是把已验证流程复制 N 份先让单设备跑稳再谈加设备。踩坑速查Node 版本、ADB 与端口冲突Node 版本报错启动 Appium 时抛Node version must be at least ^20.19.0 || ^22.12.0 || 24.0.0。原因是 Node 版本低于 Appium 3.x 的门槛brew upgrade node或重装到兼容版本即可。adb devices列表为空设备根本不可见。原因是没开 USB 调试或首次连接没点授权重新插拔后在设备上允许调试再执行adb devices确认。Appium 连接被拒绝脚本报 Connection refused。原因要么是 4723 端口没起服务要么被旧进程占着用lsof -i :4723找出占用进程或者换个端口起appium --port并同步改server_url。这个项目适合谁适合想动手学 Selenium 和 Appium 的人两套脚本都能直接当教材看改改配置也能跑真实场景。代码仓库git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase。实操建议用自己的测试账号、把操作频率控制在合理范围并遵守平台规则。【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
HTTP底层原理与实战排错:从状态码到HTTPS性能优化 做后端和前端这几年,我发现自己和身边的人翻车最频繁的地方,从来不是业务逻辑写不对,而是搞不定那些看着眼熟的HTTP报错。什么502 Bad Gateway、HTTP 400、401 Unauthorized,平时都能背出来,可真到线上出问题的时候&am… · 2026/9/24 19:12:24
基于CNN的驾驶员疲劳检测:从模型训练到实时预警的工程实践 简介:这份资源面向计算机相关专业正在做课程大作业、毕业设计或需要项目实战练习的学习者,提供一套基于卷积神经网络的驾驶员疲劳检测与预警系统完整实现。项目经导师指导并通过评审,获得98分,源码均经过本地编译与严格调试&#… · 2026/9/24 19:12:24
SEED数据集EEG情绪识别实战:从数据读取到跨被试域适应全链路 简介:这份资源面向希望上手脑电情绪识别的研究生、算法初学者与相关课程学习者,围绕公开的SEED数据集提供一套可运行的EEG情绪识别实践代码。包内共18个文件,以Python脚本、XML配置、Markdown说明与TXT结果记录为主,另有docx实验记… · 2026/9/24 19:12:24
IPv6地址从入门到实战:规则、类型与家庭网络配置 1. 为什么今天要花时间搞明白IPv6地址2. IPv6地址的书写规则与结构拆解3. 地址类型与生命周期:单播、组播、任播与临时地址4. 报头简化与关键机制取舍:IPv6“快”在哪里5. 家庭网络环境下,IPv6能带来哪些实际价值与配置要点其实你早就在用IPv… · 2026/9/24 22:35:44
YOLOv5+Python三合一:人脸识别表情识别异常行为检测系统解析 简介:基于Yolov5Python实现的人脸识别、细粒度表情识别与异常行为检测源码,面向准备毕业设计、期末大作业或课程设计的高校学生,也适合希望快速上手YOLOv5视觉应用、开展人脸与行为分析的开发者。压缩包内共107个文件,以37个py源码… · 2026/9/24 22:35:44
Microsoft Copilot 进阶指南:从聊天到 AI 代理,打造自动化办公流程 你是不是也把 Microsoft Copilot 当成了一个“高级搜索引擎”?问一句答一句,拿到答案就关掉,然后继续在 Word、Excel、邮件、会议之间来回切换,手动做那些重复又琐碎的整理工作。如果是这样,那你的 Copilot 可能只发挥… · 2026/9/24 22:35:44
Java final关键字深度解析:变量、方法与JVM内存语义实践 我在团队里带过不少刚转Java的同事,每次看他们代码,发现一个很有意思的现象:final这个关键字几乎人人都知道,但真正能用对的没几个。要么到处final导致代码又长又啰嗦,要么该加final的地方完全没加,等到排查… · 2026/9/24 22:35:44
Agent Skills实战:从设计原则到参数约束与调试方法 做AI Agent这么长时间,我越来越觉得“技能”才是决定一个Agent上限的东西。模型本身大家用的都差不多,真正拉开差距的,是你给Agent装了什么可复用的执行能力,以及这些能力被设计得有多好用。今天就把我在实际项目和agent-skills这… · 2026/9/24 22:35:44
从继承到装饰器:Java通知模块重构实战,告别组合爆炸 大概三年前的某个深夜,我盯着项目里那十七个以Notify开头的类,第一次认真琢磨装饰器模式(Decorator Pattern)到底能救多少代码。当时那是一个消息通知模块,需求方从“先发个短信就行”一路加码到“短信邮件站内信都要、… · 2026/9/24 22:35:31
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44