验证码识别之OCR识别

验证码识别:

背景:

​ 决定开一个专题给大家讲一下验证码识别,不要多想,我们不搞深度学习,知识用于攻破模拟登录的时候弹出的验证码,后续会给大家讲讲滑块等等,反爬虫策略如何应对。

好了,言归正传,目前市面上的验证码识别主要是:

  • OCR识别 但是可能准确率不高
  • 各种打码平台
  • opencv
  • 深度学习模型
环境安装:

首先需要安装一个软件,我们可以理解为驱动 Home · UB-Mannheim/tesseract Wiki (github.com),然后根据你的机器是32还是64傻瓜式安装即可。

在这里插入图片描述

然后配置一下环境变量:

安装完后,需要将Tesseract添加到系统变量中。
  环境变量: 我的电脑 ->属性 -> 高级系统设置 ->环境变量 ->系统变量 ,在 path 中添加 安装路径。

在这里插入图片描述

在这里插入图片描述

然后打开cmd输入:

tesseract -v

然后出现版本就说明配置成功了!

在这里插入图片描述

然后需要安装两个python的外部库:

pip install pillow
pip install pytesseract
# 或者 
conda install pillow
conda  install pytesseract
OCR代码实现:

找一张图片去试试!我们平时模拟登录的时候一般是讲图片爬取到本地然后进行识别,然后调用识别后的值.

在这里插入图片描述

上代码:

import pytesseract
from PIL import Image
img = Image.open("./code.jpg")
text = pytesseract.image_to_string(img, lang='eng') # lang='eng' 表示将识别语言设置为英语(English) 也可以识别数字
# text = pytesseract.image_to_string(img, lang='eng+chi_sim')
print(text)

参数:

除了英语之外,pytesseract还支持其他语言的文字识别。以下是一些常见的语言参数示例:
  • 英语:lang='eng'

  • 中文简体:lang='chi_sim'

  • 中文繁体:lang='chi_tra'

  • 西班牙语:lang='spa'

  • 法语:lang='fra'

  • 德语:lang='deu'

  • 意大利语:lang='ita'

  • 日语:lang='jpn'

  • 韩语:lang='kor'

    大家可以根据需要将语言参数设置为适当的值。如果需要识别多种语言的混合文本,可以将语言参数设置为多个值,例如lang='eng+chi_sim'表示同时使用英语和中文简体进行识别。

    我们看一下识别后的结果:

在这里插入图片描述

发现不是很一样吧,因为验证码边缘模糊,像素等等原因,直接使用OCR识别验证码识别率不高,我们也不常用,大家记住,天下没有免费的午餐,接下来我们看一下中文的识别效果。

识别文本:

在这里插入图片描述

import pytesseract
from PIL import Image
img = Image.open(r"E:\OCR\img\test.jpg")
text = pytesseract.image_to_string(img, lang='eng+chi_sim')
print(text)

在这里插入图片描述

哟,识别的还不错,我们基于识别后的结果做一些字符串操作就可以准确得到啦!

  • 21
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acmakb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值