摘要:识别网站验证码详见维基百科或者百度百科识别的验证码原理采集一批验证码,根据图片特点进行初步处理二值化灰度化滤波降噪等处理然后分割图片,旋转图片,模板选取,训练算法,让它更准确。
最近在爬某网站,老是蹦出来验证码,就想着找个OCR破了这个验证码,然后就开始了OCR探索之旅。
首先简单说一下什么是OCROCR是(Optical Character Recognition,光学字符识别)的简称,主要用途:
办公用途,用来识别图片里面的文字,可以高效率的录入图片类型文件。
识别网站验证码
详见维基百科或者百度百科
OCR识别的验证码原理采集一批验证码,根据图片特点进行初步处理(二值化/灰度化/滤波/降噪等处理)
然后分割图片,旋转图片,模板选取,训练算法,让它更准确。
有兴趣的可以看一个Python实现的OCR识别验证码详细demo,实际操作过程挺有意思的,大家有兴趣了可以试试
OCR识别验证码的具体操作首先我测试了一个百度开源的Node.js实现的OCR包
gitHub地址 https://github.com/netpi/baidu-ocr-api
安装也很简单直接按照官方的文档安装即可
发现百度的这个OCR包识别效果不太理想
![node_ocr.png][1]
然后经过一番Google和小伙伴们的推荐 选择一个Google开源的tesseract这个是C++写的,直接融合到爬虫里不太方便,__有外国朋友基于tesseract封装了一个Python的包pytesseract__,直接开箱即用,融入爬虫程序中。
百闻不如一run
**ps(这里使用的操作系统是Ubuntu16.04;Python版本是2.7)** 直接 `pip install pytesseract` 然后Python图片处理要用到PIL(Python Imaging Library) `pip install PIL` 原图片
写个简单的测试demo ![code.png][3] 看下识别结果 ![error.png][4] 报错了, 根据报错信息来看,是确实了什么文件,或者依赖lib 我跟踪了pytesseract的代码,发现是少了C++提供的OCR服务,因为pytesseract是调用的tesseract(C++写的) 然后安装tesseract ```sudo apt install tesseract``` 再run一下代码
整体结果还可以(倒数第四位识别错了),再训练一下准确率就更高了。
预知后事如何,且听下回分解
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38247.html
小编写这篇文章的主要目的,主要是给大家去做一个相关的介绍,介绍的内容是关于Python通用验证码的一些相关小技巧,包括有通用验证码识别相关的OCR库,同时也会给大家介绍一些内容,介绍包括OCR库ddddocr安装使用教程,下面小编就给大家详细解答下。 前言 在使用自动化登录网站的时候,经常输入用户名和密码后会遇到验证码。今天介绍一款通用验证码识别OCR库,对验证码识别彻底说拜拜,它的名字是...
摘要:内置了对平台的类库在里头,可以自己加载,无需额外在操作系统安装,可便携性强一点。调用不是线程安全的,因此多线程的话,每个线程自己一个实例测试 asprise-java-ocr-api 内置了对windows、mac、linux平台的类库在jar里头,可以自己加载,无需额外在操作系统安装,可便携性强一点。 maven com.asprise.o...
摘要:无论是是自动化登录还是爬虫,总绕不开验证码,这次就来谈谈中光学识别验证码模块和。和是的一个识别库,但其实是对做的一层封装,是的引擎包装器所以它们的核心是因此在安装之前,我们需要先安装。 无论是是自动化登录还是爬虫,总绕不开验证码,这次就来谈谈python中光学识别验证码模块tesserocr和pytesseract。tesserocr和pytesseract是Python的一个OCR识...
阅读 1715·2021-11-25 09:43
阅读 15093·2021-09-22 15:11
阅读 2605·2019-08-30 13:19
阅读 1982·2019-08-30 12:54
阅读 1801·2019-08-29 13:06
阅读 906·2019-08-26 14:07
阅读 1597·2019-08-26 10:47
阅读 3006·2019-08-26 10:41