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操作gmail实例
Jan 14 Python
Python中字典和集合学习小结
Jul 07 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
解决python中 f.write写入中文出错的问题
Oct 31 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
python类的实例化问题解决
Aug 31 Python
python实现对列表中的元素进行倒序打印
Nov 23 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
Jan 08 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 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
JavaScript去掉空格的方法集合
2010/12/28 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
Python实现类继承实例
2014/07/04 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
django使用html模板减少代码代码解析
2017/12/12 Python
Python中修改字符串的四种方法
2018/11/02 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
Python3运算符常见用法分析
2020/02/14 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
Java如何调用外部Exe程序
2015/07/04 面试题
飘柔洗发水广告词
2014/03/14 职场文书
社团活动总结格式
2014/08/29 职场文书
置业顾问岗位职责
2015/02/09 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技