美文网首页
利用pytesser进行简单的验证码识别

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

作者: 罗盘上的方向 | 来源:发表于2017-01-09 11:11 被阅读209次

    最近在爬取一个网站的时候,当爬取到一定数量的时候会遇到服务器的验证码验证,经过对验证码的识别,发现验证码比较规范,没有旋转和扭曲。可以使用谷歌开源的验证码识别。我这里使用的是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进行简单的验证码识别

          本文链接:https://www.haomeiwen.com/subject/qeocbttx.html