文章目录
一、tesseract破解验证码
1.下载安装tesseract
①下载地址
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
选择合适的版本安装即可(其中文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本,例如可以选择下载tesseract-ocr-setup-3.05.02.exe)
②一路next安装即可
我安装在d盘
③配置环境变量
系统变量
path变量
④验证是否安装成功
2.python安装tesseract模块及其配置
①下载安装
pip install pytesseract
②进入pycharm,按两次shift搜索tesseract修改源码
3.demo测试
import pytesseract
from PIL import Image
image = Image.open('CheckCode.png')
# 把一个彩色图变成灰度图
image = image.convert('L')
tessdata_dir_config = '--tessdata-dir "D:\\Tesseract-OCR\\tessdata"'
# 去除干扰线
threshold = 128
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
image = image.point(table,'1')
image_str = pytesseract.image_to_string(image,config=tessdata_dir_config)
print(image_str)
二、muggle_ocr破解和识别验证码
1.介绍
在2020不平凡的一年,6月1日,在pypi仓库中偷偷潜入一位新同学,他就是MuggleOCR,他有多厉害呢?
作为一个本地识别的模块,他的体积居然小于10MB,模型分别有2个。
OCR模型仅为4MB,验证码模型仅为2MB。
2.安装
pip install muggle_ocr -i https://pypi.tuna.tsinghua.edu.cn/simple
3.demo测试
测试图片
demo.py
# 导入包
import muggle_ocr
def return_ocr_by_muggle(image_path, mode=1):
"""
:param image_path 待测试的文件名称 最好绝对路径
:param mode = 1 默认 即 ModelType.Captcha 表示识别4-6位简单英输验证码
其他情况 即 ModelType.OCR 表示识别普通印刷文本
官方网站: https://pypi.org/project/muggle-ocr/
:return: 返回这个验证码的识别结果 如果错误 可以多次调用
"""
# 确定识别物品
if mode == 1:
sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha)
else:
sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR)
with open(image_path, 'rb') as fr:
captcha_bytes = fr.read()
result = sdk.predict(image_bytes=captcha_bytes)
return result.strip()
if __name__ == '__main__':
image_path = 'timg.jpg'
result = return_ocr_by_muggle(image_path)
print(result)
三、其他识别验证码的常用库
参考这篇文章:https://blog.youkuaiyun.com/qq_38017966/article/details/118724459
四、高难度图片验证码
针对于难度过高的验证码识别,我们推荐使用打码网站的付费接口