利用云识别过简单验证码实例(源代码分享)
Posted 3分钟学堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用云识别过简单验证码实例(源代码分享)相关的知识,希望对你有一定的参考价值。
在之前已经分享过一篇文章《》,利用这个源码我们做一个过简单的验证码实例。
先来看看验证码的形式:
对于这个验证码,我们分析一下,
口令文字有5个
验证文字有10个
文字字形工整识别准确率高
验证文字排版整齐有规律2行5列,易于根据序号获取坐标。
我们说一下这个验证码的原理
把口令文字和验证文字截图上传给百度云识别
识别出内容15个字
前5个字是口令文字,后10个字是验证文字
把10个验证文字对应的坐标用抓抓工具获取到,存入数组里面,对应编号分别是1-10
提取口令文字的第一个字,在10个验证文字里面查找,获取字所在位置(文字的序号),然后找到数组对应编号的坐标。最后点击坐标,完成第一个字的验证。
以此类推完成剩下4个字的验证,最终完成整个验证码。
代码中的一些参数要根据你自己实际情况修改,不要无脑套用,本期文章主要是给大家提供一个免费的“打码”方式。
源代码如下:
Dim t=TickCount()
Dim 路径="/sdcard/pictures/baidu.png"
SnapShot(路径,57,868,667,1182)
Dim api="xxxxxxx" //你自己的api
Dim Secret="xxxxxxxxx" //你自己的Secret
Dim token=url.get("https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id="&api&"&client_secret="&secret)
TracePrint token
dim mytoken=Encode.JsonToTable(token)
TracePrint mytoken["access_token"]
Import "shanhai.lua"
Dim base64=ShanHai.ReadFileBase(路径)
Dim 图片=ShanHai.CharToUrl(base64)
Dim post内容="access_token="&mytoken["access_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内容)
TracePrint myjson
myjson = Encode.JsonToTable(myjson)
TracePrint UBOUND(myjson["words_result"])+1&"行文字"
Dim ret
For i = 1 To UBOUND(myjson["words_result"])+1
ret=ret&myjson["words_result"][i]["words"]
Next
TracePrint ret
TracePrint TickCount()-t
traceprint ShanHai.type(ret)
TracePrint utf8.len(ret)
Dim 口令文字=utf8.mid(ret,1,5)
TracePrint 口令文字
Dim 验证文字=utf8.mid(ret,6,10)
Dim x,y
Dim arr=array({90,1034},{224,1031},{355,1031},{496,1035},{629,1035},{91,1139},{225,1141},{359,1138},{490,1135},{628,1136})
//每个{}内的是坐标,一共10个坐标
For i=1 to 5
x = UTF8.StrGetAt(口令文字, i)
y = UTF8.InStr(1, 验证文字, x)
TracePrint arr[y][1],arr[y][2] //使用的时候用tap
Delay 1000
Next
以上是关于利用云识别过简单验证码实例(源代码分享)的主要内容,如果未能解决你的问题,请参考以下文章