利用pytesser进行简单的验证码识别

最近在爬取一个网站的时候,当爬取到一定数量的时候会遇到服务器的验证码验证,经过对验证码的识别,发现验证码比较规范,没有旋转和扭曲。可以使用谷歌开源的验证码识别。我这里使用的是anacada2的集成环境。下面是步骤:

  1. 因为anacada2集成了Pillow所以不用再进行额外的安装,如果你使用的是官方安装包的话可以使用下面的命令进行安装:
pip install Pillow
  1. 下载pytesser安装包(传送门 密码:DPHE)
  2. 把下载下来的pytesser包解压到python目录的Lib/site_packages里面,名字取为pytesser,然后再在这个目录下面新建一个pytesser.pth文件,内容为pytesser,然后修改pytesser.py,把第一句的import Image修改为from PIL import Image,这一步的原因是这里我们用的是pillow而不是用的原生PIL。这样做好以后记得把pytesser这个目录放入到系统环境变量,因为程序会调用这个目录里面的tesseract.exe,如果不放到环境变量会因为找不到这个文件而抛出异常。
    4.写段测试代码来测试
# encoding=utf-8
from PIL import Image
from pytesser import *

img = Image.open('./2.jpg')
img_grey = img.convert('L')

threshold = 140
table = []
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
img_out = img_grey.point(table, '1')

text = image_to_string(img_out)  # 将图片转成字符串
print text.replace(' ', '').replace('\n', '') #这里因为识别出来的文字可能会有空格和回车

识别的图片


2.jpg

识别结果


2.png

你可能感兴趣的:(利用pytesser进行简单的验证码识别)