使用python内置库pytesseract实现图片验证码的识别

使用python内置库pytesseract实现图片验证码的识别,第1张

概述环境准备: 1、安装Tesseract模块 git文档地址:https://digi.bib.uni-mannheim.de/tesseract/ 下载后就是一个exe安装包,直接右击安装即可,安装完

环境准备:

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'

代码实例:  

简单验证码代码:
  
 1 import requests 2 from PIL import Image 3 import PyTesseract 4  5 ''' 6 简单验证码 7 ''' 8 # 验证码地址 9 url = "https://www.renrendai.com/passport/index/captcha?time=1551682134111"10 response = requests.get(url).content11 12 #将图片写入文件13 with open('yzm.png','wb') as f:14     f.write(response)15 f.close()16 17 '''识别验证码'''18 #第一步:通过内置模块PIL打开文件19 pic = Image.open('yzm.png')20 #第二步:识别图片中的内容21 pic_str = PyTesseract.image_to_string(pic)22 print("验证码识别结果为:",pic_str)

 

百度文库图片文档的识别
 1 #下载图片 2 baIDu_url = "https://wkretype.bdimg.com/retype/zoom/4127ed79a26925c52cc5bf99?pn=2&o=jpg_6&md5sum=9cdc209bc34a40ed774f7e14c0be59c4&sign=5dbcb28bf1&png=11238-22475&jpg=41808-117940" 3 baIDu_pic = requests.get(baIDu_url).content 4  5 #图片写入文件 6 with open('baIDu_pic.jpg','wb') as f: 7     f.write(baIDu_pic) 8 f.close() 9 10 #识别验证码11 baIDu_img = Image.open('baIDu_pic.jpg')12 baIDu_img_str = PyTesseract.image_to_string(baIDu_img,lang="chi_sim")13 print('百度文库图片内容为:',baIDu_img_str)
复杂的验证码,直接识别不了,可以使用超级鹰的第三方接口,如有需要,自己进行账号的注册,这里直接贴代码喽:
 1 from chaojiying import Chaojiying 2  3 chaojiying_url= "http://www.chaojiying.com/include/code/code.PHP?u=1" 4 response = requests.get(chaojiying_url).content 5  6 with open('rryz.png','wb') as f: 7     f.write(response) 8 f.close() 9 10 #读取文件内容11 with open('rryz.png','rb') as f:12     pic1 = f.read()13 14 #调用第三方打码平台接口识别验证码15 yz = Chaojiying(username='*****',password='****',soft_ID='****')16 17 res = yz.post_pic(pic1,codetype='1902').get('pic_str')  #1902 验证码类型18 print('识别的结果:',res)
 
 

 

 

  

 

    

 

总结

以上是内存溢出为你收集整理的使用python内置库pytesseract实现图片验证码的识别全部内容,希望文章能够帮你解决使用python内置库pytesseract实现图片验证码的识别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1198536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存