大麦自动抢票指南:Python Selenium + Appium 双端抢票脚本完整教程
大麦自动抢票指南Python Selenium Appium 双端抢票脚本完整教程【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchaseticket-purchase 是一个 Python 大麦自动抢票脚本Web 端用 Selenium 驱动浏览器移动端用 Appium 做大麦 APP 自动化通过一份配置文件锁定艺人、城市、场次和票价。本文按选型、环境、配置、运行、排障的顺序讲清楚它怎么用。脚本功能清单工具替你自动做了哪几件事工具覆盖定位演出 → 选场次 → 选票价 → 选观演人 → 提交订单整条链路每一步都有对应参数可控。登录态复用Web 端首次扫码后把 Cookie 存入damai_cookies.pkl再次运行时自动恢复不用重复扫码场次锁定城市、场次日期、票价三个字段与页面一一对应移动端另用price_index按序号从 0 开始精确定位第 N 个票价卡片观演人自动勾选users列表指定姓名移动端先逐个采集屏幕坐标再连续点击间隔 10ms数量联动配置 2 名观演人时脚本自动把数量加号点 1 次订单提交if_commit_order为 true 时选完观演人后自动点击立即提交重试兜底移动端单次失败后重建 Appium 会话、隔 2 秒重试上限 3 次Web 端max_retries默认 1000 次大麦抢票端选型Web 端与移动端对比表两端都是完整链路但前置条件不同移动端单次动作更快显式等待被压到 2 秒Web 端更适合长驻监听开售前状态。维度Web 端damai/移动端damai_appium/自动化框架Selenium ChromeAppium UiAutomator2运行前提最新版 ChromeChromeDriver 自动下载Android 真机/模拟器 Appium 服务默认 4723 端口登录方式脚本引导扫码Cookie 存文件复用设备内提前手动登录脚本不处理登录脚本启动时的状态自行打开target_url必须已打开大麦 APP 并停在目标演出详情页配置文件damai/config.jsondamai_appium/config.jsoncJSONC 格式支持注释适合场景电脑可长时间挂着开售前持续轮询APP 端链路更稳定、或 Web 端被限制时环境准备版本要求与检查命令版本要求仓库里写得很明确没有模糊空间Python ≥ 3.9Node.js 为 20.19.0 / 22.12.0 / 24.0.0Appium ≥ 3.1.0移动端另需 Android SDK 并导出ANDROID_HOMEWeb 端需最新版 Chrome。git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase poetry install ./check_environment.sh移动端还需执行npm install -g appium和appium driver install uiautomator2。check_environment.sh会依次检查 Python、Node、Appium、ADB、设备连接、大麦 APP 是否安装包名cn.damai、4723 端口状态与配置文件随时可重复执行。配置字段对照表每个参数对应页面上哪个位置所有字段都对应页面上看得见的文字建议对着真实演出详情页逐项填写。移动端damai_appium/config.jsonc各字段字段对应页面位置说明server_url非页面元素Appium 服务地址默认http://127.0.0.1:4723keywordAPP 顶部搜索框用来定位演出的关键词users观演人选择列表姓名需已在大麦 APP 观演人列表中提前添加city详情页顶部城市栏脚本按文本精确匹配date场次日期区格式为月.日如12.06price目标票价卡片文字供核对用如内场1199元price_index票价卡片序号从 0 开始计数实际用于点击定位if_commit_order立即提交按钮true 时自动点击{ server_url: http://127.0.0.1:4723, keyword: 周深, users: [观众甲, 观众乙], city: 深圳, date: 12.06, price: 内场1199元, price_index: 5 }Web 端damai/config.json结构不同target_url演出详情页直链、users、city、dates、prices后三项均为列表可配置多个场次和多个价格另有三个控制开关if_listen是否进入监听状态、max_retries最大重试次数默认 1000、page_load_delay订单页加载等待秒数默认 2。运行流程从 Appium 会话到订单提交的 7 步移动端脚本启动后在一个会话内按固定顺序执行 7 步每步都有超时超时先换备用选择器全部失败则本次尝试终止并进入重试。建会话以 UiAutomator2 能力连接server_url禁用窗口动画显式等待设为 2 秒选城市1.5 秒超时依次尝试 text 精确匹配、textContains、XPath全失败即终止点预约入口先按容器 ID 定位备用方案是匹配预约 / 购买 / 立即文本选票价尝试点击票价容器中price_index位置的 FrameLayout 坐标页面上该卡片 text 可能为空失败则等容器出现后重试选数量存在数量控件时按 n 人点 n−1 次加号选观演人每人最多等 2 秒采集坐标随后连续执行mobile: clickGesture间隔 10ms提交订单if_commit_order为 true 时点击立即提交备用 XPath 匹配提交/确认一次尝试失败后脚本quit()会话、重建后隔 2 秒再来最多 3 次。Web 端流程不同先自动检查 ChromeDriver再恢复 Cookie没有则引导扫码并保存打开target_url后进入轮询直到目标票价可点循环上限即max_retries默认 1000订单页加载等待page_load_delay2 秒。故障自查4 个常见报错与检查命令排障按报错原文 → 原因 → 单条命令验证的顺序走多数问题一条命令即可定位。现象可能原因检查命令Node version must be at least ^20.19.0…Node 版本过低node --version确认后升级Unable to find an active device or emulatoradb 下没有可用设备adb devicesadb shell getprop sys.boot_completed确认完全启动Connection refused4723Appium 未启动或端口被占curl http://127.0.0.1:4723/statuslsof -i :4723Neither ANDROID_HOME nor ANDROID_SDK_ROOT exportedSDK 环境变量未设置export ANDROID_HOMESDK路径后重跑adb devices设备在线但脚本超时的情况用adb shell pm list packages \| grep damai核对 APP 包名与脚本能力里写的appPackagecn.damai是否一致。进阶参数多设备并行与等待超时的调整可调参数集中在damai_appium/damai_app_v2.py的能力字典和等待常量里Web 端只有max_retries与page_load_delay两个。多设备并行每台设备起一个 Appium 实例4723 / 4724 / 4725 依次递增每份脚本的server_url指向各自端口会话空闲超时newCommandTimeout默认 6000 秒超时自动断开速度类参数显式等待 2 秒、快速点击等待 1.5 秒、waitForSelectorTimeout300ms设备老、页面慢时把它们放宽减少误判失败性能类参数mjpegServerFramerate1与disableWindowAnimationtrue用于降低截图开销保持默认即可合规边界个人使用的前提这个工具的定位是个人账号下的自动化练习使用前要守住几条边界。遵守大麦网用户协议仅用于个人合理购票不做倒卖等商业用途脚本只模拟正常页面的点击操作不调用私有接口不绕过风控校验或验证码建议用专门账号运行网络保持稳定开售前 30 分钟启动并确认会话建立若账号触发平台风控或受到限制先停止使用项目许可限定于学习与研究用途商用不受许可保护。收尾去哪读源码移动端主逻辑集中在 damai_appium/damai_app_v2.py约 290 行Web 端逻辑分布在 damai/concert.py想逐步核对每步选择器写法时按这两个文件顺序读即可。【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

