Python基于内置库pytesseract实现图片验证码识别功能


Posted in Python onFebruary 24, 2020

这篇文章主要介绍了Python基于内置库pytesseract实现图片验证码识别功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

环境准备:

1、安装Tesseract模块

git文档地址:https://digi.bib.uni-mannheim.de/tesseract/

下载后就是一个exe安装包,直接右击安装即可,安装完成之后,配置一下环境变量,编辑 系统变量里面 path,添加下面的安装路径:

2、如果您想使用其他语言,请下载相应的数据,(我们只做中文,暂时下载一个中文的文字训练数据就可以) ,然后将.traineddata文件复制到'tessdata'目录中。C:\Program Files (x86)\Tesseract-OCR\tessdata

3、配置环境变量:

编辑 系统变量里面 path,添加下面的安装路径:C:\Program Files (x86)\Tesseract-OCR

cmd命令模式下测试是否安装成功:

tesseract test.jpg text -l chi_sim

4、安装python的第三方库:

pip install pillow #一个python的图像处理库,pytesseract依赖

pip install pytesseract

5、找到pytesseract的安装包,C:\Python34\Lib\site-packages\pytesseract,编辑pytesseract.py文件(此步骤必须做,否则运行代码时会报错):

tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

代码实例:

简单验证码代码:

import requests
from PIL import Image
import pytesseract

'''
简单验证码
'''
# 验证码地址
url = "https://www.renrendai.com/passport/index/captcha?time=1551682134111"
response = requests.get(url).content

#将图片写入文件
with open('yzm.png','wb') as f:
  f.write(response)
f.close()

'''识别验证码'''
#第一步:通过内置模块PIL打开文件
pic = Image.open('yzm.png')
#第二步:识别图片中的内容
pic_str = pytesseract.image_to_string(pic)
print("验证码识别结果为:",pic_str)

百度文库图片文档的识别:

#下载图片
baidu_url = "https://wkretype.bdimg.com/retype/zoom/4127ed79a26925c52cc5bf99?pn=2&o=jpg_6&md5sum=9cdc209bc34a40ed774f7e14c0be59c4&sign=5dbcb28bf1&png=11238-22475&jpg=41808-117940"
baidu_pic = requests.get(baidu_url).content

#图片写入文件
with open('baidu_pic.jpg','wb') as f:
  f.write(baidu_pic)
f.close()

#识别验证码
baidu_img = Image.open('baidu_pic.jpg')
baidu_img_str = pytesseract.image_to_string(baidu_img,lang="chi_sim")
print('百度文库图片内容为:',baidu_img_str)

复杂的验证码,直接识别不了,可以使用超级鹰的第三方接口,如有需要,自己进行账号的注册,这里直接贴代码喽:

from chaojiying import Chaojiying

chaojiying_url= "http://www.chaojiying.com/include/code/code.php?u=1"
response = requests.get(chaojiying_url).content

with open('rryz.png','wb') as f:
  f.write(response)
f.close()

#读取文件内容
with open('rryz.png','rb') as f:
  pic1 = f.read()

#调用第三方打码平台接口识别验证码
yz = Chaojiying(username='*****', password='****', soft_id='****')

res = yz.post_pic(pic1,codetype='1902').get('pic_str') #1902 验证码类型
print('识别的结果:',res)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python结合opencv实现人脸检测与跟踪
Jun 08 Python
python函数形参用法实例分析
Aug 04 Python
python抓取并保存html页面时乱码问题的解决方法
Jul 01 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
Python实现将照片变成卡通图片的方法【基于opencv】
Jan 17 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
python实现猜拳游戏
Mar 04 Python
Python 绘制可视化折线图
Jul 22 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
python实现随机加减法生成器
Feb 24 #Python
Python拼接字符串的7种方式详解
Mar 19 #Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 #Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 #Python
python绘制动态曲线教程
Feb 24 #Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 #Python
Windows系统下pycharm中的pip换源
Feb 23 #Python
You might like
php设计模式之单例模式使用示例
2014/01/20 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
php与js的区别是什么
2013/08/05 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
Unix/Linux开发面试题
2016/08/16 面试题
英语专业毕业个人求职自荐信
2013/09/21 职场文书
安全资料员岗位职责
2013/12/14 职场文书
简单的辞职信范文
2014/01/18 职场文书
开展创先争优活动总结
2014/08/28 职场文书
售房委托书
2014/08/30 职场文书
小学生反邪教心得体会
2016/01/15 职场文书