多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

3步跑通大麦自动抢票:Python+Selenium+Appium双端购票自动化完整攻略

3步跑通大麦自动抢票:Python+Selenium+Appium双端购票自动化完整攻略 3步跑通大麦自动抢票PythonSeleniumAppium双端购票自动化完整攻略【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase开票 30 秒就售罄手再快也快不过服务器——这是大多数人在热门演出面前的真实处境。今天介绍的大麦自动抢票工具基于 Python 开发用 Selenium 接管 Chrome 网页、用 Appium 驱动 Android 手机把选城市、选场次、选票价、勾观演人、提交订单这一整套动作全部自动化。你只需要提前配好参数开票瞬间它替你完成下单全程零人工干预。30 秒速览项目内容一句话定位大麦网购票全流程自动化支持 Web 与手机双端技术栈Python SeleniumWeb/ Appium移动端环境依赖Python 3.7移动端另需 Node.js 20.19.0、Android SDK、Appium、UiAutomator2上手难度低配好 JSON 参数即可运行适合谁需要抢演唱会、体育赛事门票的新手和普通用户先做选型Web 端还是移动端两条技术路线都能跑通但依赖成本不同。先看对比再决定对比项Web 端移动端自动化引擎Selenium ChromeAppium UiAutomator2额外依赖无Chrome 最新版即可Node.js 20.19.0、Android SDK、Appium、UiAutomator2配置文件damai/config.jsondamai_appium/config.jsonc启动方式python damai.py./start_appium.sh./start_ticket_grabbing.sh操作对象大麦网页大麦 Android APP适合人群想最快跑通、不想折腾环境的人习惯 APP 体验、需要模拟真机操作的用户结论很直接追求最短路径跑通选 Web 端需要 APP 侧界面或想模拟手机操作选移动端。两条路线互不冲突环境允许的话可以都备着开票时双管齐下。从 0 到跑通一条主线走完不管选哪端主线都是这 5 步第 1 步拉取代码git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase第 2 步安装 Python 依赖poetry install # 或者 pip install -r damai/requirements.txtSelenium 和 chromedriver-autoinstaller 会被自动装好ChromeDriver 版本问题不用你操心。第 3 步一键体检环境./check_environment.sh这条命令把 Python、Chrome、ChromeDriver移动端还会检查 Node、Appium、ADB全部扫一遍缺什么报什么。第 4 步移动端额外配置仅移动端需要安装 Node.js 20.19.0安装 Appium 与驱动npm install -g appium后执行appium driver install uiautomator2设置ANDROID_HOME和ANDROID_SDK_ROOT环境变量用adb devices确认设备已连接并在设备里提前登录好大麦 APP第 5 步填配置并启动Web 端编辑好 damai/config.json 后进入damai目录执行python damai.py浏览器会自动打开你扫码登录脚本开始监控票务状态。移动端先./start_appium.sh启动 Appium 服务确认手机停在目标演出页再执行./start_ticket_grabbing.sh。环境检查一次到位后面每次抢票只需要改配置 点启动。配置精解每个字段怎么填配置文件是整个工具的核心填对了才有后面的一切。先看target_url怎么拿打开大麦网页搜索目标演出进入详情页把浏览器地址栏的完整 URL 复制出来——里面有演出 ID是脚本定位演出的唯一依据填进target_url。页面上的城市、场次日期、票价栏就是city、dates、prices三个参数的取值来源。日期和票价支持多格式匹配。页面今天显示 2024.05.11明天可能改成 5月11日你一次把可能的写法都配上脚本会挨个尝试dates: [2024-05-11, 5月11日, 2024.05.11], prices: [580, ¥580, 580元]大麦改了显示格式你的配置照样能命中不用等代码更新。一个完整的 Web 端配置长这样参数速查表Web 端 damai/config.json参数作用推荐值index_url大麦首页脚本入口https://www.damai.cn/login_url登录页https://passport.damai.cn/logintarget_url目标演出详情页完整地址从浏览器地址栏复制users观演人姓名数组按购买顺序排列[张三, 李四]city演出城市与页面城市栏一致如广州dates场次日期支持多格式[2024-05-11, 5月11日]prices票价支持多格式[580, ¥580]fast_mode快速模式开关true首次运行建议先falseif_listen持续监听回流票trueif_commit_order是否自动提交订单首次运行务必falsemax_retries轮询最大重试次数默认 1000热门演出 5000page_load_delay订单确认页加载等待秒3~5移动端 damai_appium/config.jsonc 字段略有不同核心是server_urlAppium 地址、keywordAPP 内搜索词、date、price、price_index票价列表下标从 0 开始和if_commit_order思路一致。多格式写法是免费的容错保险日期和票价能配几种格式就配几种。原理拆解开票瞬间脚本到底做了什么Web 端详情页长这样城市、场次、票价三个选择区域就是脚本依次操作的位置完整流程串起来是环境检查验证 Chrome 与 ChromeDriver 版本兼容扫码登录打开大麦首页等你人工扫码唯一需要动手的环节进入详情页加载target_url依次选择按配置匹配城市 → 场次日期 → 票价轮询按钮不断检查立即预订是否可点有票立即跳订单确认页选观演人勾选users里配置的人提交订单if_commit_order为true时自动提交各阶段的终端输出长这样方便你判断脚本卡在哪一步环境检查阶段 大麦网抢票脚本启动 ✓ 配置文件加载成功 - 目标URL: https://detail.damai.cn/item.htm?id123456 - 观众人数: 2人 ⏳ 正在检查Chrome环境... Chrome版本: 144 ✓ ChromeDriver就绪详情页选择阶段***选择城市*** 目标城市: 杭州 ✓ 匹配成功: 杭州站 ***选择场次*** ✓ 匹配成功: 2026-04-11 周六 19:30 ***选择票价*** ✓ 匹配成功: ¥680订单提交阶段***准备提交订单*** ✓ 找到立即提交 ***订单已提交***看懂输出日志你就知道了脚本在哪一步、还差什么——排障只有一半工作量。进阶调优按场景开对开关场景一准点开票的热门场快就是全部做法配置里设fast_mode: true收益订单确认页加载从 2.0s 优化到 0s改用显式等待轮询间隔从 1.0s 降到 0.3s点击后等待从 0.5s 缩到 0.2s。整体节省 5~8 秒分秒必争的场景里这就是成败差距提醒快速模式会减少调试输出。第一次用、或出问题时先关掉它看完整日志场景二网络波动、页面加载慢做法什么都不用配——选观演人环节找不到元素时系统自动重试 5 次每次间隔 0.5 秒最多额外等 2.5 秒收益服务器响应慢时不再一票否决成功率明显更稳场景三想多留一手做法多设备协同——不同账号 不同浏览器/设备并行跑配置同一场演出收益相当于多买几份保险但控制请求频率别太频繁避免触发风控场景四不同票源时间策略不同场景做法准点开票max_retries设 5000提前 30 分钟启动脚本、10 分钟前完成登录、5 分钟前打开详情页预售抢票提前 1~2 分钟开始轮询卡住开票瞬间回流票if_listen: true持续监听有票立即下单进阶的本质是提前量模式、重试、设备数都是为开票那几秒服务。排障避坑问题速查 安全清单现象可能原因解法提示找不到用户元素page_load_delay偏小姓名与页面格式不一致把page_load_delay调到 3~5 秒检查名字有没有多余空格或后缀关掉fast_mode看详细扫描日志ChromeDriver 版本不匹配Chrome 更新后 Driver 还是旧的直接重跑脚本会自动安装匹配版本仍报错就执行python damai/check_environment.py手动体检移动端提示设备未连接USB 调试未开 / 线缆问题开启 USB 调试后adb devices复验检查ANDROID_HOME是否已设置移动端报 Node 版本错误Node.js 低于 20.19.0升级到 20.19.0 / 22.12.0 / 24.0.0 任一兼容版本Appium 连接被拒服务没启动或端口占用确认./start_appium.sh在跑检查 4723 端口是否被占用安全使用清单✅ 用小号测试和抢票别拿主账号试错✅ 首次运行设if_commit_order: false人工确认订单无误再开启自动提交✅ 配置文件里有观演人真实姓名不要外发、不要提交到公开位置✅ 遵守大麦网使用条款工具仅供学习与个人使用先 false 后 true、先小号后主力——顺序对了踩坑成本趋近于零。资源延伸核心文件与文档Web 端主程序damai/damai.py移动端优化版程序damai_appium/damai_app_v2.py配置解析类damai/config.py环境检查脚本damai/check_environment.py一键环境检查./check_environment.shAppium 启动脚本./start_appium.sh移动端抢票启动脚本./start_ticket_grabbing.sh项目概览README.md快速入门QUICK_START.mdPC 端完整指南完整使用指南(PC端).md.md)遇到问题先看 QUICK_START.md细节查完整使用指南基本能覆盖 90% 的情况。抢票拼的从来不是手速而是提前量环境提前备好、参数配全格式、开关按场景调好开票瞬间剩下的就交给脚本。祝你一次锁票成功 ⚡【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表