大家好,我是公众号3分钟学堂的郭立员~
今天在群里看到有人问怎么用脚本识别这个游戏验证,下图为我的效果图:
这个验证需要识别两部分,一是顶部的验证文字,二是每个按钮上面的文字。
对于大量文字的中文识别按键本身没啥太好的识别方式,所以要依靠第三方,我选择用百度云识别。
脚本的思路有五步:
①获取每个按钮的坐标存入数组
②分别识别两部分的文字,第一部分是4个字,第二部分是9个字
③逐个遍历4个字在9个字中的位置,如我们例子中:
悄(3)锦(2)邦(6)番(9)
④把这些位置的数字当做第一步中按钮坐标的数组下标,就可以知道这4个字的位置了。
⑤按照坐标逐个按钮点击。
具体代码如下:
Import "shanhai.lua"
Dim token="填写你自己的百度token"
Dim points={{169,434},{276,439},{386,438},{158,538},{261,542},{391,530},{184,616},{285,617},{381,617},{327,706}}
Dim path="/sdcard/pictures/abc.png"
snapshot(path,241,270,336,313)
dim str1= baiduocr(token, path)
snapshot(path,119,409,430,671)
dim str2= baiduocr(token, path)
TracePrint str1,str2
For i = 1 To utf8.Len(str1)
TracePrint utf8.InStr(1,str2,utf8.mid(str1,i,1))
touch points[UTF8.InStr(1, str2, UTF8.Mid(str1, i, 1))][1], points[UTF8.InStr(1, str2, UTF8.Mid(str1, i, 1))][2],200
Delay 1000
Next
Tap points[10][1],points[10][2]
Function baiduocr(token, path)
Import "shanhai.lua"
Dim base64=ShanHai.ReadFileBase(path)
Dim 图片=shanhai.CharToUrl(base64)
Dim post内容="access_token="&token&"&Content-Type=application/x-www-form-urlencoded&image="&图片&"&detect_direction=true"
Dim myjson=url.post("https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic",post内容)
Dim table=encode.JsonToTable(myjson)
Dim ret_arr()
For i = 0 To UBOUND(table["words_result"])
ret_arr(i)=table["words_result"][i+1]["words"]
Next
baiduocr=join(ret_arr,"")
End Function
好了内容就这些,觉得还行帮忙给文章点个赞。
=正文完=