ParlAI Seq2Seq Agent 深度指南:基于 RNN 的序列到序列生成模型

ParlAI Seq2Seq Agent 深度指南:基于 RNN 的序列到序列生成模型

NLP人工智能深度学习 【免费下载链接】ParlAI A framework for training and evaluating AI models on a variety of openly available dialogue datasets. 项目地址: https://gitcode.com/gh_mirrors/pa/ParlAI 点击查看 免费下载 本指南围绕 ParlAI 仓库中 parla…

2026/9/24 17:03:13 阅读更多 →
Yii 2 错误处理完全指南:ErrorHandler 组件、异常页面定制与多格式错误响应

Yii 2 错误处理完全指南:ErrorHandler 组件、异常页面定制与多格式错误响应

Yii 2 错误处理完全指南:ErrorHandler 组件、异常页面定制与多格式错误响应 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 本篇技术指南以 Yii 2 内置的 yii\web\ErrorH…

2026/9/24 17:03:13 阅读更多 →
前端实战:滚动监听实现顶部 logo 平滑显隐效果

前端实战:滚动监听实现顶部 logo 平滑显隐效果

开发弹窗、侧边抽屉、全屏遮罩这类组件时,经常会遇到一个问题:弹窗弹出后,底层页面依然可以滚动,体验很差。常见方案就是控制 body 的滚动,本文使用 jQuery 实现禁止页面滑动和恢复页面滑动,同时说明坑点。…

