干货丨使用RPA进行验证码识别
验证码
验证码,是RPA流程自动化中经常碰到的问题。比如进行网页或者客户端登录的时候,或者提交数据查验都有可能碰到验证码。
而验证码的类型也是各式各样(纯数字、英文数字、英数汉等),且一般验证码上面都有干扰因素存在(干扰线、噪点、偏移等)。
通常OCR的识别效率并不是很理想,甚至真人用眼看的时候偶尔都会识别不出来(比如发票验真里面的验证码,中英汉连带颜色),因此对于复杂的验证码一般都会调用打码平台去进行验证,物美价廉效率高。
打码的原理很简单,首先把带有验证码的图片保存下来,然后发送给打码平台,平台那边会有真人去识别发送过去的图片,然后将结果返回回来。这也是所谓的众包,即真正的“人工”智能(好吧 ,开个玩笑)。
大部分的打码平台调用方式类似,此次以“超级鹰”作为示例来学习如何用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、输出验证码识别的字符
这样整个验证码识别过程就基本结束了。
今天主要介绍了中英字符类识别的过程,下一次将为大家分享滑动类的验证码技术解决方案。
END
UiBot
RPA专家
人机搭配,效率翻倍
领取UiBot验证码识别机器人!