这小半年实在太忙,都没时间学习了,有点慌。
关于验证码的问题,以前搞过,今天抽时间将这个总结补上。
解决UI自动化过程中的图文验证码问题,过程大致分为两个步骤:
-
通过网页自动下载网页上指定的图片
-
识别图片上的文本内容
本文以“识别页面上指定图片的文本“为例。
以百度首页的 Baidu 为例。
环境准备
Python 3.6
Pytesseract
Tesseract-OCR
Pillow
1、安装 Pytesseract
使用命令:pip install pytesseract
2、安装 Tesseract-OCR.exe
下载地址 https://github.com/UB-Mannheim/tesseract/wiki#start-of-content
待下载完成后,双击.exe ,然后直接 next
在安装过程中,如果报错,点击 确定 就可以了
安装完成后,需要配置环境变量。
检查是否安装成功
cmd 输入 Tesseract -v
4、安装pillow
Python自带的图文简单处理模块,正常安装Python的时候会自动安装,故无需另外手动安装。
pip install pillow
代码
1、初始化浏览器和元素定位方式
1)初始化并放大浏览器
2)初始化元素定位方式:本文使用id选择器方式定位 (此处不讨论定位方式)
2、获取图片
1)页面全屏截图
2)截图转为Image对象
3)获取指定图片的大小和位置
4)裁剪图片
3、识别图片上的文字
然后运行后,得出结果
附:
其实,这种识别率不是很高,占比70% 左右,在没有更好方法的i情况下,可以考虑。
问题:
在运行过程中,出现过 tesseract is not installed or it’s not in your PATH
解决方法:
1、可以卸载 了Tesseract.exe 后重新进行安装在 Python的安装路径下。
2、打开pytesseract源码
查找 tesseract_cmd = ‘tesseract’
发现上面有一行注释 # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
由于 TESSERACT 所在目录不同,需要手动更改目录
此行修改为
tesseract_cmd = r’C:\Program Files\Tesseract-OCR\tesseract.exe’
以上两种方法都可以。
ibG9nLmNzZG4ubmV0L2xpdWppbmdxaXU=,size_16,color_FFFFFF,t_70)