备注 | 修改日期 | 修改人 | |
格式调整 | 2024-05-06 15:16:35[当前版本] | 周杨 | |
格式调整 | 2024-05-06 15:16:03 | 周杨 | |
格式调整 | 2024-05-06 15:14:54 | 周杨 | |
格式调整 | 2024-05-06 15:02:27 | 周杨 | |
UIBOT在识别登录验证码一般调用的MageAI接口,免费额度用完后目前无法续费(除非升级到企业用户),可以利用第三方平台进行识别,比如超级鹰(百度高精度OCR费用比较高,280元 1W次,12个月有效),以下就是利用官方python的demo代码(https://www.chaojiying.com/api-14.html)略加改造即可在RPA中调用。
以下是官方的python代码,仅保留函数部分,比如保存为webtools.py:
import requests from bs4 import BeautifulSoup from hashlib import md5 class Chaojiying_Client(object): def __init__(self, username, password, soft_id): self.username = username password = password.encode('utf8') self.password = md5(password).hexdigest() self.soft_id = soft_id self.base_params = { 'user': self.username, 'pass2': self.password, 'softid': self.soft_id, } self.headers = { 'Connection': 'Keep-Alive', 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)', } def PostPic(self, im, codetype): """ im: 图片字节 codetype: 题目类型 参考 http://www.chaojiying.com/price.html """ params = { 'codetype': codetype, } params.update(self.base_params) files = {'userfile': ('ccc.jpg', im)} r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers) return r.json() def PostPic_base64(self, base64_str, codetype): """ im: 图片字节 codetype: 题目类型 参考 http://www.chaojiying.com/price.html """ params = { 'codetype': codetype, 'file_base64':base64_str } params.update(self.base_params) r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, headers=self.headers) return r.json() def ReportError(self, im_id): """ im_id:报错题目的图片ID """ params = { 'id': im_id, } params.update(self.base_params) r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers) return r.json()
然后在webtools.py文档尾部添加一个函数,get_verification_code,如下:
def get_verification_code(pic_path,code_type): chaojiying = ('超级鹰用户名', '超级鹰用户名的密码', '软件ID') #用户中心>>软件ID 生成一个替换 96001 im = open(pic_path, 'rb').read() #本地图片文件路径 来替换 a.jpg 有时WIN系统须要// return chaojiying.PostPic(im, code_type)['pic_str'] # chaojiying.PostPic(im, code_type)实际返回值为一个json字符串: #{'err_no': 0, 'err_str': 'OK', 'pic_id': '1249811351827960001', 'pic_str': '3548', 'md5': 'c5de07ba71772ed32ec7fed559d2b8df'}
将用户名、密码、软件ID填上并保存。
(1)将webtools.py复制到RPA应用代码目录下的“extend\python”文件夹中(比如我的应用路径为:D:\UiBot\Projects\RPA\extend\python)
(2)建立“webtools.lib”文件夹,文件夹的名字为:py文件名+.lib
(3)将python调用的第三方库bs4文件夹复制到webtools.lib文件夹中
(4)在RPA流程块中调用
Import webTools //用法:webTools.get_verification_code(pic_path,code_type),pic_path为图片路径,字符串类型,code_type为验证码类型,整数类型 //验证码类型详见:https://www.chaojiying.com/price.html Dim pic_path pic_path = 'D:\\UIBOT\\Projects\\RPA\\tmp\\verify.png' //界面操作→界面元素→元素截图中存放验证码图片的路径 sText = webTools.get_verification_code(pic_path,1004) //此处调用的“1~4位英文数字”类型
以上代码已在实际应用得到验证。