最近在爬取一个网站的时候,当爬取到一定数量的时候会遇到服务器的验证码验证,经过对验证码的识别,发现验证码比较规范,没有旋转和扭曲。可以使用谷歌开源的验证码识别。我这里使用的是anacada2的集成环境。下面是步骤:
- 因为anacada2集成了Pillow所以不用再进行额外的安装,如果你使用的是官方安装包的话可以使用下面的命令进行安装:
pip install Pillow
- 下载pytesser安装包(传送门 密码:DPHE)
- 把下载下来的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
网友评论