1.简介
# -*-coding:utf8 -*-#图形验证码识别技术'''阻碍我们爬虫的,有时候是在登录或者请求一些数据时候的图形验证码。因此这里我们讲解一种能将图片翻译成文字的技术。将图片翻译成文字一般被称为光学文字识别,简写为OCR。实现OCR的库不是很多,特别是开源的。因为这块存在一定的技术壁垒(需要大量的数据、算法、机器学习、深度学习知识等),并且如果做好了具有很高的商业价值。因此开源的比较少。这里介绍一个比较优秀的图像识别开源库:TesseractTesseractTesseract是一个OCR库,目前由谷歌赞助。Tesseract是目前公认最优秀、最准确的开源OCR库,它具有很高的识别度,也具有很高的灵活性,它可以通过训练识别任何字体。安装:windows系统: 在以下链接下载可执行文件,然后一顿点击下一步安装即可。(放在不需要权限的纯文本英文路径下) https://github.com/tesseract-ocr/linux系统: 可以在以下链接下载源码自行编译: https://github.com/tesseract-ocr/tesseract/wiki/Compilingmac系统: 用Homebrew即可方便安装: brew install tesseract设置环境变量:windows下要把tesseract.exe所在的路径添加到PATH环境变量中linux和mac在安装的时候默认已经设置好了'''
2.在终端下识别图片
# -*-coding:utf8 -*-import pytesseractfrom PIL import Image#加了路径,后面还要指定文件名pytesseract.pytesseract.tesseract_cmd=r'D:\tesseract\Tesseract-OCR\tesseract.exe'#打开a图片,这个识别的是英文# image=Image.open('2.png')# text=pytesseract.image_to_string(image)# print(text)#指定识别中文img=Image.open(r'b.png')text=pytesseract.image_to_string(img,lang='chi_sim')print(text)
3.在代码下识别图片
# -*-coding:utf8 -*-from PIL import Imageimport pytesseractfrom urllib import requestimport timepytesseract.pytesseract.tesseract_cmd = r'D:\tesseract\Tesseract-OCR\tesseract.exe'def main(): url = 'https://passport.lagou.com/vcode/create?from=register&refresh=1513082291955' while True: request.urlretrieve(url,'captcha.png') img=Image.open('captcha.png') text=pytesseract.image_to_string(img) print(text) time.sleep(10)if __name__ == '__main__': main()