一、环境准备
1.Pycharm安装第三方库:
PIL
pytesseract
2.电脑安装软件:
tesseract-ocr
版本:tesseract-ocr-w64-setup-v5.0.0.20190526
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
百度云下载地址:https://pan.baidu.com/s/1of1yUdmAW9i5LUS1cGumFg
提取码:yy3b
3.设置环境变量:
编辑path:新增tesseract-ocr安装路径
新增TESSDATA_PREFIX:tesseract-ocr安装路径下的tessdata文件夹路径
4.验证环境配置是否符合要求
5.找一张验证码图片试一下
二、实现代码
from PIL import Image
from http import cookiejar
import urllib.request, urllib.parse, urllib.error
# import sys
import time
import pytesseract
class AuthCode():
def get_verification_code(self,time):
f = None
try:
cookieJar = cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookieJar))
# 找一个带验证码图片的网页,获取验证码图片
url = '*****' + time
print(url)
res = opener.open(url)
response=res.read()
with open('D:\\auth_code_image\\auth_code.jpg', 'wb') as f:
f.write(response)
# 使用PIL打开一个图片,转换成灰度模式
l_image = Image.open('D:\\auth_code_image\\auth_code.jpg').convert('L')
# 使用image_to_string识别验证码
py_text = pytesseract.image_to_string(l_image).strip()
print(py_text)
# res_text = []
# for i in py_text:
# if i != ' ':
# res_text.append(i)
# text = ''.join(res_text)
# print(text)
except urllib.error.HTTPError as e:
raise Exception("连接失败:%s" % e)
finally:
if f:
f.close()
return py_text
millis = str(int(round(time.time() * 1000)))
auth_api = AuthCode()
res = auth_api.get_verification_code(millis)
print(res)