利用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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 经过对django的初步学习,我们已经对后台的基本流程以及django的运作有了一定的了解,但是这还不足够,dja...
    coder_ben阅读 9,233评论 8 34
  • Python 2.7IDE Pycharm 5.0.3 Selenium:Selenium的介绍及使用,强烈推荐@...
    mrlevo520阅读 14,445评论 16 56
  • 一、实验说明 1.1 实验内容 生活中,我们在登录微博,邮箱的时候,常常会碰到验证码。在工作时,如果想要爬取一些数...
    海人为记阅读 10,775评论 1 4
  • 这几天阳光很好,8点半,有一丝风,走在路上感觉有点热。转过一个街口,杨树挺直地站在一排,白色的杨絮填满整个街道。满...
    良辰孤往阅读 2,394评论 0 0
  • 昨天上午我很轻松的参与了群里的聊天,这是之前没有的状态。 因为之前我总觉得大家聊的都很幽默自在,很想努力的参与,但...
    liangye阅读 1,254评论 2 1