autojs-识别验证码-联众打码




联众官网进不去了

新写了超级鹰打码

需要的可以看看:https://blog.csdn.net/tfnmdmx/article/details/123329446




本篇保姆级教程,包括账号注册,获取点数,上传图片获得结果,结果报错以及返回用户点数函数!因为我在这个路上摸索的很艰难,本来就很简单的事,也不知道是咋回事,莫名其妙的搞的很麻烦,所以写个记录,为后来的小伙伴铺路。


前言(废话)

之前四史答题时说过会搞这个验证码,当时因为只了解了联众打码,而联众打码的测试点数获取需要联系客服qq,于是一度劝退我这个社恐人士。

在之后我尝试了超级鹰打码,它只用扫码关注公众号就可以领取测试点数,于是我准备转战超级鹰,但是吧,超级鹰竟然没有autojs/js语言的demo,这让我这个小白怎么办,在改了两天java代码也没有改出来之后,我就又回到了联众的怀抱。

不就是qq联系吗,反正他也不认识我,冲了!于是硬着头皮联系了一下客服,不到一分钟就拿到了测试点数。


注:本文所用验证码是之前四史答题时的验证码截图。

一、注册账号

这里有个坑是,它开发者账号和普通账号注册页面一模一样,导致我在开发者注册页面徘徊好几次都没填,所以一直没法新增软件。。。
我不确定它是不是可以直接注册开发者账号,因为我是先注册了账号。

1.联众注册界面
2.填写信息,注册账号,实名认证
因为我已经注册过了,不太好截图,就是先注册个账号

注册完在个人中心,先看这里 ,如果不是作者vip就要继续注册开发者账户。

3.注册**开发者账户**!

4.注册完成后,就可以在个人中心看到
5.点击我的软件-增加软件-填写(有字数限制)
名称好像是6字以上,描述是10字?不太记得了,提交完还有审核,我提交了五遍才成功。orz 我的⬇,仅供参考
在这里插入图片描述
6.新增成功后,查看软件信息(以下两个需要保存,代码里需要用)
在这里插入图片描述
点击查看Secret,会有短信验证
在这里插入图片描述
软件信息建议截图保存
7.领取测试点数,点击右侧的qq交谈,会自动进入客服的聊天界面(应该需要qq已经在电脑上登录),发送自己的用户名,之后在个人中心查看剩余点数为50
在这里插入图片描述在这里插入图片描述

二、代码

建议先看一遍:
查看API文档
查看Demo/SDK

作为使用者,我在这里吐槽一下,这上面两个写的都不怎么样!对于使用者,说明不清晰,demo没有官方示例(超级鹰里超级全,对新手友好),文档里错误码章节也找不到(有知道在哪的大佬,求指路)。

下列接口、实例文件,均为第三方开发,因技术原因,联众识图平台未进行代码审查,亦不能确定代码的功能作用,请接入的开发者审查代码后调用。
——联众

1.上传图⽚信息同时获取结果

这个是联众提供的第三方demo,我也在csdn看到别的大佬写了。
不过他们的只返回了识别出的验证码结果,没有返回ID,如果需要报错就需要ID,所以注意添加的那一行代码

