前言
写爬虫有一个绕不过去的问题,那就是验证码,比如像某乎,如果不先登陆,连里面的内容数据都爬不到,而验证码就是网站进行发爬虫的一种措施,随着技术的发展,验证码越来越复杂,爬虫的工作越来越艰苦,所以这次就来讲解,怎么来识别验证码;(听上去口气很大的感觉)
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:961562169
image.png
先来看看,目前遇到的验证码种类有哪些?
1)图形验证码
图形验证码应该是最简单的一种验证码,这种验证码是最早出现,也是目前最常见的,一般组成规则是4个字母或数字或混合组成;
image.png
2)滑动验证码
image.png
3)点触验证码
image.png
image.png
Ok,上面这3种验证码方式,应该是目前PC上比较常见的验证码种类的,当然手机app上还会有手势验证,宫格验证,语音验证等等,这里就不介绍,主要针对上面常见的3种介绍;
1 图形验证码
某乎的验证码有2种,一种是图形验证码,一种是点触验证码,经过测试发现,一开始是显示图形验证码,但当登陆退出次数逐渐增多,就会变成点触验证码,这种验证码的切换机制,也算是防爬虫的一种手段,闲话不多说,先喵喵:
某乎链接:https://www.zhihu.com/signup?next=%2F
打开后默认是在注册页面,点击下登陆按钮,如果还是没有验证码,刷新几次网页就行了;
image.png
下面这种,下2篇文章会介绍;
image.png
2 信息介绍
识别图形验证码需要安装tesserocr这个库,下面介绍下tesserocr;
tesserocr是Python的一个OCR识别库,但其实是对tesseract做了一层Python Api的封装,
核心还是tesseract,所以在安装tesserocr之前,需要先安装tesseract;
等下,懵逼中,tesserocr这个能看明白,是一个库,但OCR是什么?tesseract又是什么?
OCR
OCR,全称叫 Optical Character Recognition,中文翻译叫光学字符识别,是指通过扫描字符,通过其形状将其翻译成电子文本的过程;
举例:
当有一个图形验证码,先使用OCR技术将其转化成电子文本,然后爬虫将识别的结果提交到服务器,便达到自动识别验证码的过程;
tesseract
tesseract是google开源的OCR
OK,貌似对概念有所理解了,还有个疑问,之前有在图