• 爬虫-识别图形验证码-tesserocr


    引入:

      在学习爬虫的过程中,需要解决识别图形验证码的这一难题,网上推荐的方法都是通过tesserocr模块来实现,下面就是安装步骤以及过程中遇到的问题,记录一下。

    介绍:

    tesserocr 是 Python 的一个 OCR 识别库 ,但其实是对 tesseract 做的一 层 Python API 封装,所以它的核心是 tesseract。 因此,在安装 tesserocr 之前,我们需要先安装 tesseract 。例如:对于下图的验证码,我们可以通过 OCR 技术将其转换成电子文本,然后爬虫将识别的结果提交给服务器,便可以达到自动识别验证码的过程。

    我的环境:

    OS:win10

    python:3.6.5

    相关链接

    tesserocr GitHub: https://github.com/sirfz/tesserocr

    tesserocr PyPI: https://pypi.python.org/pypi/tesserocr

    tesseract 下载地址: http://digi.bib.uni-mannheim.de/tesseract

    tesseract GitHub: https://github.com/tesseract-ocr/tesseract

    tesseract 语言包: http://github.com/tesseract-ocr/tessdata

    tesseract 文档: https://github.com/tesseract-ocr/tesseract/wiki/Documentation

    安装

    在 Windows 下,首先需要下载 tesseract,它为 tesserocr 提供了支持。

    进入下载页面,可以看到有各种 .exe 文件的下载列表,这里可以选择下载 3.0 版本 。 如下图所示为 3.05 版本 。

     

    其中文件名中带有 dev 的为开发版本,不带 dev 的为稳定版本,可以选择下载不带 dev 的版本, 例如可以选择下载 tesseract-ocr-setup-3 .05.01.exe。
    
    下载完成后双击运行,安装程序。需要注意的是,需要句选 Additional language data(download)选项来安装 OCR 识别支持的语言包,这样 OCR 便可以识别多国语言 

    给tesseract配置环境变量:

    (1)将tesseract安装路径添加到path环境变量中

    (2)将tesseract的语言包添加到环境变量中,在环境变量中新建一个系统变量,变量名称为TESSDATA_PREFIX,tessdata是放置语言包的文件夹,一般在你安装tesseract的目录下,tesseract的安装目录就是tessdata的父目录,把TESSDATA_PREFIX的值设置为它即可

    接下来 , 再安装 tesserocr :

    pip install tesserocr pillow

    pip安装tesserocr时出错:

    在命令行中输入:pip3 install tesserocr pillow ,一直出现error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools错误。

    解决办法:

    用.whl文件下载tesserocr库,就不会出现这个问题,下载地址:

    https://github.com/simonflueckiger/tesserocr-windows_build/releases

    我下载的是tesserocr-2.4.0-cp36-cp36m-win_amd64.whl,然后在命令行中输入:

    pip install tesserocr-2.4.0-cp36-cp36m-win_amd64.whl

    安装成功,问题解决

     

    验证安装

    测试样例:

    图片下载:http://images.cnblogs.com/cnblogs_com/Jimc/1316973/o_image.png

    (1)用 tesseract 命令测试:

    tesseract test.png stdout -l eng 

     运行结果如下:

     (2)利用 Python 代码测试:

    Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tesserocr
    >>> from PIL import Image
    >>> image = Image.open(r'C:UsersTianl	est.png')
    >>> result = tesserocr.image_to_text(image)
    >>> print(result)
    PythonWebSpider
    
    >>>

    另外,还可以直接调用 tesserocr 模块的 file_to_text() 方法,可以达到同样的效果:

    Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tesserocr
    >>> print(tesserocr.file_to_text(r'C:UsersTianl	est.png'))
    PythonWebSpider
    
    >>>

    如果成功输出结果,则证明 tesseract 和 tesserocr 都已经安装成功,以上是安装以及简单使用。

     pycharm中安装导入tesserocr

    直接把上面通过pip安装好的文件夹拷贝到pycharm创建的项目的site-packages目录中即可使用

  • 相关阅读:
    自定义标签——带属性的标签
    自定义标签——第一个自定义标签
    实例练习----电影天堂抓取下载链接
    自定义标签异常错误汇总
    JSp动作指令
    ASP.NET MVC下使用文件上传和IIS7下的默认设置限制了上传大小的方法
    ::before和::after 常见的用法
    .net平台性能很不错的轻型ORM类Dapper
    jQuery插件之ajaxFileUpload
    SSE:服务器发送事件,使用长链接进行通讯 基础学习
  • 原文地址:https://www.cnblogs.com/tianleblog/p/11652507.html
Copyright © 2020-2023  润新知