IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 京东自动抢购茅台脚本 -> 正文阅读

[开发工具]京东自动抢购茅台脚本

本文主要介绍如何实现在Android 手机上自动抢购茅台

1、AutoJS

??????? 一个支持无障碍服务的 Android 平台上的 JavaScript IDE。Autojs 主要是基于安卓系统的无障碍服务,实现自动化操控和监控手机信息处理。目前已升级至收费版,本文提供免费版(已停止更新)。AutoJS支持UI界面和打包,因此完全可以交自动化脚本封装成一个apk软件。

下载地址:链接: https://pan.baidu.com/s/1IxTqqSwiaHfe81lQ_01dtA 提取码: 9ssf

安装步骤:

(1) 下载以上链接中的AutoJS和打包插件到手机本地并安装;

(2) AutoJS支持在手机上直接写脚本,但是这里还是建议大家在电脑上写好脚本同步到手机上,电脑端的开发环境为VSCode,VSCode下载链接为https://code.visualstudio.com/

(3) 下载安装好VSCode后,打开选择左侧第四个按钮(Extensions),输入Chinese,安装中文语言包,安装后会提示重新打开VSCode,然后搜索Auto.js-VSCodeExt,作者是hyb1996

(4) 在电脑上打开VSCode,按住Ctrl+Shift+P,输入Auto.js: Start Server

(5) 打开 AutoJS App,点击左上角打开无障碍服务,开启悬浮窗;确保手机和电脑处于同一局域网下,点击连接电脑,输入电脑IP地址,能看到VSCode提示手机已连接

(6) 在VSCode中新建一个文件toast.sj,在文件中输入toastLog(app.versionCode);,按下F5执行,看到手机上出现版本提示说明环境已完全配置成功

?2、脚本抢购茅台

(1) 打开京东App,新建一个文件jd_mt.sj,输入以下代码,点击F5运行

// 打开App
function open_app(appName){
    var name = getPackageName(appName);
    if(name){
        toastLog("打开"+appName+"...");
        launch(name);
    }
    else{
        toastLog("App名称错误");
    }
    return name;
}

open_app("京东");

(2) 茅台预约,京东抢购茅台需要提前预约,目前预约时间是工作日上午10点到10点半之间,这里的逻辑是将京东茅台添加到收藏中,然后进入App后点击"我的",点击"商品收藏",点击"飞天茅台",点击"立即预约",下面是相关代码

// 等待View存在并延时点击
function wait_view_exists_click(viewName, delayTime, showMsg){
    while(true){
        if(className("android.view.View").desc(viewName).exists()){
            sleep(delayTime);
            toastLog("点击"+showMsg)
            className("android.view.View").desc(viewName).findOnce().click();
            break;
        }
    }
}

// 等待TextView存在并延时点击
function wait_textview_exists_click(textViewName, delayTime, showMsg){
    while(true){
        if(className("android.widget.TextView").text(textViewName).exists()){
            sleep(delayTime);
            toastLog("点击" + showMsg)
            let b = className("android.widget.TextView").text(textViewName).findOnce().bounds();
            click(b.centerX(),b.centerY());
            break;
        }
    }
}

// 等待TextView存在并延时点击, 如果满足条件退出循环
function wait_textview_exists_click_break(textViewName, delayTime, showMsg, textViewNameBreak, showMsgBreak){
    while(true){
        if(className("android.widget.TextView").text(textViewName).exists()){
            sleep(delayTime);
            toastLog("点击" + showMsg)
            let b = className("android.widget.TextView").text(textViewName).findOnce().bounds();
            click(b.centerX(),b.centerY());
            break;
        }
        else if(className("android.widget.TextView").text(textViewNameBreak).exists())
        {
            toastLog(showMsgBreak)
            break;
        }
    }
}

// 等待Button存在并点击
function wait_button_exists_click(buttonName, delayTime, showMsg){
    while(true){
        if(className("android.widget.Button").text(buttonName).exists()){
            sleep(delayTime);
            toastLog("点击" + showMsg)
            let b = className("android.widget.Button").text(buttonName).findOnce().bounds();
            click(b.centerX(),b.centerY());
            break;
        }
    }
}

// 京东抢购茅台预约
function jd_mt_yy(){
    var name = open_app("京东");
    waitForPackage(name);

    wait_view_exists_click("我的", 3000, "\"我的\"");
    wait_textview_exists_click("商品收藏", 3000, "\"商品收藏\"");
    wait_textview_exists_click("飞天 53% vol  500ml 贵州茅台酒 (带杯) ", 3000, "\"飞天茅台\"");
    wait_textview_exists_click_break("立即预约", 3000, "\"立即预约\"", "已预约", "预约成功");
    wait_button_exists_click("知道啦", 3000, "\"知道啦\"");

    toastLog("预约成功")
}

jd_mt_yy()

(3) 定时抢购

?????? 预约成功的基础上,抢购的程序如下:

// 京东抢购茅台预约
function jd_mt_qg(){
    wait_textview_exists_click("立即抢购", 0, "\"立即抢购\"");
    wait_button_exists_click("提交订单", 0, "\"提交订单\"");
}

????????抢购不太可能一次成功的,我们这里设置每天10点02分预约,12:00:00整时开抢

// 定时预约抢购
function timing_jd_mt(hour_yy, min_yy, sec_yy, hour_qg, min_qg, sec_qg){
    var yy_flag = 0;    //预约成功标志
    toastLog("执行京东抢购任务...");
    while(true){
        var nowDate = new Date();
        if(nowDate.getHours()==hour_yy && nowDate.getMinutes()==min_yy && nowDate.getSeconds()==sec_yy){
            toastLog("定时时间到, 开始预约...");
            jd_mt_yy();
            yy_flag = 1;
        }
        if(nowDate.getHours()>=hour_qg && nowDate.getMinutes()>=min_qg && nowDate.getSeconds()>=sec_qg &&yy_flag){
            toastLog("定时时间到, 开始抢购...");
            jd_mt_qg();
        }
    }
}

timing_jd_mt(10, 02, 00, 12, 00, 00);

?3、总结

????????本篇博客主要写了如何基于AutoJS编写京东自动抢购茅台脚本,下一篇将写如何将脚本打包成apk,获取完整代码及技术探讨可以加QQ群555209384或者关注微信公众号:程序Ai

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:51:09  更:2021-07-29 11:52:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/20 13:29:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码