function getCode(username, password, img) {
    http.__okhttp__.setTimeout(3e4);
    var r = images.toBase64(img, format = "png"), i = device.release, c = device.model, s = device.buildId;
    try {
        var n = http.postJson("https://v2-api.jsdama.com/upload", {
            softwareId: 11111,//软件ID,修改为自己的
            softwareSecret: " ",//秘钥,修改为自己的
            username: username,//用户名,修改为自己的,我是在外传参
            password: password,//密码,修改为自己的,我是在外传参
            captchaData: r,//图⽚⽂件内容,base64后的数据,看上边r的赋值
            captchaType: 1001,//识别类型(整形),按需要修改
            captchaMinLength: 0,//可选参数,识别时需输⼊的最⼩⻓度。
            captchaMaxLength: 0,//可选参数,识别时最多输⼊的内容⻓度。
            workerTipsId: 0//可选参数,⼈⼯提示模板ID
        }, {
            headers: {
                "User-Agent": "Mozilla/5.0 (Linux; Android " + i + "; " + c + " Build/" + s + "; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 Mobile Safari/537.36",
            }
        });
    } catch (e) {
        return {
            code: "-1",
            msg: "网络链接超时...",
            data: {}
        };
    }
    var d = n.body.json(), p = d.code, m = d.message;
    if ("10079009" == p) return {
        code: p,
        msg: m,
        data: {}
    };
    if ("10142006" == p) return {
        code: p,
        msg: m,
        data: {}
    };
    if ("10142004" == p) return {
        code: p,
        msg: m,
        data: {}
    };
    if ("10142005" == p) return {
        code: p,
        msg: m,
        data: {}
    };
    if ("10079006" == p) return {
        code: p,
        msg: m,
        data: {}
    };
    if ("0" == p) {
        return {
            code: p,
            msg: m,
            data: {
                res: d.data.recognition,
                ID: d.data.captchaId//添加了ID,之后报错需要
            }
        };
    }
    return d;
}

响应数据:
{“ts”:1497289968,“code”:0,“message”:"",“data”:
{“captchaId”:“20170613:000000000000008273614”,“recognition”:“DDHLJ”}}

2.检查点数

代码如下(示例):

function getdianshu(username, password) {
    http.__okhttp__.setTimeout(3e4);
    try {
        var n = http.postJson("https://v2-api.jsdama.com/check-points", {
            "softwareId": ,//软件ID
            "softwareSecret":" ",//秘钥
            "username":username,	//用户名
            "password":password	//密码
        }
        );
    } catch (e) {
        return {
            code: "-1",
            msg: "网络链接超时...",
            data: {}
        };
    }
    var d = n.body.json();
    return d;
}

响应数据:
{“code”:0,“message”:"",“data”:{“userPoints”:10000, “availablePoints”:8000,
“lockPoints”:2000}

3. 报错

 function baocuo(username, password, ID) {
    http.__okhttp__.setTimeout(3e4);
    try {
        var n = http.postJson("https://v2-api.jsdama.com/report-error", {
            "softwareId":25212,//软件ID
            "softwareSecret":"yw6VTrAqJ5lHhJZPCGUh8CQvg9imK2kbmz9gEt66",//秘钥
            "username":username,
            "password":password,
            "captchaId":ID//:由 接⼝1 返回的 captchaId 识别ID

        }
        );
    } catch (e) {
        return {
            code: "-1",
            msg: "网络链接超时...",
            data: {}
        };
    }
    var d = n.body.json();
    return d;
}

响应数据:
{“code”:0,“message”:"",“data”:{“result”:true}}

4.主函数



username=" "  //记得写 用户名
password=" "	//记得写  密码

path= "/sdcard/aa/313.png"//我这个是读取的截图,一般是要截图,然后对截图进行处理
img=images.read(path)
sleep(1000)

log("识别结果返回:")
result=getCode(username, password, img)
log(result)
log("验证码:")
log(result.data.res)//验证码
log("ID:")
log(result.data.ID)//ID
sleep(1000)

log("用户点数返回:")
dianshu=getdianshu(username, password)
log(dianshu)
log("用户可用点数:")
log(dianshu.data.availablePoints)//可用点数

/*
if()//一定要有判断,比如输入后显示验证码错误,进行截图判断
{
    baocuo_result = baocuo(username, password, result.data.ID)
    if(baocuo_result.data.result == true){
        log("报错成功")
    }
    else{
        log("报错失败")
    }
}
*/

三、程序效果

悄悄说一下,上面这个识别是错误的,验证码应该是X9LG

不过因为我是读取截图做的识别,所以没加报错,识别正确率还行吧

总结

验证码识别挺实用的,这篇文章对你有帮助的话,点赞评论收藏关注支持一下啦

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tfnmdmx

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

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

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

打赏作者

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

抵扣说明:

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

余额充值