本文主要是介绍PIL + pytesseract 玩转验证码图片识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有时候我们在模拟登陆的时候会遇到图片验证码,如果是简单的数字字母验证码,可以通过图片识别的方法识别验证码,再发送post请求模拟登陆。
验证码图片的爬取可以通过找到某验证码的url,通过python的requests模块get图片资源,这里不做过多介绍。
我们在本地尝试完成验证码图片的识别。本地已经安装Anaconda3,使用Python3。其下均在Anaconda环境进行操作。
1.安装PIL模块和pytesseract模块
PIL是python的一个图像处理标准库,pytesseract是免费的ocr识别库。在Anaconda Prompt中安装两个模块。
pip install PIL
pip install pytesseract
2.安装识别引擎tesseract-ocr
tesseract-ocr是OCR文字识别引擎,需要在本机进行安装。
下载后傻瓜式安装即可,这里可以将tesseract.exe加入环境变量,如不加入,后面需要修改Anaconda安装目录D:\Anaconda3\Lib\site-packages\pytesseract\pytesseract.py中的tesseract_cmd路径。
tesseract_cmd = 'D:/Tesseract-OCR/tesseract.exe'
3.图片识别
import pytesseract
from PIL import Image
import numpy as nppath='D:/vc_code.png'
imageObject = Image.open(path) # 传入保存的图片路径
print(imageObject)
imageObject = np.array(imageObject.convert('L'), 'f') #图片灰度处理
result = pytesseract.image_to_string(imageObject)
print("验证码识别结果:", result)
4.中文识别
在’D:\Tesseract-OCR’路径下运行cmd,输入命令tesseract --list-langs查看支持的语言,未安装有chi_sim中文数据包,需要手动安装。下载解压后’D:\Tesseract-OCR\tessdata’目录下即可。
使用方法:
result = pytesseract.image_to_string(imageObject, lang='chi_sim')
这篇关于PIL + pytesseract 玩转验证码图片识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!