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提取html文件中的特定数据的实现代码
Mar 24 Python
python中os操作文件及文件路径实例汇总
Jan 15 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
TensorFlow的权值更新方法
Jun 14 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
PyQt5实现简易计算器
May 30 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
python 变量初始化空列表的例子
Nov 28 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
Feb 25 Python
Python使用多进程运行含有任意个参数的函数
May 02 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 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
2020最新CPU的性能排名
2020/04/02 数码科技
PHP执行速率优化技巧小结
2008/03/15 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
Pytorch to(device)用法
2020/01/08 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
大专应届生个人的自我评价
2013/11/21 职场文书
个人贷款担保书
2014/04/01 职场文书
英语故事演讲稿
2014/04/29 职场文书
房屋租房协议书范本
2014/12/04 职场文书
python中的getter与setter你了解吗
2022/03/24 Python