python简单验证码识别
在学习python通过接口自动登录网站时,用户名密码、cookies、headers都好解决但是在碰到验证码这个时就有点棘手了;于是通过网上看贴,看官网完成了对简单验证码的识别,如果是复杂的请看大神的贴这里解决不了;
以上两张为网站的上比较简单的验证码,没有加复杂的干扰线也没有对字体进行弯曲;
识别的代码用到的python模块有pytesseract,PIL;pytesseract在win下需要tesseract-ORC支持,这个需要上网下载安装,并在win的系统环境变量下配置安装路径,运行tesseract –v 显示当前tesseract版本信息表示设置安装正常
以下是识别验证码代码:
import pytesseract
from PIL import Image def getcode(image):
image = Image.open(image)
#image.show() #查看打开的验证码
im = image.convert("L") #把图片转成L单通道,这样像素点的值在[0~255]之前,区别于普通的RGC图片为三通道像素点的值在[0~255,0~255,0~255] #把图片的白色边框设置为黑色,如果没有可认忽略这个步骤
#1.把图片上下两条边框设置为黑色
for x in range(im.size[0]):
im.putpixel((x,0),0)
im.putpixel((x,im.size[1] - 1),0)
#2.把图片左右两条边框设置为黑色
for y in range(im.size[1]):
im.putpixel((0,y),0)
im.putpixel((im.size[0] - 1,y),0) #将图片色像素值在150以上的设置为白色,否则为黑色
for i in range(im.size[0]):
for j in range(im.size[1]):
if(im.getpixel((i,j)) > 150):
im.putpixel((i,j),255)
else:
im.putpixel((i,j),0) #im.show() #查看打开的验证码
#im.save("xxxxxxxxxxxx") #保存图片
code = pytesseract.image_to_string(im)
print(code) if __name__ == '__main__':
getcode("图片的路径")
运行结果:
*注意*如果有边框的图片在处理时没有外理边框,得到的图片如下,在程序识别时就会影响准确度:
以下是作者对手机拍的一张图片直接识别和处理后识别的如果
手机图片:
直接识别:(我们看到程序无法识别)
用代码处理后识别:
python简单验证码识别的更多相关文章
- 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...
- 简单验证码识别(matlab)
简单验证码识别(matlab) 验证码识别, matlab 昨天晚上一个朋友给我发了一些验证码的图片,希望能有一个自动识别的程序. 1474529971027.jpg 我看了看这些样本,发现都是很规则 ...
- HNUSTOJ-1696 简单验证码识别(模拟)
1696: 简单验证码识别 时间限制: 2 Sec 内存限制: 128 MB 提交: 148 解决: 44 [提交][状态][讨论版] 题目描述 验证码是Web系统中一种防止暴力破解的重要手段.其 ...
- 基于TensorFlow的简单验证码识别
TensorFlow 可以用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 生成验证码 首先生成验证码,这里使用 Pyth ...
- Python3 简单验证码识别思路及实例
1.介绍 在爬虫中经常会遇到验证码识别的问题,现在的验证码大多分计算验证码.滑块验证码.识图验证码.语音验证码等四种.本文就是识图验证码,识别的是简单的验证码,要想让识别率更高, 识别的更加准确就需要 ...
- Python - PIL-pytesseract-tesseract验证码识别
N天前实现了简单的验证识别,这玩意以前都觉得是高大上的东西,一直没有去研究,这次花了点时间研究了一下,当然只是一些基础的东西,高深的我也不会,分享一下给大家吧. 关于python验证码识别库,网上主要 ...
- windows下简单验证码识别——完美验证码识别系统
此文已由作者徐迪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 讲到验证码识别,大家第一个可能想到tesseract.诚然,对于OCR而言,tesseract确实很强大,自带 ...
- Python之验证码识别功能
Python之pytesseract 识别验证码 1.验证码来一个 2.适合什么样的验证码呢? 只能识别简单.静态.无重叠.只有数字字母的验证码 3.实际应用:模拟人工登录.页面内容识别.爬虫抓取信息 ...
- 关于利用python进行验证码识别的一些想法
转载:@小五义http://www.cnblogs.com/xiaowuyi 用python加“验证码”为关键词在baidu里搜一下,可以找到很多关于验证码识别的文章.我大体看了一下,主要方法有几类: ...
随机推荐
- 阿sa
# jieba库概述 .jieba是优秀的中文分词第三方库.需要额外安装. pip install jieba # jieba库三种分词模式 精确模式:把文本精确的切分开,不存在冗余单词. 全模式:把 ...
- IT公司技术博客地址
IT公司技术博客 美团点评技术团队今日头条技术博客Tencent ISUX DesignTGideas-腾讯互动娱乐创意设计团队>AlloyTeam | 腾讯全端 AlloyTeam 团队 Bl ...
- java基础阶段几个必会面试题
摘自:https://www.cnblogs.com/zn19961006/p/11869182.html java基础阶段几个必会面试题 目录 1.说出你对面向对象的理解 在我理解,面向对象是向现实 ...
- RESTful API是什么?
1. REST 是Repersentational State Transfer的缩写 翻译为"表述性状态传递",那么什么是表述性状态传递呢?为了理解这个词语,我们从"R ...
- SpringMVC工作原理的介绍
1.用户向服务器发送请求,请求被Spring前端控制Servlet DispatcherServlet捕获 2.DispatcherServlet对请求URL进行解析,得到请求资源标识符(URL).然 ...
- [SQL]学习中遇到的错误
1.中英文模式切换 查找语句中不能出现中文字符!!!
- 菜鸟的周末_Python试水
搭建开发环境 下载安装包,打开官网,选择最新Windows Installer版本下载. 运行安装包,勾选Add Python 3.8 to Path,选择Install Now,等待安装完成,直接关 ...
- Python基于回溯法解决01背包问题实例
Python基于回溯法解决01背包问题实例 这篇文章主要介绍了Python基于回溯法解决01背包问题,结合实例形式分析了Python回溯法采用深度优先策略搜索解决01背包问题的相关操作技巧,需要的朋友 ...
- makeObjectsPerformSelector的使用
NSArray 类定义的方法: makeObjectsPerformSelector:这是数组用的方法,类似于for循环. makeObjectsPerformSelector:@selector(m ...
- docker 的安装和镜像
一.docker的 安装 : 第一种: yum -y install docker systemctl start docker.service systemctl status docker 第二种 ...