2026/9/24 17:03:13 阅读更多 →

最新新闻

Java数据类型与运算符避坑指南:从基本类型到Integer缓存

Java数据类型与运算符避坑指南:从基本类型到Integer缓存

最近带了个新人,他问我:Java 里到底有几种数据类型?我说 8 种基本类型。他又问:那 String 呢?我说 String 是引用类型。他接着问:那为什么有人总说 Java 的运算符优先级比数据类型还难记?遇到长…

2026/9/24 22:44:39 阅读更多 →
古词新解:从《贺新郎·别友》看离别词的现代回响

古词新解:从《贺新郎·别友》看离别词的现代回响

第一次认真读这首《贺新郎别友》,是在一个夜深人静的晚上。那时候我对它的印象还停留在“这是一首名人写的离别词”,觉得应该跟课本里那些革命情怀的篇章差不多,结果从头到尾读下来,整个人有点被定住。它没有我预想中的那样昂扬&a…

2026/9/24 22:44:39 阅读更多 →
笔记本24G显存跑27B模型:576 tok/s背后的技术解密与实战调优

笔记本24G显存跑27B模型:576 tok/s背后的技术解密与实战调优

晚上十一点,我把笔记本从包里拿出来,接上电源,在终端敲下 ninfer 的启动命令。按下回车的时候,我其实没抱什么期望——过去大半年,我在各种设备上跑过 27B 级别的本地模型,结论始终是同一个:能加…

2026/9/24 22:44:39 阅读更多 →
多Agent协作实战:用开源桌面端搭建5个Claude Code智能体流水线

多Agent协作实战:用开源桌面端搭建5个Claude Code智能体流水线

把 5 个 Claude Code 智能体同时挂到一个开源桌面端里,让它们像一个小团队那样自己拆任务、自己写代码、自己跑测试,最后把成果汇总给你——这是我最近一直在折腾的玩法。“14K Star 的 Claude Code 开源桌面端”这个项目刷屏的时候,我只是随…

2026/9/24 22:44:39 阅读更多 →
Http Mock工具实战拆解:从接口模拟到前后端联调提效

Http Mock工具实战拆解:从接口模拟到前后端联调提效

简介:面向前端开发者在后端接口未完成时无法联调的场景,这款Http自动回复请求软件提供了一键式Mock服务方案。通过图形化界面可快速创建、编辑和管理接口,无需安装额外插件或复杂配置,根据接口文档填入模拟数据即可启动服务&#…

2026/9/24 22:44:39 阅读更多 →
C++ IO流详解:从cin/cout到文件与字符串流的实战指南

C++ IO流详解:从cin/cout到文件与字符串流的实战指南

先说结论:C的IO流是每个C开发者都绕不过去的基础设施。不管你是刚学完语法、准备写第一个小工具的新手,还是已经在用C做后台服务、写算法竞赛、搞游戏引擎的老手,每天打开编辑器基本都在和cin、cout、fstream、stringstream打交道。但要真把I…

2026/9/24 22:43:39 阅读更多 →

日新闻

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

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

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

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →