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删除过期文件的方法
May 29 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
利用python实现简单的循环购物车功能示例代码
Jul 05 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
几种实用的pythonic语法实例代码
Feb 24 Python
python中字符串内置函数的用法总结
Sep 13 Python
Python二叉树的镜像转换实现方法示例
Mar 06 Python
python地震数据可视化详解
Jun 18 Python
python创建n行m列数组示例
Dec 02 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 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 前一天或后一天的日期
2008/06/28 PHP
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
django表单的Widgets使用详解
2019/07/22 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
nohup的用法
2014/08/10 面试题
建筑施工实习自我鉴定
2013/09/19 职场文书
北大研究生linux应用求职信
2013/10/29 职场文书
离职保密承诺书
2014/05/28 职场文书
施工单位安全责任书
2014/07/24 职场文书
公司合作协议范文
2014/10/01 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
golang正则之命名分组方式
2021/04/25 Golang
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA