Python图像识别-打码访问

Python的强大,在于它有非常多的第三方库。对于验证码识别,Python也已经有了现成的库来供我们使用了。开源的OCR库pytesseract配合tesseract,可以用来将图片中的文字转化为文本。

不过这种方式我们在爬虫中用的并不多。因为现在大部分的验证码都加上了干扰的纹理,已经很少能用单机版的图片识别方式来识别了。所以我们这里仅仅使用简单地图片来进行介绍。如果有一天你的运气足够好,遇到了非常工整的验证码,那么你可以使用这个办法来试一试。

安装 tesseract

(1) Windows

请在这里下载安装包:https://github.com/tesseract-ocr/tesseract/wiki/Downloads

在3rd party Windows exe’s/installer下面可以找到exe安装包。

(2) Mac

使用homebrew安装:

brew install tesseract

(3) Linux

使用apt-get安装:

sudo apt-get install tesseract-orc

更多的安装帮助信息,可以参阅:https://github.com/tesseract-ocr/tesseract/wiki

安装 Python库

要使用tesseract来做图像识别,我们还需要安装两个库:

pip install Pillow
pip install pytesseract

tesseract的使用

tesseract的使用非常简单,流程如下:

  • 导入相关的第三方库
  • 打开图片
  • 识别
  • 我们可以通过以下代码来实现最简单的图片识别:

    import pytesseract
    from PIL import Image
    image = Image.open('验证码.png')
    code = pytesseract.image_to_string(image)
    print(code)
    

    运行结果如下:
    tesseract的使用

    如果你的系统为Mac OS,并且使用homebrew安装tesseract,那么你一定会遇到下面的报错信息:
    Mac OS报错

    你需要修改Python安装文件夹下面的lib/site-packages/pytesseract文件夹下面的 pytesseract.py 文件,将第60行的:

    tesseract_cmd = 'tesseract'

    修改为:

    tesseract_cmd = '/usr/local/bin/tesseract'

    Leave a Comment