欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

全程记录 Python web 开发验证码自动识别的程序,项目实战!

程序员文章站 2022-07-06 12:34:26
记述 本次分享教程之前,有些许朋友通过私信于我说能不能不要只重视Python源代码部分,想让我把整个开发过程记录下来。为了让大家都能够体验到我当时实现的流程,我记录了这个项目的完整实现过程。 正文 开发此Python脚本,你无需会Python算法与图像处理的认识。 图像基本上是一个矩阵,像素作为单独 ......

记述

本次分享教程之前,有些许朋友通过私信于我说能不能不要只重视Python源代码部分,想让我把整个开发过程记录下来。为了让大家都能够体验到我当时实现的流程,我记录了这个项目的完整实现过程。

正文

开发此Python脚本,你无需会Python算法与图像处理的认识。

图像基本上是一个矩阵,像素作为单独的单元格。

彩色图像具有每个像素的元组(红,绿,蓝)值,灰度图像具有单个值,并且一般图像中每个像素值的范围在(0,255)。

随意寻找一个网页的登录界面:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

我们可以看到这样的6位验证码:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

对验证码进行分析:全程记录 Python web 开发验证码自动识别的程序,项目实战!

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

我们先下载一个图片验证码,利用工具以二进制可视化图像,0位黑、1为白。

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

图片尺寸是45*180,每一个字符都会被分配一个30像素的空间来拟合,实现它们均匀分开。

第一步:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

第二步:

找到python的PIL库、Image模块,毕竟操作只是裁剪然后把图像当做矩阵加载。

裁剪图像的Python语法:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

裁剪第一个字符python语法:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

被裁剪的图片:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

第三步:

把它放在一个循环里面,编写一个python脚本,从这个网页获取500个验证码图像,然后把所有被裁剪的字符保存到一个文件夹中。

第四步:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

代码:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

第五步:

这样子还是太模糊,把Python代码利用到原始图像上后加强清晰度:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

处理后的图片中不是纯黑色的像素(0)被消除,穿插图片里的线条也是。

这个 python web 项目里上面的方法被称为图像处理中的阈值处理。

第五步:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

Python代码如下:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

Python代码:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

整个Python项目成果:结果如下:

全程记录 Python web 开发验证码自动识别的程序,项目实战!

 

由此可见,验证码识别正确,项目实战成功!