爬虫中 识别验证码常用哪些方法 ?_如何爬虫

(86) 2024-06-07 17:01:01

爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第1张

文章目录

  • 一、tesseract激活成功教程验证码
    • 1.下载安装tesseract
    • 2.python安装tesseract模块及其配置
    • 3.demo测试
  • 二、muggle_ocr激活成功教程和识别验证码
    • 1.介绍
    • 2.安装
    • 3.demo测试
  • 三、其他识别验证码的常用库
  • 四、高难度图片验证码

一、tesseract激活成功教程验证码

1.下载安装tesseract

①下载地址

下载地址:https://digi.bib.uni-mannheim.de/tesseract/
爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第2张
选择合适的版本安装即可(其中文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本,例如可以选择下载tesseract-ocr-setup-3.05.02.exe)

②一路next安装即可

爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第3张
我安装在d盘

③配置环境变量

系统变量
爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第4张
path变量
爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第5张

④验证是否安装成功

爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第6张

2.python安装tesseract模块及其配置

①下载安装

pip install pytesseract 

爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第7张

②进入pycharm,按两次shift搜索tesseract修改源码
爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第8张
爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第9张
爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第10张

3.demo测试

爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第11张

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。

爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第12张

2.安装

pip install muggle_ocr -i https://pypi.tuna.tsinghua.edu.cn/simple 

3.demo测试

测试图片
爬虫中 识别验证码常用哪些方法 ?_如何爬虫 (https://mushiming.com/)  第13张
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://mushiming.com/)  第14张

三、其他识别验证码的常用库

参考这篇文章:爬虫从入门到精通(15) | 使用Python-OCR识别库对图形验证码进行识别

四、高难度图片验证码

针对于难度过高的验证码识别,我们推荐使用打码网站的付费接口

THE END

发表回复