千家信息网

python怎么通过pillow识别动态验证码

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要讲解了"python怎么通过pillow识别动态验证码",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python怎么通过pillow识别动
千家信息网最后更新 2025年01月31日python怎么通过pillow识别动态验证码

这篇文章主要讲解了"python怎么通过pillow识别动态验证码",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python怎么通过pillow识别动态验证码"吧!

生活中,我们在登录微博,邮箱的时候,常常会碰到验证码。在工作时,如果想要爬取一些数据,也会碰到验证码的阻碍。本次试验将带领大家认识验证码的一些特性,并利用 Python 中的 pillow 库完成对验证码的破解。

环境配置

  • Python 2.7

  • Pillow 模块

有个问题就是python2.7目前只能让使用到2020年,现在再利用2.7下载好多东西都会报错,也该是时候更新到python3.7了,本文还是依赖于2.7的环境。

识别验证码的代码下载地址:python_captcha_jb51.rar

安装 pillow(PIL)库

sudo apt-get updatesudo apt-get install python-dev libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tksudo pip2 install pillow

识别过程

将验证码文件python_captcha下载到运行目录下,解压后,在 python_captcha 目录新建 crack.py 文件,进行编辑。

#-*- coding:utf8 -*-from PIL import Imageim = Image.open("captcha.gif")#(将图片转换为8位像素模式)im.convert("P")# 打印颜色直方图print im.histogram()

输出:

颜色直方图的每一位数字都代表了在图片中含有对应位的颜色的像素的数量。

每个像素点可表现 256 种颜色,你会发现白点是最多(白色序号 255 的位置,也就是最后一位,可以看到,有 625 个白色像素)。红像素在序号 200 左右,我们可以通过排序,得到有用的颜色。

his = im.histogram()values = {}for i in range(256):    values[i] = his[i]for j,k in sorted(values.items(),key=lambda x:x[1],reverse = True)[:10]:    print j, k

输出:

我们得到了图片中最多的 10 种颜色,其中 220 与 227 才是我们需要的红色和灰色,可以通过这一讯息构造一种黑白二值图片。

#-*- coding:utf8 -*-from PIL import Imageim = Image.open("captcha.gif")im.convert("P")im2 = Image.new("P",im.size,255)for x in range(im.size[1]):    for y in range(im.size[0]):        pix = im.getpixel((y,x))        if pix == 220 or pix == 227: # these are the numbers to get            im2.putpixel((y,x),0)im2.show()

输出:

局限及遇到的问题

#-*- coding:utf8 -*-

此行命令流在windows环境下运行会报错,具体原因可参考python(2)中文编码乱码问题;

该命令流有很大的局限性,识别的动态代买也只有此类:

感谢各位的阅读,以上就是"python怎么通过pillow识别动态验证码"的内容了,经过本文的学习后,相信大家对python怎么通过pillow识别动态验证码这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

验证 颜色 动态 像素 图片 问题 环境 学习 输出 内容 可以通过 命令 就是 序号 文件 时候 白色 目录 直方图 会报 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云改数转的战略支撑是网络安全 三公开船软件开发 度度科技互联网公司 这么多对日软件开发的招聘 校园网络安全制服 佛山市网络安全监察大队 金山区品牌软件开发价格咨询 池州多场景视频系统服务器 读什么大学能做软件开发 应用软件开发过程 时代网络安全心得100字 读取数据库中图片 数据库中整型可以为null吗 mysql数据库枚举 宽带电视服务器域名解析错误 如何应对未来的网络安全威胁 谷互联网科技 通信网络技术服务的网优服务 广东新一代网络技术分类推广 2017赛季cba数据库 河北宏创网络技术有限公司 联想服务器死机 山东智能软件开发报价 长沙市网络安全特训营 金山区品牌软件开发价格咨询 广东专业服务器散热器生产厂家 泗洪个性化网络技术供应商家 5g网络技术说法正确的是 海南学习软件开发服务商 一个完美的数据库设计需要
0