按键精灵辅助工具「图灵打码过验证」按顺序点击图片上的文字

讲两个知识点:

①对接图灵打码平台

②对键值对的顺序提取

打码平台的原理都差不多,脚本把图片上传给平台,平台处理完以后把结果返回给脚本。

一、讲一下图灵打码的对接,为了方便用户使用,打码平台一般还会封装成各个语言的插件。

用户调用插件,填上参数都不需要自己在写post数据对接,就可以完成打码验证,非常的方便。

看一下图灵平台给得安卓按键的例子:

Import "Cjson.lua"
Import "tuling.lua"
Import "ShanHai.lua"


Dim json, table,Result
//你的帐号
Dim username="你的帐号"
//你的密码
Dim password="你的密码"
//选用的模型ID
Dim ID="选用的模型ID"




//通过屏幕截图的图片进行识别(默认):
SnapShot "/sdcard/yzm.jpg", 222, 274, 530, 589
Dim filepath = GetSdcardDir() & "/yzm.jpg"
//也可以直接指定本地图片路径进行识别:
//Dim filepath = "/storage/emulated/0/Pictures/1.jpg"


If Dir.Exist(filepath) Then
TracePrint "存在"
Else
TracePrint "不存在"
End If


TracePrint filepath


json = tuling.tuling_SendVerCode(username, password, filepath, id)
TracePrint json

代码中填上账号、密码、图片截图地址、项目id就可以使用了,需要注意截图部分的路径要统一。


二、对键值对的顺序提取

按理说键值对的提取没啥可讲的了,但是这次键值对还挺有难度的,我感觉新手朋友提取会很费劲。

先来看例子:

这是按顺序点击图片文字的验证,通常对接平台后的返回值是几个坐标值,把坐标提取出来逐个点击就可以了。

但是通过图灵打码得到的返回值是这样的:

{"全": {"顺序": 1, "X坐标值": 97.0, "Y坐标值": 261.5}, "国": {"顺序": 2, "X坐标值": 57.5, "Y坐标值": 95.0}, "劳": {"顺序": 3, "X坐标值": 254.5, "Y坐标值": 235.5}, "动": {"顺序": 4, "X坐标值": 41.5, "Y坐标值": 159.5}, "模": {"顺序": 5, "X坐标值": 122.0, "Y坐标值": 37.5}, "范": {"顺序": 6, "X坐标值": 237.0, "Y坐标值": 95.5}}

第一眼看上去,这键值对提取不是简单吗?

按顺序把每个字的坐标提取就行了,但是遇到了几个问题?

①怎么知道返回结果中都有哪些汉字

答:遍历所有键值对

②遍历键值对的返回结果是无序的,怎么排序

答:输出“顺序”的键值,也就是序号

③怎么知道有多少个“序号”

答:遍历的时候,用一个计次变量记录,每次遍历变量自增+1,原本我是想用len()命令获取数组个数一样,但是发现不行。

在写这个脚本的时候,脑子里就想这几个问题怎么解决,然后就有了下面的代码:

Dim arr={"全": {"顺序": 1, "X坐标值": 97.0, "Y坐标值": 261.5}, "国": {"顺序": 2, "X坐标值": 57.5, "Y坐标值": 95.0}, "劳": {"顺序": 3, "X坐标值": 254.5, "Y坐标值": 235.5}, "动": {"顺序": 4, "X坐标值": 41.5, "Y坐标值": 159.5}, "模": {"顺序": 5, "X坐标值": 122.0, "Y坐标值": 37.5}, "范": {"顺序": 6, "X坐标值": 237.0, "Y坐标值": 95.5}}
Dim n=0
For Each k , v In arr
// TracePrint k
n=n+1
Next
TracePrint "字的数量:",n


For i = 1 To n
For Each k , v In arr
If arr[k]["顺序"] = i Then
TracePrint arr[k]["X坐标值"],arr[k]["Y坐标值"]
End If
Next
Next

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值