基于自动化工具autox.js的抢票(猫眼)

1.看到朋友圈抢周杰伦、林俊杰演唱会票贼难信息,特研究了一段时间,用autox.js写了自动化抢票脚本,购票页面自动点击下单(仅限安卓手机)。

2.脚本运行图

3.前期准备工作

 (1)autox.js社区官网:AutoX.js

 (2)b站上学习资料:10分钟学会AutoX.js hello world_哔哩哔哩_bilibili

                                      AutoX.js控件操作_哔哩哔哩_bilibili

4.源码

 // 检查无障碍服务是否已经启用,如果没有启用则跳转到无障碍服务启用界面,并等待无障碍服务启动;当无障碍服务启动后脚本会继续运行。
 auto.waitFor();
 //打开猫眼app
 app.launchApp("猫眼");
 openConsole();
 console.setTitle("猫眼 go!","#ff11ee00",30);

main();

//获取输入的场次信息
function getPlayEtc(){
    var playEtc = rawInput("请输入场次关键字(按照默认格式)", "周六");
    if (playEtc == null || playEtc.trim()=='') {
        alert("请输入场次信息!");
        return getPlayEtc();
    }
    console.log("手动输入的场次信息:"+playEtc);
    return playEtc;
}

//获取输入票价信息
function getTicketPrice(){
    var ticketPrice = rawInput("请输入票价关键字(按照默认格式)", "788");
    if (ticketPrice == null || ticketPrice.trim()=='') {
        alert("请输入票价信息!");
        return getTicketPrice();
     }

    console.log("手动输入的票价信息:"+ticketPrice);
    return ticketPrice;
}

//获取输入的抢票时间
function getSellTime(){
    var sellTime = rawInput("请输入抢票时间(按照默认格式)", "10-07 12:18");
    if (sellTime == null || sellTime.trim()=='') {
        alert("请输入抢票时间!");
        return getSellTime();
     }
    return sellTime;
}

]]


}

/**
 * 
 * @returns 大麦服务器时间戳
 */
function getDamaiTimestamp() {
    return JSON.parse(http.get("https://mtop.damai.cn/gw/mtop.common.getTimestamp/", {
        headers: {
            'Host': 'mtop.damai.cn',
            'Content-Type': 'application/json;charset=utf-8',
            'Accept': '*/*',
            'User-Agent': 'floattime/1.1.1 (iPhone; iOS 15.6; Scale/3.00)',
            'Accept-Language': 'zh-Hans-CN;q=1, en-CN;q=0.9',
            'Accept-Encoding': 'gzip, deflate, br',
            'Connection': 'keep-alive'
        }
    }).body.string()).data.t;
}

/**
 * 
 * @param {时间戳} timestamp 
 * @returns ISO 8601 格式的北京时间
 */
function convertToTime(timestamp) {
    var date = new Date(Number(timestamp));
    var year = date.getUTCFullYear();
    var month = (date.getUTCMonth() + 1).toString().padStart(2, "0");
    var day = date.getUTCDate().toString().padStart(2, "0");
    var hours = (date.getUTCHours() + 8).toString().padStart(2, "0");
    var minutes = date.getUTCMinutes().toString().padStart(2, "0");
    var seconds = date.getUTCSeconds().toString().padStart(2, "0");
    var milliseconds = date.getUTCMilliseconds().toString().padStart(3, "0");
    var iso8601 = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;
    return iso8601;
}



 //点击控件所在坐标
function btn_position_click(x) {
    if (x) {
       var b = x.bounds();
       print(b.centerX())
       print(b.centerY())
       var c = click(b.centerX(), b.centerY()) 

       console.log("点击是否成功:"+c);
    }
}

