验证码识别OCR技术

在开发爬虫时,会遇到验证码识别,在网站中加入验证码的目的是加强用户安全性和提高反爬虫机制。
验证码类型:字符验证码,图片验证码,gif动图验证码,极验验证码(拖动滑块完成拼图),手机验证码,视频验证码等。
识别验证码的三种方案:
1,人工识别,但这过分依赖人为控制,难以实现批量爬取
2,python调用OCR引擎识别验证码。但正常情况下,OCR准确率低,需要机器学习不断提高OCR准确率,开发成本相对较高。
3,调用API使用第三方平台识别验证码,但每次需要支付一定费用。

下面将介绍OCR技术
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题。

在python中,支持OCR的模块有pytesser3和pyocr,通过模块调用OCR引擎识别图片,OCR引擎再将识别结果返回到程序中。
安装方法:

pip install pyocr
pip install Pillow   处理图片的模块

OCR引擎安装:
图像识别主要是OCR引擎完成,pyocr只起到一个调用引擎的作用。
安装教程
如果不是做英文的图文识别,还需要下载其他语言的识别包

代码如下:

from PIL import Image
from pyocr import tesseract
#使用PIL打开图片
im = Image.open("fig5.PNG")
code = tesseract.image_to_string(im,lang = "chi_sim")
print(code)

识别结果为:
在这里插入图片描述
fig5.PNG如下图:

在这里插入图片描述
在这里插入图片描述
识别结果为:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

以下两张图片识别不出来
在这里插入图片描述

在这里插入图片描述

在实际使用中,验证码可能带有颜色的背景,,这时可以对图片进行简单的处理,去掉干扰因素,

im = im.convert(“L”) #图片转换为灰度图像,形成黑->灰->白 的过渡,如图黑色照片

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值