<div id="article_content" class="article_content clearfix">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-1a85854398.css">
<div id="content_views" class="htmledit_views">
<h3><a name="t0"></a>前言</h3>
<p>写爬虫有一个绕不过去的问题,那就是验证码,比如像某乎,如果不先登陆,连里面的内容数据都爬不到,而验证码就是网站进行发爬虫的一种措施,随着技术的发展,验证码越来越复杂,爬虫的工作越来越艰苦,所以这次就来讲解,怎么来识别验证码;(听上去口气很大的感觉)</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/44d535f281c57a741e9330dcacaa07ff.png"></p>
<p></p>
<p>先来看看,目前遇到的验证码种类有哪些?</p>
<p><strong>1)图形验证码</strong><br> 图形验证码应该是最简单的一种验证码,这种验证码是最早出现,也是目前最常见的,一般组成规则是4个字母或数字或混合组成;</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/2a8a069ee37f25df4a9b87e01231cce5.png"></p>
<p></p>
<p><strong>2)滑动验证码</strong></p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/4af5e22fa91ab42ea5a05d6e14f56a40.png"></p>
<p></p>
<p><strong>3)点触验证码</strong></p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/7691d9344fb4a7b975960ff62f833e3d.png"></p>
<p></p>
<p></p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/e4ed6065ea51bf2cdaccdd18e3d0398f.png"></p>
<p></p>
<p></p>
<p>Ok,上面这3种验证码方式,应该是目前PC上比较常见的验证码种类的,当然手机app上还会有手势验证,宫格验证,语音验证等等,这里就不介绍,主要针对上面常见的3种介绍;</p>
<h3><a name="t1"></a>1 图形验证码</h3>
<p>某乎的验证码有2种,一种是图形验证码,一种是点触验证码,经过测试发现,一开始是显示图形验证码,但当登陆退出次数逐渐增多,就会变成点触验证码,这种验证码的切换机制,也算是防爬虫的一种手段,闲话不多说,先喵喵:</p>
<p>某乎链接:<a href="https://www.zhihu.com/signup?next=%2F" title="知乎 - 有问题,就会有答案">知乎 - 有问题,就会有答案</a><br> 打开后默认是在注册页面,点击下登陆按钮,如果还是没有验证码,刷新几次网页就行了;</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/a63e93eec1eb4fe4df63d43602c340ae.png"></p>
<p></p>
<p>下面这种,下2篇文章会介绍;</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/f3986accedaccc1e7f3bd40caeef5779.png"></p>
<p></p>
<h3><a name="t2"></a>2 信息介绍</h3>
<p>识别图形验证码需要安装<strong>tesserocr</strong>这个库,下面介绍下tesserocr;<br> tesserocr是<a href="https://so.csdn.net/so/search?from=pc_blog_highlight&q=Python" target="_blank" class="hl hl-1">Python</a>的一个OCR识别库,但其实是对tesseract做了一层Python Api的封装,<br><strong>核心还是tesseract</strong>,所以在安装tesserocr之前,需要先安装tesseract;</p>
<p><strong>等下,懵逼中,tesserocr这个能看明白,是一个库,但OCR是什么?tesseract又是什么?</strong></p>
<p><strong>OCR</strong><br> OCR,全称叫 Optical Character Recognition,中文翻译叫光学字符识别,是指通过扫描字符,通过其形状将其翻译成电子文本的过程;</p>
<p>举例:<br> 当有一个图形验证码,先使用OCR技术将其转化成电子文本,然后爬虫将识别的结果提交到服务器,便达到自动识别验证码的过程;</p>
<p><strong>tesseract</strong><br> tesseract是google开源的OCR</p>
<p>OK,貌似对概念有所理解了,还有个疑问,之前有在图形识别领域,还有个opencv的玩意,那这两者有什么区别?<br><strong>opencv专注机器视觉</strong><br><strong>tesseract专注字符识别</strong></p>
<p>所以从领域来说,opencv更广,而图形验证码,opencv也可以做,但杀鸡焉用牛刀~</p>
<h3><a name="t3"></a>3 环境准备</h3>
<p><strong>windows下的安装</strong></p>
<p>在Windows下,要先下载tesseract,它为tesserocr提供了支持;<br> tesseract下载地址:<a href="https://digi.bib.uni-mannheim.de/tesseract/" title="Index of /tesseract">Index of /tesseract</a><br> 打开后,可以看到各种exe的列表,可以随便挑选;<br> 其中文件名中带有dev的为开发版本,不带dev则为稳定版本,例如jb是下载 tesseract-ocr-setup-3.05.01.exe;</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/dacab00e5d5e31973a82ab903f2f63d7.png"></p>
<p></p>
<p></p>
<p>下载后双击,一路点击,直到出现下面这个页面</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/d34432b72710f857d63d70efed14253e.png"></p>
<p></p>
<p>这里需要勾选红框里的Additional language data(download),这个选项是安装OCR识别支持的语言包,这样OCR就可以识别多国语言,然后再一路点击NEXT即可,因为要下载语言包,所以需要点时间,大概10-20分钟左右,跟网速有关,如果不需要支持多国语言的话,也可以不勾选,自由选择</p>
<p><br><strong>需要说明:默认包含英文字库</strong></p>
<p><br> 如果,觉得一次下载那么多语言占空间,又或者觉得网速慢,也可以选择单独安装中文字库;<br> 字库下载地址:<a href="https://github.com/tesseract-ocr/tessdata" title="https://github.com/tesseract-ocr/tessdata">https://github.com/tesseract-ocr/tessdata</a><br> 打开后,直接搜索chi_sim.traineddata,这个代表的就是中文,下载下来;<br> 然后找到刚刚tesseract安装目录,里面会有一个叫tessdata的目录,直接把刚下载的语言包放到这个目录下即可;</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/c578f838b03a26763fe61cd517a5b778.png"></p>
<p></p>
<p>如何验证tesseract是否安装成功?直接cmd下输入tesseract即可;<br> 成功会直接显示信息;</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/b88e28ac3c7cc98e741d87f6f21cec15.png"></p>
<p></p>
<p>如果提示'tesseract' 不是内部或外部命令,则是因为没有配置环境变量,手动把tesseract根目录配置到path参数下即可,这块不详细说明;</p>
<p>到此为止,tesseract安装成功啦~</p>
<p>接下来就<strong>安装tesserocr</strong>,直接pip命令即可:</p>
<pre class="hljs undefined" name="code"><code class="hljs language-undefined">pip3 install tesserocr install
</code><div class="hljs-button {2}" data-title="复制(为作者贡献原力分)" data-report-click="{"spm":"1001.2101.3001.4259"}" onclick="hljs.copyCode(event)"></div></pre>
<p>但jb在安装的时候,直接报错:</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/3100db8c65517c4bc7bf0f1f10a59a8e.png"></p>
<p></p>
<p>试过很多种方式,就算使用conda install tesserocr,也一样报错。</p>
<p><img alt="" class="has" src="https://img-blog.csdnimg.cn/img_convert/08198fdcaff7e4ce6375716354d4096f.png"></p>
<p></p>
<p>经历千辛万苦,终于找到一条可行的命令:</p>
<pre class="hljs undefined" name="code"><code class="hljs language-r">conda install <span class="hljs-operator">-</span><span class="hljs-built_in">c</span> simonflueckiger tesserocr
</code><div class="hljs-button {2}" data-title="复制(为作者贡献原力分)" data-report-click="{"spm":"1001.2101.3001.4259"}" onclick="h
没有合适的资源?快使用搜索试试~ 我知道了~
Python 破解验证码.zip
共1个文件
html:1个
需积分: 0 0 下载量 109 浏览量
2023-07-28
22:47:48
上传
评论
收藏 9KB ZIP 举报
温馨提示
Python 破解验证码.zip
资源推荐
资源详情
资源评论
收起资源包目录
Python 破解验证码.zip (1个子文件)
验证码.html 33KB
共 1 条
- 1
资源评论
小嗷犬
- 粉丝: 2w+
- 资源: 1334
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功