python爬虫验证码的识别_Python爬虫识别验证码
Python爬虫识别验证码
安装tesserocr
pip3 install tesserocr pillow
识别测试
将验证码图片放到项目根目录下,用tesserocr库识别该验证码,代码如下所示:
import locale
locale.setlocale(locale.LC_ALL, 'C')
import tesserocr
from PIL import Image
image = Image.open('code.jpg')
result = tesserocr.image_to_text(image)
print(result)
0
1
2
3
4
5
6
7
importlocale
locale.setlocale(locale.LC_ALL,'C')
importtesserocr
fromPILimportImage
image=Image.open('code.jpg')
result=tesserocr.image_to_text(image)
print(result)
新建了一个Image对象,调用了tesserocr的image_to_text( )方法。传入该Image对象即可完成识别,实现过程非常简单,结果如下:
识别的结果和实际结果有偏差,这是因为验证码内的多余线条干扰了图片的识别。
另外,tesserocr还有一个更加简单的方法,这个方法可以直接将图片文件转为字符串,代码如下:
import locale
locale.setlocale(locale.LC_ALL, 'C')
import tesserocr
from PIL import Image
print(tesserocr.image_to_text('code.jpg'))
0
1
2
3
4
5
importlocale
locale.setlocale(locale.LC_ALL,'C')
importtesserocr
fromPILimportImage
print(tesserocr.image_to_text('code.jpg'))
不过这种方法的识别效果不如上一种的好。
对于上面的图片,我们可以看到其实并没有完全识别正确,所以我们需要对图像作进一步的处理,如灰度转换、二值化等操作。
我们可以利用Image对象的convert( )方法参数传入L,即可将图片转化为灰度图像,代码如下:
image = Image.convert('L')
image.show()
0
1
image=Image.convert('L')
image.show()
传入1即可将图片进行二值化处理,如下所示:
image = Image.convert('1')
image.show()
0
1
image=Image.convert('1')
image.show()
我们还可以指定二值化的阈值。上面的方法采用的是默认阈值127。不过我们不能直接转化原图,要将原图先转化为灰度图像,然后再指定二值化阈值,代码如下:
import locale
locale.setlocale(locale.LC_ALL, 'C')
import tesserocr
from PIL import Image
image = Image.open('code.jpg')
image = image.convert('L')
threshold = 160
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
image = image.point(table, '1')
image.show()
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
importlocale
locale.setlocale(locale.LC_ALL,'C')
importtesserocr
fromPILimportImage
image=Image.open('code.jpg')
image=image.convert('L')
threshold=160
table=[]
foriinrange(256):
ifi
table.append(0)
else:
table.append(1)
image=image.point(table,'1')
image.show()
在这里,变量threshold代表二值化阈值,阈值设置为160,之后我们来看看我们的结果:
我们可以看到现在的二维码就比较方便我们进行识别了;那么对于一些有干扰的图片,我们做一些灰度和二值化处理,这会提高图片识别的正确率。
python爬虫验证码的识别_Python爬虫识别验证码相关推荐
- python实现验证码识别_python实现图文验证码识别
一,验证码类别 以下为网站常见的验证码: 1.图片验证码:常见的为英文.数字.汉字,计算题等类型的验证码. 2.行为式验证码: 常见的有滑动拼图,文字点选,图标点选,推理拼图等类型的验证码. 3.手机 ...
- python爬虫基础项目教程_Python爬虫开发与项目实战_Python教程
资源名称:Python爬虫开发与项目实战 内容简介: 随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语 ...
- python爬虫模拟与思考_Python爬虫之模拟知乎登录
昨天受邀在 CSDN 微信群做了一次 Python 技术分享,主题是<用Python模拟知乎登录>,效果非常不错,发现越来越多的人加入到了 Python 阵容中. 经常写爬虫的都知道,有些 ...
- python爬虫微博评论图片_python爬虫爬取微博评论
原标题:python爬虫爬取微博评论 python爬虫是程序员们一定会掌握的知识,练习python爬虫时,很多人会选择爬取微博练手.python爬虫微博根据微博存在于不同媒介上,所爬取的难度有差异,无 ...
- python爬取收费素材_Python爬虫练习:爬取素材网站数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 在工作中的电子文案.ppt,生活中的新闻.广告,都离不开大量的素材,而素材 ...
- python爬虫抓取房产_Python爬虫实战(3):安居客房产经纪人信息采集
1, 引言 Python开源网络爬虫项目启动之初,我们就把网络爬虫分成两类:即时爬虫和收割式网络爬虫.为了使用各种应用场景,该项目的整个网络爬虫产品线包含了四类产品,如下图所示: 本实战是上图中的&q ...
- python基础知识500题_python爬虫基础知识点整理
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...
- python爬虫爬取图片代码_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...
Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...
- 基于python爬虫的论文标题_python爬虫——简单论文标题检索-Go语言中文社区
有趣的爬虫,独有的意义召唤着我去学习,去尝试.最近有感于每天对于论文的收集,感觉自己的收集速度赶不上论文的更新速度,同时对于自己想找到的论文的收集比较麻烦.因此,学习用python写一个很简单的爬虫, ...
- python打开网页被禁止_Python爬虫被禁?看看是不是这几个问题
Python爬虫在网上完成网站的信息采集时,常常出现无缘无故的ip被禁的情况,正爬取呢就没法继续了,造成日常业务也没办法正常进行了,整个人都不好了呢.一部分人完全不清楚被禁的原因,这么简单的就给禁掉了 ...
最新文章
- 看看那些双车中接力装置
- 【错误记录】Android Studio 编译报错 ( VirtualApp 编译 NDK 报错 | Error:A problem occurred configuring project ‘: )
- java基础之堆、栈、方法区 继承 多态
- android根据拍摄url获取格式,Android如何通过URI获取文件路径示例代码
- 刻奇·缩减·博客——当今中国博客文化之批判
- Linux学习笔记---使用BusyBox创建根文件系统(一)
- if--(else)语句,getchar()和putchar()、、||、!逻辑运算符
- nyoj 破门锁(水题)
- 本地邮件服务器 易邮 使用
- C语言运算符优先级表详解
- JAVA_判断日期是否为工作日(排除节假日和调整周末上班)
- acp计算机编程大赛时间,2021年ACP考试时间安排 - 希赛网
- 【激光雷达】5 款免费 LiDAR 软件工具
- 契约精神,姜戈里的医生为什么要杀奴隶主 (标题有剧透),及编程等乱七八糟的
- 我的第一个Android应用BMI-深入浅出Android
- 青龙面板+nolan-依赖+拉库+企业微信推送(手把手喂饭,各版本通用)
- 心肺复苏,“星火急救”推广三年,也是深圳民生微实事项目
- 浅析物联网行业市场最新发展趋势
- 【刷题打卡】day7-BFS
- 实训三:文件系统命令及vi编辑
热门文章
- 阿里云移动端播放器高级功能---截图和音频波形 1
- 阿里专家杜万:Java响应式编程,一文全面解读
- DRDS到MaxCompute(原ODPS)数据归档性能优化测试
- 追踪 Kubernetes 中的网络流量
- 亚马逊云科技张文翊:引领企业可持续发展的绿色云端之旅
- 128核云原生新力作:Ampere® Altra® Max性能参数公布,提升50%!
- Cloud一分钟 | 谷歌投资的AR云平台开发商Blue Vision Labs,将由美版滴滴Lyft收购
- linux如何设置mac快捷键,在Ubuntu上使用macOS的快捷键
- mybatis批量插入oracle大量数据记录性能问题解决
- Linux 主机信息 总览