Python爬虫:简单的图片验证码识别

前言

目前,许多网站采取各种各样的措施来反爬虫,其中一个措施便是使用验证码。随着技术的发展,验证码的花样越来越多。验证码由最初的几个数字组合的简单的图形验证码,后来加入了英文字母和混淆曲线。有的网站还可以看到中文字符的验证码,这使得识别愈发困难。

现在交互式验证码越来越多,如滑动验证码,需要滑动拼合滑块才可以完成验证,点触验证码需要完全点击正确的结果才可以完成验证,另外还有滑动宫格验证码、计算题验证码等等。

验证码变得越来越复杂,爬虫的工作也变得愈发困难。有时候我们必须通过验证码的验证才能访问页面。

本次分享的知识就是教会大家验证码的识别做讲解。

图片验证码的识别

我们首先做最简单的一种验证码,即图形验证码。这种验证码出现的最早,现在也很常见,一般由4位字母或数字组成。

举个简单的例子,中国知网的注册页面就有类似的验证码。网页链接如下:

https://my.cnki.net/Register/CommonRegister.aspx

表单的最后一项就是图形验证码,我们必须完全正确的输入图中的字符才可以完成注册。

准备工作

识别图形需要用到库:tesserocr。

在爬虫过程中,难免会遇到各种各样的验证码,有些验证码就是图形验证码,这个时候我们可以直接使用OCR来识别。

1、OCR

0CR,即Opticla Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图片验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。

tesserocr是Python一个OCR识别库,但其实对于一个tesseract做的一层Python API封装,所以它的核心是tesseract。因此,在安装tesserocr之前,我们需要先安装tesseract。

下载链接如下:

https://digi.bib.uni-mannheim.de/tesseract/

这里可以选择下载5.0的版本,下载之后安装方式还是比较简单的,直接下一步即可。

安装完毕之后将安装目录下的testdata文件复制到Python安装目录下,具体如下图所示:

接下来,再安装tessercor即可,此时可以使用pip进行安装:

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值