之前在介绍RPA+OCR项目经验的时候,有涉及到验证码的识别,所以此次为大家分享技术上验证码识别的解决方案。
验证码是在RPA流程自动化中经常碰到的问题,比如进行网页或者客户端登录的时候,或者提交数据查验都有可能碰到验证码。而验证码的类型也是各式各样(纯数字/英文数字/英数汉等),而且一般验证码上面都有干扰因素存在(干扰线,噪点,偏移等),所以 通常OCR 的识别效率并不是很理想,甚至真人用眼看的时候偶尔都会识别不出来(比如发票验真里面的验证码--中英汉连带颜色),因此对于复杂的验证码一般都会调用打码平台去进行验证,物美价廉效率高。
打码的原理很简单,首先把带有验证码的图片保存下来,然后发送给打码平台,平台那边会有真人去识别发送过去的图片,然后将结果返回回来。这也是所谓的众包,即真正的“人工”智能吧(好吧 ,开个玩笑
)。
大部分的打码平台调用方式类似,此次以“超级鹰”作为示例来学习如何用UiBot接入打码平台,进行验证码识别(超级鹰网址:http://www.chaojiying.com/ com/)
在超级鹰官网的开发文档中可以看到他们支持的接口语言,可以根据自己喜好的编程语言进行相应的二次开发(UiBot早期的按键精灵也是其中的标配语言之一)
下面以python 为例,打开里面的 chaojiying.py 文件,可以看到里面实现了Chaojiying_Client 类,该类有三个函数:
1:init __(self, username, password, soft_id )---构造函数
2:PostPic (self, im , codetype )---发送验证码图片且返回验证码内容
3:ReportError (self, im_id )---如果验证失败可发送错误,返还费用。
现在将以上代码封装成两个函数,方便在 UiBot 中使用。
def getInfo(User,PassWord,picPath,requestType)
def sendError(user2,Password2,pic_id)
(-------请记得先在超级鹰官网注册账号--------)
其中requestType 是验证码类型,不同的验证码需要选择不同的验证参数。
代码实例:
1:导入模块插件 而插件需要放入扩展包里面
(路径:D:\*\UiBotCreator\extend)
2:在源代码视图里面 Import vCodeV
3:对验证码进行截图 并把截图保存在一个路径里面
4:在源代码里面输入插件所需要的参数(1902:中英文数字)
超级鹰的 用户名 密码 截图路径 验证码类型参数
5:输出验证码识别的字符
这样整个验证码识别过程就基本结束了。
今天主要介绍了中英字符类识别的过程,下一次将为大家分享滑动类的验证码技术解决方案。
想尝试使用UiBot进行验证码识别的,可打开以下网址。
(UiBot下载网址:https://www.uibot.com.cn/down)
想获取验证码插件的,可以在公众号后台发送 验证码。
关注微信公众号:RPA领域先驱者
实时获取最新RPA+AI信息