教你python自动识别图文验证码的解决方案!

验证码识别解决方案
对于web应用程序来讲,处于安全性考虑,在登录的时候,都会设置验证码,验证码的类型种类繁多,有图片中辨别数字字母的,有点击图片中指定的文字的,也有算术计算结果的,再复杂一点就是滑动验证的。诸如此类的验证码,对我们的系统增加了安全性的保障,但是对于我们测试人员来讲,在自动化测试的过程中,无疑是一个棘手的问题。

1、web自动化验证码解决方案
一般在我们测试过程中,登录遇到上述的验证码的时候,有以下种解决方案:

第一种、让开发去掉验证码
第二种、设置一个万能的验证码
第三种、通过cookie绕过登录
第四种、自动识别技术识别验证码
2、自动识别技术识别验证码
前三种解决方案,想必大家都比较了解,本文重点阐述第四种解决方案,也就是验证码的自动识别,关于验证码识别这一块,可以通过两个方案来解决,

第一种是:OCR自动识别技术,
第二种是:通过第三方打码平台的接口来识别。
OCR识别技术
OCR中文名称光学识别, tesseract是一个有名的开源OCR识别框架,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,可以不断训练自己的识别库,使图像转换文本的能力不断增强。如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。那么接下来给大家介绍一下如何使用tessract来识别我们的验证码。

关于OCR自动识别这一块,需要大家安装Tesseract,并配置好环境,步骤如下
1)、安装tesseract

适用于Tesseract 3.05-02和Tesseract 4.00-beta的

Windows安装程序下载地址:https://github.com/UB-Mannheim/tesseract/wik。

2)、加入培训数据

tesseract 默认只能识别英文,如果您想要识别其他语言,则需要下载相应的培训数据

下载地址:https://github.com/tesseract-ocr/tesseract/wiki/Data-Files,

下图为中文数据包

我们只做中文,暂时下载一个中文的文字训练数据就可以 ,然后将.traineddata文件复制到安装之后的’tessdata’目录中。C:\OCR\Tesseract-OCR\tessdata

3)、配置环境变量

要从任何位置访问tesseract-OCR,您可能必须将tesseract-OCR二进制文件所在的目录添加到Path变量中C:\OCR\Tesseract-OCR。

安装后tesseract之后 ,并不能直接在python中使用,我们要想在python中使用,需要安装pytesseract模块我们可以通过 pip 安装
pip install pytesseract
python中识别验证码图片内容
安装好后。找一张验证码图片,如下图(命名为test.jpg),放在当前python文件同级目录下面,

使用 PIL中的Image中的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中使用cv2库可以实现自动识别验证码的功能。cv2是一个强大的图像处理库,它提供了一系列功能来处理和分析图像。 在使用cv2自动识别验证码时,可以通过以下步骤来实现: 1. 首先,我们需要读取验证码的图像文件。使用cv2的imread函数可以读取图像文件,并将其存储为一个numpy数组。 2. 接下来,我们需要对图像进行预处理,以便提高验证码识别的准确性。常用的预处理方法包括灰度化、二值化、去噪等。使用cv2的cvtColor函数可以将图像转为灰度图像,使用cv2的threshold函数可以对灰度图像进行二值化处理,使用cv2的morphologyEx函数可以进行图像去噪操作。 3. 在进行图像处理后,我们可以使用cv2的findContours函数来查找图像中的轮廓。验证码通常包含一些数字或字母,通过查找轮廓可以将这些字符分离出来。 4. 然后,我们可以通过训练机器学习来识别验证码字符。常用的模包括支持向量机(SVM)和卷积神经网络(CNN)。可以使用cv2的ml模块来训练和使用机器学习。 5. 最后,我们可以使用训练好的模来对待识别的验证码进行预测。使用cv2的predict函数可以对验证码字符进行预测,从而实现验证码自动识别。 综上所述,通过使用cv2库,我们可以方便地进行验证码自动识别。这个过程包括图像读取、预处理、轮廓提取、机器学习训练和预测等步骤。使用cv2的图像处理和机器学习功能,我们可以实现高效、准确的验证码识别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值