在现代信息技术高度发展的背景下,获取演唱会门已成为一项需要智能手段和精准操作的过程。由于热门演出的门常常在短时间内售罄,一些科技企业与技术人员开发了多种辅助工具,以提升用户购的成功率。“猫眼演唱会购软件”即是此类工具之一,其核心功能在于追踪门的重新释放情况,并在系统再次上架时自动执行购操作。 该软件的“回流检测”模块尤为重要,它能持续监测务系统的库存变化,一旦发现有门重新进入可售状态,系统会立即触发机制。这种功能尤其适用于那些在初始销售后因退、取消或系统调整而释放少量源的演出。由于这类源数量稀少且释放时间难以预料,若缺乏高效的机制,用户将很难成功购得门。 此外,该软件还提供了“库存实时监测”和“二次定制”功能。前者用于持续跟踪务库存动态,确保在新出现时第一时间响应;后者则允许开发人员根据用户的实际需求对软件进行功能扩展或调整,以适应不同购场景。 需强调的是,虽然此类工具在技术上能够提升购效率,但其使用需符合相关法律法规及平台规则。若操作不当,可能导致账户受限或面临法律风险。 软件相关的术语如“星球”“猫眼”“大麦”等,均与务服务有关。“猫眼”可能指猫眼电影平台,该平台除电影信息外,也提供演唱会等现场活动的务服务;“大麦”则为国内知名的务网站,涵盖演唱会、体育赛事等多种类型活动的务销售。用户可通过这些平台购买各类演出的入场券。 在文件列表中,“empty_file.txt”可能表示该压缩包内包含一些用于配置或更新的空文件;而“PYTicketMonitoring-master”则表明这是一个名为“Python Ticket Monitoring”的项目主目录,推测该项目使用Python语言开发,“Master”表示为主版本,可能包含核心代码与主要功能模块。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
<think>好的,用户想了解如何使用AutoX.js实现的方法或教程。首先,我需要整理已有的信息。根据提供的引用内容,有几个资源提到了基于AutoX.js脚本,特别是猫眼演唱会门购。引用[3]和[4]提到有最新的脚本和打包的APK,但用户可能需要具体的步骤和实现方法。 首先,我应该先介绍AutoX.js的基本环境配置,因为这是基础。用户需要安装AutoX.js并开启无障碍服务,这在引用[2]中提到的B站教程可能有帮助。然后,编写脚本的基本步骤包括界面元素的定位和操作,比如点击按钮、输入文本等,这些在自动化脚本中很常见。 接下来,流程需要分解成几个步骤,比如进入应用、处理预约页面、自动点击下单等。引用[3]提到自动点击预约页面的等待和下单,所以需要详细说明如何通过选择器定位元素,并添加点击事件。同时,需要考虑定时任务和循环检测,确保在开始时能够及时触发操作。 另外,性能优化和异常处理也是关键点,比如降低CPU占用、增加重试机制,这在引用[3]和[4]中可能涉及。用户可能需要知道如何处理页面加载延迟或元素未找到的情况,避免脚本失败。 生成相关问题部分,需要涵盖环境配置、定位元素的方法、定时任务、性能优化、与其他工具对比以及常见错误处理。这些问题能帮助用户更全面地理解和应用AutoX.js进行开发。 最后,确保回答结构清晰,分步骤说明,并引用提供的资料,比如提到参考B站教程和打包APK的准备工作。同时,提醒用户遵守平台规则,避免法律风险,这也是负责任的做法。</think>以下是为您整理的AutoX.js脚本实现方法及步骤: ### 一、AutoX.js实现原理 1. 基于Android系统的UI自动化操作,通过元素选择器定位目标控件 2. 使用定时任务监控时间节点[^3] 3. 通过坐标点击/控件点击实现自动下单[^4] 4. 加入异常处理机制提升成功率[^3] ### 二、实现步骤详解 #### 1. 环境准备 ```javascript // 启用无障碍服务 auto.waitFor(); // 设置屏幕分辨率适配 setScreenMetrics(1080, 2340); ``` #### 2. 应用启动与界面跳转 ```javascript // 启动猫眼APP app.launch("com.sankuai.movie"); // 等待主界面加载 sleep(3000); // 跳转演唱会页面 click(descContains("演唱会").findOne()); ``` #### 3. 核心逻辑 ```javascript function rushTicket() { // 定位购按钮 let buyBtn = textContains("立即购买").findOne(); // 循环点击直到成功 while (true) { if (buyBtn.clickable()) { buyBtn.click(); // 处理下单确认弹窗 handleConfirmDialog(); break; } sleep(100); } } ``` #### 4. 异常处理机制 ```javascript function errorRetry() { // 检测网络异常提示 if (text("网络异常").exists()) { back(); sleep(1000); rushTicket(); } // 处理售罄提示 if (text("已售罄").exists()) { toast("监控补机会"); setInterval(checkStock, 5000); } } ``` ### 三、关键优化点 1. 使用`selector()`精确匹配控件属性[^4] 2. 添加随机延迟避免被检测:`sleep(random(50,200))` 3. 多账号切换功能(需配合设备分身功能) 4. 部署定时任务实现预售监控: ```javascript // 设置开前30秒启动 setTimeout(rushTicket, getRemainTime() - 30000); ```
评论 161
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java_wucao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值