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使用Queue在多个子进程间交换数据的方法
Apr 18 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
Python实现中一次读取多个值的方法
Apr 22 Python
python 自动批量打开网页的示例
Feb 21 Python
python输入多行字符串的方法总结
Jul 02 Python
python生成特定分布数的实例
Dec 05 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
python glom模块的使用简介
Apr 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/11/06 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
Python 中pandas.read_excel详细介绍
2017/06/23 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
浅析Python 读取图像文件的性能对比
2019/03/07 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
Python列表如何更新值
2020/05/27 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
应届生求职推荐信
2013/10/28 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
大学班级计划书
2014/04/29 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
体育教师教学随笔
2015/08/15 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS