亲测开源自动化抢票神器:从陪跑三年到拿下演唱会门票,我的成功率从 1% 冲到 90%
【免费下载链接】ticket-purchase大麦自动抢票,支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase
你有没有过这种时刻:倒计时归零的瞬间,页面像被冻住一样转圈,等它缓过来,"立即购买"四个字已经变成了灰色的"已售罄"。
我体会过,整整体会了三年。
第一次抢票,手一抖把观演人选成了我妹,等发现时订单已提交;第二次,卡在付款页转圈转到超时,票没了;第三次到第八次,连"提交订单"按钮长什么样都没见过。0.3 秒售罄,真的不是段子,是我每个开票日晚上的噩梦。
直到一个偶然的机会,我在开源社区撞见了这个叫ticket-purchase的项目——一个大麦网自动化抢票工具。它用Python干活,桌面端靠Selenium驱动 Chrome 浏览器,移动端靠Appium + UiAutomator2指挥安卓手机里的大麦 APP,城市、日期、价位、观演人全自动点选,还能自己提交订单。说人话就是:我请了一位不知疲倦、手速飞快的"抢票助理"。
那个周末,我只花了半小时让它跑起来
坦白讲,动手之前我以为又是一堆看不懂的配置。结果从git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase到第一次试跑,我只用了一个下午。
进门第一件事,先跑一条命令:
./check_environment.sh这个脚本会像体检一样帮你把 Python、Node.js、Appium、Android SDK、ADB 设备挨个查一遍,缺什么直接告诉你装什么,不用自己瞎猜。我的机器上只缺 Node 新版,照着提示升级到 20.19.0+ 就过了。移动端还需要appium driver install 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、price分别锁死城市、日期和价位档,price_index是价位在列表里的位置,if_commit_order决定要不要自动冲到付款那一步。照着演出详情页填就行,我拿周深的深圳场试了一次就对了。
填完配置,接着启动 Appium 服务器,让手机和电脑"对上暗号":
./start_appium.sh脚本会自动检测设备连接、确认大麦 APP 是否安装,然后拉起 4723 端口的服务。手机那头提前把大麦 APP 打开、登录好、搜到目标演出并停在详情页,最后执行:
./start_ticket_grabbing.sh它会再次核对配置,跟你确认一句"确认开始抢票?",回车之后,抢票助理就正式上岗了。从点击购买到选观演人再到提交订单,全程不需要我碰手机。项目里那张流程图,一眼就能看懂它肚子里装着多少活儿:
我踩过的最大的三个坑,和爬出来的姿势
第一次抢票就成功?别做梦了。我是在踩坑中把这套工具玩明白的,分享三个让我印象最深的:
坑一:环境全绿,却报"Connection refused"。我以为 Appium 没启动,折腾半天发现是端口 4723 被之前的残留进程占着。curl http://127.0.0.1:4723/status看一眼,端口被占用就换个端口,或者把旧进程清掉重来。记住:报错先查端口,别急着怀疑人生。
坑二:手机连上了,脚本却找不到设备。一看adb devices,列表里确实有设备,但状态不是 "device" 而是 "unauthorized"。原因很简单——手机上的 USB 调试授权弹窗被我忽略了。重新插拔、在手机上点"允许",世界立刻清净。
坑三:配置全对,抢了个寂寞。我第一次把price_index填错了位置,脚本在票务列表里点到了隔壁档位,眼睁睁看着心仪价位售罄。从那以后我学乖了:先用一场不热门的演出练手,把example_detail.png里那套"配置参数对页面元素"的逻辑摸透,确认每个数字都咬合了,再去碰热门场。
进阶玩家的三板斧
跑通一次之后,我开始研究怎么把成功率再往上顶。这项目的可玩性就在这里,三招递进:
第一板斧:开售瞬间冲刺。热门场次拼的是前几秒,把重试次数拉满、页面加载等待压到最短,让它一开闸就疯狂轮询"立即购买"按钮,谁手快谁赢。我用这一招,成功从秒没的场次里撕下一张票。
第二板斧:回流票蹲守。有人退票、有场次临时加票,这种"捡漏"拼的是耐心。开启监听模式,让它每隔几十秒轮询一次票务状态,有票就自动走完整个下单流程,没票就继续蹲。凌晨三点捡到回流票的快乐,懂的都懂。
第三板斧:多设备协同。一台主力机快速模式猛冲,一台备用机开监听兜底,配置不同的观演人和账号,等于一个人同时排三个队。当然,前提是你有足够的设备和账号。
一句真心话
聊点别的。这套工具确实香,但请一定把它用在正道上:仅供个人学习研究,别拿去刷票倒卖,也别跟平台规则硬刚。它本质是个"自动化练习",尊重平台条款、别把请求频率调得跟攻击似的、用专门的小号而不是主力账号——玩得开心,也玩得安心。
现在就动手的三步清单
别光收藏,上手才是真的:
- 开个终端,
git clone https://gitcode.com/GitHub_Trending/ti/ticket-purchase把项目拉下来; - 跑
./check_environment.sh补齐环境,改好damai_appium/config.jsonc里的演出参数; - 启动
./start_appium.sh,再跑./start_ticket_grabbing.sh,然后用一场冷门演出练手。
我的抢票成功率从 1% 一路爬到了九成,靠的就是这套开源工具 + 反复演练。下次开票,祝你也能从"陪跑"变"上岸",亲眼看着订单页面弹出"支付成功"四个字。🎫
【免费下载链接】ticket-purchase大麦自动抢票,支持人员、城市、日期场次、价格选择项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考