一、安装pytesseract
通过cmd输入pip install pytesseract进行安装,但是安装后并不能直接使用,还需要下载Tesseract-OCR。
下载Tesseract-OCR
下载完双击打开,连续next,直到出现安装路径的时候,可以自定义安装路径也可以使用默认的安装路径,但是无论是哪一种一定要记住路径。
我的是自定义的安装路径
F:\Tesseract-OCR\tesseract.exe
然后通过cmd输入pip install pytesseract可以看到自己安装的pytesseract所在路径
根据路径找到pytesseract.py
点开编辑,找到tesseract_cmd将它改为你刚刚安装的tesseract的路径。
保存后去运行程序会发现没办法使用pytesseract库,它还是会报错,这是由于环境变量也要进行设置。
点开我的电脑—》属性—》高级系统设置—》环境变量,新建一个变量:
路径还是你刚刚安装的Tesseract-OCR路径,但是要将它定位到其中的tessdata,变量名也一定不能改。
然后在下面的path中加入的变量:
保存后,请一定要重启,然后在去运行程序就可以使用pytesseract库了。
二、pytesseract库的使用
我是以古诗文网的登录验证码为例,写的代码,运行后请对照图片与输出结果是否一致。
代码如下:
import requests
from lxml import etree
from PIL import Image
import pytesseract
if __name__ == '__main__':
#或缺页面数据
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
page_text = requests.get(url=url, headers=headers).text
#解析出页面中图片的地址
tree = etree.HTML(page_text)
cod_img_src ='https://so.gushiwen.cn' + tree.xpath('//*[@id="imgCode"]/@src')[0]
cod_data = requests.get(url=cod_img_src,headers=headers).content
with open('./code.jpg', 'wb') as fp:
fp.write(cod_data)
text = pytesseract.image_to_string(Image.open(r'./code.jpg'))
print(text)
运行结果
实际结果
我运行了多次发现字母大部分都是能准确识别的,但是一旦数字经常识别错误。
参考:
https://blog.csdn.net/weixin_44010678/article/details/107818994
https://blog.csdn.net/qq_44314841/article/details/105602017?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase