IE 验证码图片抓取优化方案

此问题由当前版本 v5.0.1 所限制、后期我们也会推出控件的方式来解决此问题;在没有升级包或者新版本推出的情况下可使用下述方案来解决验证码抓取图片的准确性!

  • 现状
    当前抓取验证码大家使用的控件都是 "图片拾取" 控件来抓取屏幕指定位置,指定大小的地方。如下图
    IE 验证码图片抓取优化方案

  • 问题
    可移植性较差,因为是指定了屏幕的固定位置,固定大小
    准确性较弱,因为图片抓取后基本上是送给 OCR 进行识别,但在框大小的时候容易有边框的干扰,会降低识别准确率

  • 优化方案
    使用控件来拾取;
    1、指浏览器的验证码控件;
    2、根据控件来得到控件所在屏幕的 x,y,w,h (x 坐标、y 坐标、宽、高)
    3、再根据上面返回的 x,y,w,h 来进行抓取

  • 优化步骤
    1、更新文件 iie.py 位置存放在 iS-RP\Aplugin\Com.Isearch.Func.Python\Lib\ubpa\ 下面iie.py
    2、自定义一个函数

import ubpa import iie as iie
def get_element_rect(win_title=None,title=None,url=None,selector=None):
	return iie.get_element_rect(win_title,title,url,selector)
  • 具体操作(浙商银行 )
    1、使用 "浏览器"-“鼠标点击” 控件 来拾取验证码的元素,在代码区得到元素的信息
iie.do_mouse_click(win_title=r"浙商银行个人网上银行欢迎您! - Internet  Explorer",title=r"",url="https://perbank.czbank.com/PERBANK/logon.jsp",selector="#dynamicPwdPer",waitfor=10)

2、自定义函数 get_czbank_dcode_img ()
将上面鼠标点击得到的属性移到自定义函数中

def get_czbank_dcode_img():
  return get_element_rect(win_title=r"浙商银行个人网上银行欢迎您! - Internet Explorer",title=r"",url="https://perbank.czbank.com/PERBANK/logon.jsp",selector="#dynamicPwdPer")

3、删除第一步”鼠标点击 " 操作
4、添加”自定义函数控件“ 选择 get_czbank_dcode_img , 输出值为 x,y,w,h
5、添加”图片拾取 " 控件 拾取此元素页面的任何一个地方即可
如下图所示:

IE 验证码图片抓取优化方案
——————————————————————分隔线——————————————————————
IE 验证码图片抓取优化方案