当前位置: 首页 > article >正文

自动化脚本无法处理验证码?Python图片识别库Tesseract实战

前言:

在Ui测试的时候,有时我们会遇到”元素以图片的形式展示内容”(最经典的案例使验证码).这时传统的文档解析方案就失效了.
但是,Python中你可以轻易的使用ocr(光学字符识别)技术.对图片元素中的文字进行提取.从而解决技术难题.具体需要以下3步:

①安装Tesseract-ocr服务

②安装pytesseract-python驱动库

③识别图片

1.关于Tesseract

①Tesseract是一款由Google赞助的开源OCR。

②Tesseract 已经有 30 年历史,开始它是惠普实验室的一款专利软件,然后在 2005 年开源,自 2006 年后由 Google 赞助进行后续的开发和维护。

③在 1995 年 Tesseract 曾是世界前三的 OCR 引擎,而在现在的免费 OCR 引擎中,其识别精度也仍然是出类拔萃的。因为其免费与较好的效果,许多的个人开发者以及一些较小的团队在使用着 Tesseract ,诸如验证码识别、车牌号识别等应用中,不难见到 Tesseract 的身影。

④Tesseract(/‘tesərækt/) 这个词的意思的本意是”超立方体”.不过这里用到的,是一款以其命名的开源 OCR(Optical Character Recognition, 光学字符识别) 软件。

*所谓 OCR 是图像识别领域中的一个子领域,该领域专注于对图片中的文字信息进行识别并转换成能被常规文本编辑器编辑的文本。

安装:


1.安装Tesseract.exe

安装过程中唯一要注意的是:
在勾选组件的时候勾选中文扩展

之后一路点击next即可

配置环境变量:
1.需要在path里配置
2.需要新建一个系统变量 TESSDATA_PREFIX

免费领取学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:mashang-zz

检查tesseract服务是否安装成功
tesseract -v

2.关于pytesseract

pytesseract库为我们提供了调用Tesseract的API,即只要系统中有Tesseract命令.就可以用python代码来驱动识别

安装python的api库
想要使用python去调用pytesseract,就需要安装pytesseract库。安装命令如下:
pip install pytesseract

*已知bug:库源代码路径硬编码
安装完成后,还需要进行一步设置。由于pytesseract库的代码里调用Tesseract服务的路径写的有点问题(windows环境),所以这里手动修改pytesseract.py


打开原代码,修改这里的调用路径

3.在python代码中调试

①准备好一张用于识别的图片(如下)


②编写代码(如图)

效果如图:


可以看到,图片中的文字已经被转化为Python字符串变量了 

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。


http://www.kler.cn/news/340533.html

相关文章:

  • Linux 基本系统命令及其使用详解手册(六)
  • 缓存系统的三大挑战:缓存击穿、缓存穿透和缓存雪崩
  • 【AI知识点】批归一化(Batch Normalization)
  • 第33次CCF计算机软件能力认证【T1~T3】:词频统计、相似度计算、化学方程式配平
  • Java GC 分类,8和9使用的哪种?
  • Java如何查看变量的数据类型
  • 解决触摸屏屏幕乱动的问题:E: 无法定位软件包 libinput
  • 高效开发,低代码平台如何助力构建内部工具
  • Unity WebGL使用nginx作反向代理处理跨域,一些跨域的错误处理(添加了反向代理的配置依旧不能跨域)
  • ROS C++ : 控制 rosbag 包的录制与停止
  • 在 Java 中,“对象的创建”与“对象的加载”有什么不一样
  • 网络层协议 --- IP
  • imageJ 将多图中的同一条划线数据用曲线展示
  • Qt 中的 QChartView
  • 微信小程序-npm支持-如何使用npm包
  • 2023 CCPC哈尔滨 报告
  • java内存控制
  • QT 10.8
  • 大模型客服的未来发展趋势
  • ISO IEC 18004 2015 PDF 文字版下载