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中列表(list)操作方法汇总
Aug 18 Python
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
基于wxpython开发的简单gui计算器实例
May 30 Python
Python3读取Excel数据存入MySQL的方法
May 04 Python
pandas重新生成索引的方法
Nov 06 Python
python实现爬山算法的思路详解
Apr 09 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 Python
基于python实现监听Rabbitmq系统日志代码示例
Nov 28 Python
python 实现端口扫描工具
Dec 18 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脚本
2006/11/26 PHP
php 归并排序 数组交集
2011/05/10 PHP
php 删除cookie方法详解
2014/12/01 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
详解python做UI界面的方法
2019/02/27 Python
python扫描线填充算法详解
2020/02/19 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
python db类用法说明
2020/07/07 Python
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
年度考核自我鉴定
2013/11/09 职场文书
期末自我鉴定
2014/01/23 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL
Python创建SQL数据库流程逐步讲解
2022/09/23 Python