Python基于内置库pytesseract实现图片验证码识别功能

作者:奔奔-武 时间:2022-05-26 07:40:53 

这篇文章主要介绍了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)

来源:https://www.cnblogs.com/benben-wu/p/10487998.html

标签:Python,库,pytesseract,图片,验证码
0
投稿

猜你喜欢

  • Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】

    2022-06-12 22:00:40
  • 微软建议的ASP性能优化28条守则(6)

    2008-02-29 11:43:00
  • python遍历文件夹,指定遍历深度与忽略目录的方法

    2022-12-28 23:57:27
  • python制作的天气预报小工具(gui界面)

    2022-04-03 17:20:42
  • 详解Python类和对象内容

    2021-03-12 23:38:55
  • Python写的Tkinter程序屏幕居中方法

    2022-08-03 17:53:07
  • MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函数的使用

    2024-01-13 19:07:17
  • python3.8+django2+celery5.2.7环境准备(python测试开发django)

    2022-08-19 06:17:14
  • Python常用内置函数总结

    2022-06-06 06:02:43
  • python arcpy练习之面要素重叠拓扑检查

    2021-12-24 12:41:42
  • 一文搞懂MySQL预编译

    2024-01-25 21:52:21
  • Python中and和or如何使用

    2022-04-27 18:01:49
  • 基于telepath库实现Python和JavaScript之间交换数据

    2023-05-24 04:20:39
  • SQL Server 2000 清理日志精品图文教程

    2024-01-18 17:16:55
  • 用Python实现读写锁的示例代码

    2022-09-19 13:51:01
  • python的函数最详解

    2022-02-15 17:05:05
  • Javascript验证方法大全

    2024-04-17 10:19:44
  • 一文详解golang延时任务的实现

    2024-03-23 16:00:16
  • 白鸦:Design IT. (1),迭代的设计

    2008-08-27 21:11:00
  • PyQt5 designer 页面点击按钮跳转页面实现

    2023-02-24 14:12:48
  • asp之家 网络编程 m.aspxhome.com