尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

大麦自动抢票还拼手速?这套双端Python方案把抢票练成了“肌肉记忆“

大麦自动抢票还拼手速?这套双端Python方案把抢票练成了“肌肉记忆“ 大麦自动抢票还拼手速这套双端Python方案把抢票练成了肌肉记忆【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase如果你的抢票经历是这样的——开售前死死盯住手机、倒计时结束手指狂点、页面转圈半秒后弹出已售罄那这篇文章就是为你准备的。大麦自动抢票工具 ticket-purchase用 Python 把 Selenium 和 Appium 组合成一套双端机器人电脑浏览器一条线安卓 App 一条线替你完成从选城市、选场次、选票价到勾选观演人、提交订单的完整链路。先说结论它最大的价值不是能抢而是抢得够快、够省事。下面我从三个真实痛点出发带你看看它具体是怎么解决的。痛点一你的手速跑不过网络延迟开售瞬间页面从预约变成立即购买往往只有一两秒。你手动操作眼睛看到→大脑判断→手指点击至少 300 毫秒起步如果还要依次选日期、选票价、勾两个观演人、点提交整个过程轻松超过 10 秒。而票通常第一秒就被扫光了。这个项目里最值得看的部分就是移动端damai_appium/damai_app_v2.py这个优化版机器人。它把抢票流程拆成了七个步骤选城市 → 点预约/购买 → 选票价 → 加数量 → 确定购买 → 勾选观演人 → 提交订单全部自动完成。为了让每一步都快它做了几件很激进的事不点击按钮直接点坐标。普通自动化要等元素可点击再调用click()它改成先用WebDriverWait只等元素出现不等待可点击状态拿到元素中心坐标后直接通过mobile: clickGesture发原生手势点击点击时长压到 50 毫秒。批量勾选观演人。多人票是抢票最拖时间的环节之一ultra_batch_click会先把所有观演人的坐标一次性收集好然后几乎不间隔地连续点击而不是点一个、等一下、再点下一个。关掉一切没用的等待。驱动配置里把waitForIdleTimeout、actionAcknowledgmentTimeout、keyInjectionDelay全部设为 0等于告诉 UiAutomator2别等页面喘口气元素一出现我就上手。用一句直白的话总结它把人类的看到→思考→点击压成了机器的检测到→点两步剩下的时间差就是它抢到票而你手慢的原因。痛点二每场演出都要重写一遍脚本很多自动化工具强归强但换个演出、换个城市就要改代码劝退了一大批普通用户。这个项目反着来你完全不碰代码只改一个配置文件。移动端所有抢票参数都集中在damai_appium/config.jsonc这一个文件里像点菜一样填就行{ server_url: http://127.0.0.1:4723, keyword: 周深, users: [王胜, 潘鸿运], city: 深圳, date: 12.06, price: 内场1199元, price_index: 5, if_commit_order: true }每个字段都对应抢票页面的一个真实操作配置参数页面上的作用示例值keyword搜索目标演出周深users观演人名单决定买几张、勾谁[王胜,潘鸿运]city自动点选城市深圳date自动点选演出日期场次12.06price票价描述用于文本匹配内场1199元price_index票价在列表中的索引从0开始5if_commit_order是否自动提交订单设为false可先手动检查true这里有个很贴心的细节APP 更新后很多票价按钮的文本变成了空字符串靠文字找按钮的旧方案失效了。V2 版改用索引 可点击属性定位票价price_index就是干这个的并给城市、购买按钮、提交按钮都准备了多套备选选择器——第一套找不到自动换第二套、第三套。页面结构变了脚本不至于直接瘫痪。痛点三环境配置劝退一键脚本三件套Appium Android SDK Node.js光是听到这几个词不少人就想关页面了。项目用三个 shell 脚本把这条技术门槛直接削平./check_environment.sh把 Python 版本、Node 版本、Appium、Android SDK、ADB、设备连接、大麦 APP 是否安装、Appium 服务器是否启动逐项体检一遍哪缺补哪。./start_appium.sh设置环境变量、检查设备、检查 APP然后一键拉起 Appium 服务器。./start_ticket_grabbing.sh校验服务器和配置文件打印当前配置跟你确认后直接进入抢票主流程。上图为大麦票务页面示例演出信息、票价选择等关键元素一目了然完整抢票流程见 img/大麦抢票流程.png整个上手路径是git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase→ 装依赖 → 跑环境检查 → 改配置 → 启动。从零到能跑熟练之后十分钟以内。当然移动端第一次还是要手动在设备上打开大麦 APP、登录账号、搜索到目标演出并进入详情页这是它刻意保留的人工环节——机器人只负责抢不负责认路。进阶玩法快抢与蹲守两种策略任选Web 端模块damai/damai.pydamai/concert.py里藏着另一套思路。它默认开启fast_mode快速模式用显式等待替代全局隐式等待把刷新和点击间隔压缩到 0.1~0.3 秒适合开售瞬间冲刺。但它也能反过来用——把if_listen设为true脚本会进入监听模式反复检测按钮状态遇到提交缺货登记就刷新重试一旦按钮变成立即购买立刻点击。这正好应对两类经典场景预售秒杀fast_mode: true开售前几分钟进详情页盯着按钮从灰变亮亮了就冲。回流票蹲守fast_mode: falseif_listen: true开着挂机等有人退票释放库存第一时间接手。Web 端还内置了多方案提交订单的兜底逻辑按文本、按 view-name 属性、按 class、按原始 XPath 依次尝试全部失败才提示你手动点击——把把订单交出去这最后一步的容错率拉满了。谁适合用它为偶像演唱会焦虑的普通人不想熬夜盯手机把重复劳动交给脚本自己只需提前配好参数、盯一眼结果。想学 Python 自动化的学生这是一个真实、完整、有挑战的实战项目双端、重试、备选选择器、性能调优知识点密度很高。技术尝鲜玩家家里有 Android 模拟器或旧手机拿来跑一遍流程体会机器替人的乐趣。最后提醒一句使用边界请把它当作学习工具遵守大麦网的平台规则用测试账号操作别把它变成干扰他人正常购票的手段。技术能帮你把流程走快但买票这件事公平永远比快更重要。如果你今晚就要开抢照着环境检查 → 改config.jsonc→ 启动 Appium → 运行脚本四步走即可。剩下的就交给那套把等待时间压到零的代码吧。【免费下载链接】ticket-purchase大麦自动抢票支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表