用uipath自带的ocr读验证码不是很准确,选择调用python读验证码,需要导入ddddocr(3.8以下版本支持ddddocr)
用uipath程序将验证码图片保存到本地(也可以直接用python处理图片,保存到本地比较简单)
网上说uipath只能调用python3.8以下版本,否则可能报错(uipath新版本可能会解决这个问题),所以我用了个3.6.3版本(也可以把python封装成exe,然后uipath直接调用exe来执行,如果封装ddddocr,部署环境需要.net环境,因为ddddorc依赖.net会直接调用C++底层代码,所以需要安装VC_redist.x64.exe,而且只能用文件形式封装,直接封装成一个exe不行,被坑了好久才查到)
uipath调用python步骤:python作用域→加载python脚本→调用python方法→获取python对象
python代码:
import ddddocr
def getdetection():ocr = ddddocr.DdddOcr(show_ad=False)img="../img/GenerateCaptchaCode.png"with open(img, 'rb') as f:image = f.read()res = ocr.classification(image)return resif __name__ == "__main__":c = getdetection()print(c)
python读验证码也可能失败,用死循环或循环N次的方法,反复读直到验证成功。