ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

大麦自动抢票 Python 实操指南:网页与移动端双通道

大麦自动抢票 Python 实操指南:网页与移动端双通道 大麦自动抢票 Python 实操指南网页与移动端双通道【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchaseticket-purchase 是一个 Python 大麦自动抢票项目网页端用 Selenium 驱动 Chrome移动端用 Appium 驱动 Android 上的大麦 App覆盖从选场次、选票价到提交订单的完整流程。面向会用终端、看得懂 JSON 配置的开发者。开票倒计时结束时详情页的购买按钮从「预约」翻转为可点击而人工从进页面到提交订单需要数秒连续操作。这个脚本接管的正是这几秒的点击。能力边界它能做什么、依赖什么工具自动完成搜索演出、选择城市与场次、选择票价、勾选观演人、提交订单这些动作网页和移动端两条链路互相独立可以只用一条也可以同时跑。它不做三件事不代登录账号要提前自行登录、不碰支付提交订单后由你自己付款、不承诺结果——网络延迟和开票瞬间的状态仍决定成败。环境依赖Python 3.9、最新版 Chrome移动端另需 Node.js 20.19.0 及以上、Appium 3.1.0、Android SDK 和一台 Android 真机或模拟器。项目当前版本 2.0.0macOS、Windows、Linux 均可运行。核心机制两条自动化链路两条链路思路一致主程序读取配置用浏览器或设备自动化框架驱动界面开票后按配置快速定位元素并点击。网页链路走 Selenium主程序 damai.py 驱动 Chrome业务逻辑在 concert.py配置是 damai/config.json包含目标演出页 URL、观演人列表、场次与票价数组以及重试和等待相关参数移动端链路走 Appium主程序 damai_appium/damai_app_v2.py 连接本地 Appium 服务器接管大麦 App配置在 damai_appium/config.jsoncticket-purchase/ ├── damai/ │ ├── damai.py # 主程序网页端Selenium │ ├── concert.py # 演出业务逻辑 │ ├── config.py # 配置类 │ └── config.json # 网页端配置 ├── damai_appium/ │ ├── damai_app_v2.py # 主程序移动端优化版 │ ├── config.py # 配置类 │ └── config.jsonc # 移动端配置 ├── check_environment.sh # 环境自检 ├── start_appium.sh # 启动 Appium 服务器 └── start_ticket_grabbing.sh # 启动抢票读一遍目录即可建立心智模型damai/ 服务于不想搭 Android 环境的场景damai_appium/ 服务于想要更直接设备控制的场景。最短路径跑通从克隆到抢票拿到项目后先让自检脚本告诉你缺了什么git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase cd ticket-purchase ./check_environment.sh这一步克隆仓库并执行环境自检Python、Node.js、Appium、ADB、Android SDK 是否就位Android 设备是否在线、大麦 App 是否已安装逐项给出结论缺什么提示什么。环境齐备后开两个终端分别执行./start_appium.sh # 终端 A ./start_ticket_grabbing.sh # 终端 Bstart_appium.sh 复核 Node 版本、设备与 App 包名cn.damai然后在 4723 端口启动 Appium 服务器start_ticket_grabbing.sh 会先请求 4723 端口确认服务器存活、检查配置文件存在再运行 damai_appium 下的抢票脚本。注意运行前需要已在手机上手动打开大麦 App 并进入目标演出详情页脚本的开头提示也会再次提醒这一点。两个 sh 脚本中写入了示例环境的 SDK 与解释器路径如果你的机器路径不同可以按 README 的方式手动启动自行运行 appium --port 4723再进入 damai_appium 目录运行 python damai_app_v2.py。移动端配置参数逐项说明移动端全部参数都在 damai_appium/config.jsonc对照下表填写参数含义示例值易踩坑点server_urlAppium 服务器地址http://127.0.0.1:4723端口必须与服务器实际监听一致keyword演出搜索关键词周深能检索到目标演出即可users观演人姓名列表[王胜, 潘鸿运]须与账号实名观演人逐字一致city演出城市深圳与页面显示文本完全一致date场次日期12.06移动端格式为月.日不带年份网页端是另一套格式price目标票价描述内场1199元仅作参考实际点中哪块票价由 price_index 决定price_index票价块索引5从 0 开始按页面排列数部分票价块文本为空按位置定位更可靠if_commit_order是否自动提交订单true设为 false 会停在确认页适合先验证流程参数与页面元素的对应关系如下city、date、price 分别对应详情页上的城市、场次、票块三个可选区域。一次完整抢票运行的时间线以移动端为例从按下回车到订单提交实际发生的事# 0. 你手机已登录进入目标演出详情页 # 1. 脚本连接 Appium 服务器接管大麦 App # 2. 点击页面上的城市文本 # 3. 点击底部购买栏开售前是预约开票后可点 # 4. 点击 price_index 位置对应的票块 # 5. 把数量调整到与 users 人数一致 # 6. 确定购买逐个勾选观演人 # 7. 点击立即提交脚本打印全程耗时整套动作封装在 run_ticket_grabbing() 里失败后由 run_with_retry 重建设备会话并间隔 2 秒重试默认尝试 3 次。开抢前的详情页应当长这样确认城市、场次、票块与配置一致再开始调优清单真正影响成功率的四件事双链路保底两台不同设备分别跑网页版和移动端两条链路互不干扰一条失败另一条仍有机会。双网络备份有线为主、手机热点备用开票那几秒里网络延迟和抖动是最大的变量。先跑干运行开售日前拿一场非热门演出完整走一遍流程确认每个参数都能对应到页面上的真实元素配置错误不必等到开票才暴露。等待与重试参数网页端配置里有 max_retries、fast_mode、page_load_delay 一类可调项见 damai/config.json 的默认值等待更短、重试更多对开票瞬间的响应越快具体以项目仓库实际配置为准。排错速查症状可能原因检查命令adb 列表里没有设备未开 USB 调试或线缆、接口问题adb devices连 Appium 被拒绝4723 端口服务器未启动或被占用curl -s http://127.0.0.1:4723/status启动时报 Node 版本错误Node.js 低于 20.19.0node --version提示 ANDROID_HOME 未设置SDK 环境变量没有导出echo $ANDROID_HOME合规说明与最后一步本项目仅供学习研究请勿用于商业用途使用时请遵守平台服务条款与实名制规则只抢自己真实需要的场次。./check_environment.sh开售前把自检再跑一遍全绿之后剩下的就是等时间到。【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表