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

大麦自动抢票指南:Python Selenium + Appium 双端抢票脚本完整教程

发布时间:2026/9/24 17:02:56 来源:云帆数科 栏目:资讯中心
大麦自动抢票指南: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:02:56

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:02:56

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

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

第 12 篇:卷帘分析-影像对比——左边是昨天,右边是今天
第 12 篇:卷帘分析-影像对比——左边是昨天,右边是今天

前面好几篇,本猿干的都是同一件事:往地球身上加东西——加矢量数据、加山脉起伏、加雨雪雷雾、加十万颗自己飞自己熄灭的火星。地球越来越热闹。 可 GIS 这行最值钱的往往不是"它长什么样",而是"它变成了什么样"。 拆迁前后的同一块地、洪峰前后的同一… · 2026/9/24 17:36:52

分治排序的应用
分治排序的应用

1. 归并排序 题目链接&#xff1a;https://www.luogu.com.cn/problem/P1177#ide #include<bits/stdc.h> using namespace std; // 传入 l, mid, r 明确告诉 merge 函数要合并哪两段 void merge(vector<int>& a, int l, int mid, int r, vector<int>&am… · 2026/9/24 17:36:51

深入理解C++系列(22)——智能指针的
深入理解C++系列(22)——智能指针的

⭐️博主&#xff1a; 此生决int-CSDN博客 速胜派就是最大的投降派&#xff01;&#xff01;&#xff01; &#x1f525;热门专栏&#x1f525; 深入理解 C 系列 &#xff5c; 算法系列 快速复习系列 &#xff5c; Java 速通系列 文章目录上期回顾智能指针的使用及其原理1. 智… · 2026/9/24 17:36:51

Nat. Genet. | 120万细胞绘制人类皮肤空间单细胞图谱:关键不只是细胞类型,而是“空间邻域”
Nat. Genet. | 120万细胞绘制人类皮肤空间单细胞图谱:关键不只是细胞类型,而是“空间邻域”

皮肤不是一层均质屏障&#xff0c;而是一个跨部位、跨结构、跨免疫-基质互作的复杂器官。过去单细胞研究能告诉我们有哪些细胞&#xff0c;但很难回答&#xff1a;这些细胞在身体不同部位如何组织成稳定的空间结构&#xff1f; 这篇文章的核心&#xff0c;是把人类皮肤从“细胞… · 2026/9/24 17:36:51

CTLE(连续时间线性均衡)解析
CTLE(连续时间线性均衡)解析

目录 1. CTLE 的基本原理 1.1 为什么需要 CTLE&#xff1f; 1.2 CTLE 的典型传递函数 1.3 CTLE 的频域补偿效果 1.4 时域上的效果 未使用 CTLE 时 使用 CTLE 后 2. CTLE 的典型电路实现 3. CTLE 在系统中的信号流程 3.1 高速数据路径流程图 4. CTLE 的配置与自适应流… · 2026/9/24 17:36:51

从零向 UE 5.3 渲染管线插入一个 Mesh Pass
从零向 UE 5.3 渲染管线插入一个 Mesh Pass

从零向 UE 5.3 渲染管线插入一个 Mesh Pass 前言 这次实验会在 Base Pass 之后、光照之前&#xff0c;把选中的 Mesh 再画一遍。预期效果很简单&#xff1a;在 UStaticMeshComponent 的 Rendering 高级选项中勾选 bRenderCustomMeshPass&#xff0c;运行时模型会呈现红色。 上… · 2026/9/24 17:36:45

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

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

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

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

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

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

了解更多?预约专属演示

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

企业微信二维码