广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么实现图形验证码识别
  • 547
分享到

Python怎么实现图形验证码识别

2023-07-05 04:07:30 547人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python怎么实现图形验证码识别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现图形验证码识别文章都会有所收获,下面我们一起来看看吧。环境使用python 3.9PyCha

这篇文章主要介绍了python怎么实现图形验证码识别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现图形验证码识别文章都会有所收获,下面我们一起来看看吧。

    环境使用

    图形验证码的识别

    我们首先识别最简单的一种验证码,即图形验证码。这种验证码最早出现,现在也很常见,一般由 4 位字母或者数字组成。例如,某某网站的注册页面有类似的验证码。

    一般来说,表单的最后一项就是图形验证码,我们必须完全正确输入图中的字符才可以完成注册和登录。

    1. 本节目标

    以某网站的验证码为例,讲解利用 OCR 技术识别图形验证码的方法。

    2. 准备工作

    识别图形验证码需要库 tesserocr。本文文末有安装教程

    3. 获取验证码

    为了便于我们的实验测试,我们先将验证码的图片保存到本地。

    打开开发工具,找到验证码元素。验证码元素是一张图片,它的 src 属性是 CheckCode.aspx。可以看到一个验证码,右键保存即可,将其命名为 yzm.jpg。

    Python怎么实现图形验证码识别

    这样我们就可以得到一张验证码图片,以供测试识别使用。

    4. 识别测试

    接下来新建一个项目,将验证码图片放到项目根目录下,用 tesserocr 库识别该验证码,代码如下所示:

    import tesserocrfrom PIL import Imageimage = Image.open('yzm.jpg')result = tesserocr.image_to_text(image)print(result)

    在这里我们新建了一个 Image 对象,调用了 tesserocr 的 image_to_text() 方法。传入该 Image 对象即可完成识别,实现过程非常简单,结果如下所示:JR42。是不是很神奇。

    5. 验证码处理

    接下来我们换一个验证码,将其命名为 code2.jpg

    Python怎么实现图形验证码识别

    重新运行上面的代码,输出FFKT。

    这次识别和实际结果有偏差,这是因为验证码内的多余线条干扰了图片的识别。

    对于这种情况,我们还需要做一下额外的处理,如转灰度、二值化等操作。我们可以利用 Image 对象的 convert() 方法参数传入 L,即可将图片转化为灰度图像,代码如下所示:

    image = image.convert('L')image = image.convert('1')image.show()

    我们还可以指定二值化的阈值。上面的方法采用的是默认阈值 127。不过我们不能直接转化原图,要将原图先转为灰度图像,然后再指定二值化阈值,代码如下所示:

    image = image.convert('L')threshold = 80table = []for i in range(256):    if i < threshold:        table.append(0)    else:        table.append(1)image = image.point(table, '1')image.show()

    运行之后就会得到我们想要的处理结果。而且我们发现原来验证码中的线条已经去除,整个验证码变得黑白分明。这时重新识别验证码,再次运行上面的代码就可以得到我们要的验证码。

    那么,针对一些有干扰的图片,我们做一些灰度和二值化处理,这会提高图片识别的正确率。

    tesserocr库安装

    在这里我和大家简单介绍一下,这个库的安装教程。

    1. tesseract软件的安装

    在win10下,安装tesseract可以进入该网址进行下载 https://digi.bib.uni-mannheim.de/tesseract/

    Python怎么实现图形验证码识别

    其中,文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本。例如可以选择下载tesseract-ocr-win64-setup-v5.3.0.20221214.exe。

    下载完成后,打开下载文件,其中可以勾选Additional language data(download)选项来安装OCR识别支持的语言包,以便OCR识别多国语言。(也可以在选项中只勾选chinese)

    2. 环境配置

    在系统变量里,修改path,添加你安装tesserocr的路径。在系统变量里,创建一个新的变量名为:TESSDATA_PREFIX,值为:D:\Program Files(X86)\Tesseract-OCR\tessdata(根据自己安装的tesserocr安装路径为准)。

    3. 安装tesseracr包

    - 尝试pip安装:

    pip install tesserocr

    - 如果不成功,则尝试通过.whl文件安装。

    TIP

    tesserocr也只是识别手段的一种,如果需要高精度的识别,可以尝试Tensorflow实现深度学习模型,通过训练模型来识别图形验证码。

    关于“Python怎么实现图形验证码识别”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python怎么实现图形验证码识别”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

    --结束END--

    本文标题: Python怎么实现图形验证码识别

    本文链接: https://www.lsjlt.com/news/349475.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Python怎么实现图形验证码识别
      这篇文章主要介绍了Python怎么实现图形验证码识别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现图形验证码识别文章都会有所收获,下面我们一起来看看吧。环境使用python 3.9pycha...
      99+
      2023-07-05
    • Python+Selenium+Pytesseract怎么实现图片验证码识别
      这篇文章给大家介绍Python+Selenium+Pytesseract怎么实现图片验证码识别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、selenium截取验证码import jsonfrom&nbs...
      99+
      2023-06-26
    • Python+Selenium+Pytesseract实现图片验证码识别
      目录一、selenium截取验证码二、安装识别环境pytesseract+Tesseract-OCR验证识别环境是否正常三、处理验证码图片图片处理识别一、selenium截取验证码 ...
      99+
      2022-11-12
    • Python+Pillow+Pytesseract怎么实现验证码识别
      这篇“Python+Pillow+Pytesseract怎么实现验证码识别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Py...
      99+
      2023-06-30
    • Python+Pillow+Pytesseract实现验证码识别
      目录一、环境配置二、验证码识别实例1实例2实例3昨天十行代码实现文字识别,感觉怎样,是不是很爽 今天咋们继续利用pillow和pytesseract来实现验证码的识别 一、环境配置 ...
      99+
      2022-11-12
    • 如何使用Python实现极验验证码识别验证码
      这篇“如何使用Python实现极验验证码识别验证码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Python实现极验...
      99+
      2023-07-05
    • PHP中怎么实现图形验证码
      这期内容当中小编将会给大家带来有关PHP中怎么实现图形验证码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体实现代码如下:<php  class rndnum{&nb...
      99+
      2023-06-17
    • vue实现图形验证码
      本文实例为大家分享了vue实现图形验证码的具体代码,供大家参考,具体内容如下 效果图: 或 或 或 代码: 验证码组件: src/common/sIdentify.vue ...
      99+
      2022-11-12
    • Python系列之图片验证码识别
      Python系列之图片验证码识别 引言 图片验证码已经成为现代网络应用中常见的一种身份验证形式。本文将介绍如何使用 Python 进行图片验证码的识别。我们将使用基于机器学习的方法,通过训练模型来自动...
      99+
      2023-09-07
      python 开发语言
    • python实现腾讯滑块验证码识别
      腾讯滑块验证码识别,识别凹槽的x轴位置,mock滑块的加速度。该项目公开API,提供识别和加速度模拟部分,第二部分模拟滑动进行识别返回数据请求 项目地址:https://github.com/zhaojunlike/...
      99+
      2022-06-02
      python 验证码识别 python 滑块验证码识别 python 腾讯验证码
    • Python验证码识别处理实例
      一、准备工作与代码实例 (1)安装PIL:下载后是一个exe,直接双击安装,它会自动安装到C:Python27Libsite-packages中去, (2)pytesser:下载解压后直接放C:Python...
      99+
      2022-06-04
      验证码 实例 Python
    • 非常简单的Python识别图片验证码实现过程
      很久之前,分享过一次Python代码实现验证码识别的办法。 当时采用的是pillow+pytesseract,优点是免费,较为易用。但其识别精度一般,若想要更高要求的验证码识别,初学...
      99+
      2022-11-12
    • python简单验证码识别的实现过程
      目录1. 环境准备1.1 安装pillow 和 pytesseract1.2 安装Tesseract-OCR.exe1.3 更改pytesseract.py的ocr路径2. 测试识别...
      99+
      2022-11-12
    • vue项目实现图形验证码
      本文实例为大家分享了vue项目实现图形验证码的具体代码,供大家参考,具体内容如下 效果预览:(项目要求清爽一点,所以没背景。但是下面的代码会把背景干扰写进去) 1.下载identi...
      99+
      2022-11-12
    • vue实现图形验证码登录
      本文实例为大家分享了vue实现图形验证码登录的具体代码,供大家参考,具体内容如下 1、效果图 2、在components下面新建文件identify.vue,内容: <t...
      99+
      2022-11-12
    • Python实现图片滑动式验证识别方法
      1 abstract 验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中。传统的字符型验证安全性已经名存实亡的情况下,各种新型的验证码如雨后春笋般涌现。目前最常见的一种形式就是...
      99+
      2022-06-04
      方法 图片 滑动式
    • Python免费验证码识别之ddddocr识别OCR自动库实现
      目录安装过程:完成之后,找个参考图片附ddddocr-验证码识别案例总结需要ocr识别,推荐一个Python免费的验证码识别-ddddocr 安装过程: 1、镜像安装:pip in...
      99+
      2022-11-13
    • python验证码识别的实例详解
      其实关于验证码识别涉及很多方面的内容,入手难度大,但是入手后,可拓展性又非常广泛,可玩性极强,成就感也很足,对这感兴趣的朋友们下面跟着小编一起来学习学习吧。 依赖 sudo apt-get instal...
      99+
      2022-06-04
      验证码 详解 实例
    • 如何用三行Python代码实现验证码识别
      这篇文章主要介绍了如何用三行Python代码实现验证码识别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用三行Python代码实现验证码识别文章都会有所收获,下面我们一起来看看吧。源码如下:调试:输出:关于...
      99+
      2023-06-04
    • python怎么通过pillow识别动态验证码
      这篇文章主要讲解了“python怎么通过pillow识别动态验证码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么通过pillow识别动态验证码”吧!生活中,我们在登录微博,邮...
      99+
      2023-06-21
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作