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实现监控linux性能及进程消耗性能的方法
Jul 25 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
python2.7和NLTK安装详细教程
Sep 19 Python
一百多行python代码实现抢票助手
Sep 25 Python
浅谈python3.6的tkinter运行问题
Feb 22 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
Feb 22 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
Apr 16 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
May 21 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
python温度转换华氏温度实现代码
Dec 06 Python
python 利用panda 实现列联表(交叉表)
Feb 06 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实现逐行删除文件右侧空格的方法
2015/12/25 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
react redux入门示例
2018/04/19 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
简单分析python的类变量、实例变量
2019/08/23 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
高一数学教学反思
2014/02/07 职场文书
《学棋》教后反思
2014/04/14 职场文书
门面房租房协议书
2014/12/01 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
小浪底导游词
2015/02/12 职场文书
大学生求职信怎么写
2015/03/19 职场文书
小学教师教学随笔
2015/08/14 职场文书
初中英语教学随笔
2015/08/15 职场文书
浅谈Web Storage API的使用
2021/06/23 Javascript