通过第三方打码平台实现验证码识别
https://help.aliyun.com/document_detail/454664.html?spm=a2c4g.750001.0.i2
本案例主要展示如何实现通过阿里云RPA工具调用第三方打码平台,解决验证码问题。
案例一
首先打开阿里云RPA控制台登录界面,然后通过连续输入几次账号密码错误让图像英文数字验证码显示出来
使用捕捉控件捕获账号密码输入框、验证码输入框、图像验证码、登录按钮,以及控制台登录成功后的首页菜单控件。
编码模式下,代码示例如下:
```from rpa.core import
from rpa.utils import
import rpa4 as rpa # 使用V4引擎
import requests
from hashlib import md5
def start():
# 验证码截图存放路径
screenshot_path = r'C:\Users\用户\Desktop\验证码.png'
page = rpa.app.chrome.catch('阿里云RPA', mode='title', pattern='contain', timeout=10)
# 首次登录失败,可以最多循环执行10次
for i in range(10):
page.input_text('输入账号','123', simulate=True)
page.input_text('输入密码','123', simulate=True)
bool1 = page.wait_loaded('验证码截图', timeout=3)
if bool1:
# 验证码截图
page.screenshot('验证码截图',screenshot_path)
# 识别验证码
dis_code = OCR_recognition(screenshot_path)
# 输入验证码
page.input_text('输入验证码',dis_code, simulate=True)
page.click('点击登录')
# 根据控制台首页的控件来判断是否已成功登录
bool2 = page.wait_loaded('控制台首页', timeout=3)
if bool2:
break
def OCR_recognition(screenshot_path):
'''
调用超级鹰OCR接口识别验证码
'''
captcha_user = '超级鹰用户名'
captcha_pwd = '超级鹰用户名的密码'
captcha_soft = '96001' # 用户中心>>软件ID 生成一个替换 96001
captcha_cjy = Chaojiying_Client(captcha_user, captcha_pwd, captcha_soft)
im = open(screenshot_path, 'rb').read()
dis_result = captcha_cjy.PostPic(im, 1902) # 1902 验证码类型
dis_code = dis_result['pic_str']
print(dis_result)
return dis_code
```
RPA 本身并没有提供专门的验证码识别组件,因此您需要使用第三方平台或自定义 Python 脚本来处理验证码。
以下是一些建议:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。