Python使用Pillow和Tesseract识别图片文字

本文介绍了如何使用Python的Pillow和Tesseract库处理并识别互联网上的图片验证码,通过实例演示了Tesseract的安装配置及在破解网站验证码过程中的应用,突出了图像预处理和识别技术在爬虫中的实际应用。
摘要由CSDN通过智能技术生成

概述

图像识别与文字处理是在生活中非常常见的一种场景,Python对于处理该问题有很多相关库来使用,这次用到两个非常重要的库:Pillow和Tesseract。
这两个库互为补充,对互联网上的图片进行处理。Pillow执行第一步:清洗和过滤图像,Tesseract尝试将图像中的形状与库里面存储的文字相匹配。
Tesseract安装需要配置环境变量,接下来演示下Tesseract安装过程:
Tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/
在这里插入图片描述
接下来一直next就行了。
在系统变量中设置名为:TESSDATA_PREFIX变量,地址为:D:\Program Files (x86)\Tesseract-OCR\tessdata(这是我Tesseract安装的地址)。

cmd查看是否安装成功:
在这里插入图片描述

实例

现在许多流行的网站都有验证码模块,但注册页面也经常会遭到网络机器人的垃圾注册,这些网络机器人是怎么完成的呢?
大多数网站生成的验证码图片都有以下属性:

  • 服务端动态生成的图片
  • 图片的答案存储在服务端的数据库里
  • 验证码都有时效,一旦一段时间过去还没有完成验证,会很难成功

下面来对http://pythonscraping.com/humans-only用网络机器人来破解验证码。

1.需要导入的库:

在这里插入图片描述

2.访问网站时,会碰到一些并不是太清晰的图片,我们可以找到一个最佳的阈值来让图片更清晰:

在这里插入图片描述
3.访问目标网站,并确定提交表单需要的数据:
在这里插入图片描述
4.获取到验证码图片的URL,使用Python自带的库也可以使用Tesseract来读取图片信息,如果在图片清洗时找到了最佳阈值则会让读取到的信息正确率大大提高。
在这里插入图片描述

5.最后做一个判断,读取到的字符是否和验证码中的数量一样,一样则访问服务端,否则打印错误信息。
在这里插入图片描述

6.结果:读取到了5个字符,并显示了跳转后页面的部分数据。
在这里插入图片描述
总结:
在我们爬虫过程中,经常会遇到登录或注册的情况,这就需要我们对图像识别有一些认识。这是一个很简单的图像识别。图像识别中确定最佳阈值很重要,如果有很多图像,都有不同程度灰度的问题,那就要考虑如何计算最佳阈值了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值