[Python][爬虫]利用OCR技术识别图形验证码

ocr图片识别通常可以利用tesserocr模块,将图片中内容识别出来并转换为text并输出

Tesserocr是python的一个OCR识别库,是对tesseract做的一层python APT封装。在安装Tesserocr前,需要先安装tesseract

tessrtact文件:

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

python安装tessocr: 下载对应的.whl文件安装(这个包pip方式容易出错)

tesseract 与对应的tesserocr:

https://github.com/simonflueckiger/tesserocr-windows_build/releases

实现代码如下:

from PIL import Image

import tesserocr

#tesserocr识别图片的2种方法

img = Image.open("code.jpg")

verify_code1 = tesserocr.image_to_text(img)

#print(verify_code1)

verify_code2 = tesserocr.file_to_text("code.jpg")

#print(verify_code2)

但是,当图片中干扰部分较多,如验证码内多余的线条干扰图片的识别,识别后的内容不是很准确,就需要做一下处理,如转灰度,二值化操作。

可以利用Image对象的convert()方法,传入“L”,将图片转为灰度图像;传入1则对图像进行二值处理(默认阈值127)

原验证码:

img = Image.open("code.jpg")

img_L = img.convert("L")

img_L.show()

也可以自己设置阈值

threshold = 100   #设置二值的阈值100

table = []

for i in range(256):

if i < threshold:

table.append(0)

else:

table.append(1)

#point()返回给定查找表对应的图像像素值的拷贝,变量table为图像的每个通道设置256个值,为输出图像指定一个新的模式,模式为“L”和“P”的图像进一步转换为模式为“1”的图像

image = img_L.point(table, "1")

image.show()

img_1 = tesserocr.image_to_text(image)

print(img_1)

>>5SA6

原文地址:https://www.cnblogs.com/hazelrunner/p/9443613.html

时间: 2024-08-26 13:41:15

[Python][爬虫]利用OCR技术识别图形验证码的相关文章

Java 如何使用 OCR 技术识别验证码实现自动化登陆

如论实施敏捷的团队,或者实施 DevOps 的团队,通过自动化测试提高测试效率和软件质量都是其共同的选择.UI 自动化测试是自动化化测试当中的重要环节,在 UI 自动化测试中验证码识别一直是令自动化测试人员头疼的问题.今年来随着 OCR 技术.人工智能计算机视觉(AI Computer Vision)技术的成熟与使用大大提高了验证码的识别成功率.从而使得自动识别验证码自动化登陆目标系统成为可能. 本 Chat 主要内容包括: OCR 技术与人工智能计算机视觉(AI Computer Vision

怎样利用OCR文字识别软件实现图片转文字操作?

图片对于大家来说都是一个很熟悉的东西,可往往是越熟悉的东西,我们越会忽略它更多地东西.今天小编就交给大家一种利用OCR文字识别软件实现图片转文字的操作. 第一步:今天小编分享给大家的是利用OCR文字识别软件实现图片转文字的操作,于是OCR文字识别软件就是我们需要借助的工具了.那么就需要点击OCR文字识别软件工具里的极速识别功能键了,进入到极速识别的页面. 第二步:进入到极速识别功能界面后,我们需要的就是点击添加文件,把我们要识别的图片文件给添加进去. 第三步:选择好图片文件后,需要考虑一下图片的

爬虫 - 用ocr来识别验证码

用OCR来识别 直接识别效果不好,因为验证码内的多余线条干扰了图片的识别.先转为灰度图像,再二值化.经实践证明,该方法不是100%正确. # 获取图片 curl -X GET http://my.cnki.net/elibregister/CheckCode.aspx import tesserocr from PIL import Image image = Image.open('1.png') # 转为灰度图像 image = image.convert('L') threshold =

Python爬虫抓取技术的门道

web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单易学的html.css技术使得web成为了互联网领域里最为流行和成熟的信息传播媒介:但如今作为商业化软件,web这个平台上的内容信息的版权却毫无保证,因为相比软件客户端而言,你的网页中的内容可以被很低成本.很低的技术门槛实现出的一些抓取程序获取到,这也就是这一系列文章将要探讨的话题-- 网络爬虫 . 有很多人认为web应当始终遵循开放的精神,呈现在页面

验证码识别——图形验证码

先找了一个简单的图形验证码进行测试,比如知网,从网页里把验证码下载到本地 进行简单的灰度处理和二值化处理,能够提高不少识别正确率 验证码: 代码: 1 import tesserocr 2 from PIL import Image 3 4 image = Image.open('code.jpg') 5 #灰度处理 6 image = image.convert('L') 7 #阈值 8 threshold = 127 9 table = [] 10 #阈值处理 11 for i in ran

利用pytesser识别图形验证码

简单识别 1.一般思路 验证码识别的一般思路为: 图片降噪 图片切割 图像文本输出 1.1 图片降噪 所谓降噪就是把不需要的信息通通去除,比如背景,干扰线,干扰像素等等,只剩下需要识别的文字,让图片变成2进制点阵最好. 对于彩色背景的验证码:每个像素都可以放在一个5维的空间里,这5个维度分别是,X,Y,R,G,B,也就是像素的坐标和颜色,在计算机图形学中,有很多种色彩空间,最常用的比如RGB,印刷用的CYMK,还有比较少见的HSL或者HSV,每种色彩空间的维度都不一样,但是可以通过公式互相转换.

【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏

[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些其他辅助功能,比如:浏览器搜索结果展示.关键字高亮.浏览器可点击等: 二.二营长,把我的意大利...............代码,呈上来,给友军看看 1.手机投屏: 方式很多,这里只列举几个比较常用.且自己感觉简单易用的: A.IOS:局域网内,可以利用iTools里的苹果录屏大师(airplay)

python爬虫解决百度贴吧登陆验证码问题

作为贴吧重度用户,写了个贴吧爬虫脚本 抄了一些别人的代码,记得有个验证码解决的,但是忘了链接了,今天终于自己解决了. 首先要让登陆需要验证码,不停地登陆就好了...度娘很快会加上验证码大法的...需要验证码的情况下,直接登陆返回的错误信息是error=257 打开贴吧首页选择登陆,弹出验证码,找到验证码的链接是 右键在新标签页中打开 注意到链接是 https://passport.baidu.com/cgi-bin/genimage?jxIcaptchaservice+一串字母数字 这个时候根据

Python爬虫实例 动态ip+抓包+验证码自动识别

最近出于某种不可描述的原因,需要爬一段数据,大概长这样: 是一个价格走势图,鼠标移到上面会显示某个时刻的价格,需要爬下来日期和价格. 第一步肯定先看源代码,找到了这样一段: 历史记录应该是从这个iframe发过来的,点进去看看,找到这样一段: 可以大概看出来是通过get一个json文件来获取数据,我们要的东西应该就在这个json里面.打开浏览器的开发者工具(F12),一个个看发过来的json,发现这样一个: 打开看看: ok,我们找到了想要的东西了,接下来分析下这个url,发现一些规律,可以直接