1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 破解验证码(1) 数字英文验证码

破解验证码(1) 数字英文验证码

时间:2022-02-05 08:53:49

相关推荐

破解验证码(1) 数字英文验证码

前言

做爬虫时,难免会遇到需要通过验证码才能访问网址进行爬取内容,所以需要额外掌握破解验证码的技巧才行。

本文将讲解一个简单的验证码示例来进行演示(由数字或英文组成的验证码

安装环境

pip install Pillowpip install tesserocr
如果用pip install tesserocr安装tesserocr模块失败出现报错,那么换作安装该模块对应的 “whl文件” ,下载地址:/simonflueckiger/tesserocr-windows_build/releases (根据tesseract-ocr(客户端)的版本下载对应的文件)安装命令如下:pip install xxx.whl(后面跟上所下载的whl文件路径)
tesseract-ocr(客户端) 版本下载地址:

https://digi.bib.uni-mannheim.de/tesseract/【本教程用的版本是4.0.0】tesseract-ocr 各版本语言包下载地址:

https://tesseract-ocr.github.io/tessdoc/Data-Files【注意:根据版本下载对应字库】

修改环境变量

安装完tesseract-ocr(客户端)后,到计算机环境变量中添加该软件所在的文件夹,例如:

① “ F:\Tesseract-OCR ” 为该软件的所在文件夹位置

②增加一个TESSDATA_PREFIX变量名,变量值还是刚刚的安装路径 “F:\Tesseract-OCR\tessdata” 这是将语言字库文件夹添加到变量中

实例

解析如下图的验证码:

步骤:

》另存图片

》借助图片处理工具PIL模块,进行图片处理(灰度图片)

》设置阈值,默认阈值为127(根据情况而改)

》借助图片处理工具PIL模块,进行图片处理(二值化处理)

》再用tesserocr模块进行解析

代码如下:

from PIL import Imageimport tesserocrimage = Image.open("1.png")image = image.convert("L")# 转化为灰度图片threshold = 130# 设置阈值my = []for i in range(256):if i < threshold:my.append(0)else:my.append(1)image = image.point(my, "1") # 二值化处理# image.show() #可以打印出图片,供预览result = tesserocr.image_to_text(image)print(result)

解析:

》使用灰度图片,设置阈值,进行二值化处理,最终显示的图片效果如下:

定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果[用0和1表示,0为白,1为黑]

一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群 和 小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。