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

  

这篇文章主要介绍了Python基于内置库pytesseract实现图片验证码识别功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  

环境准备:

  

1,安装超正方体模块

  

git文档地址:https://digi.bib.uni-mannheim.de/tesseract/

  

下载后就是一个exe安装包,直接右击安装即可,安装完成之后,配置一下环境变量,编辑系统变量里面路径,添加下面的安装路径:

  

2,如果您想使用其他语言,请下载相应的数据,(我们只做中文,暂时下载一个中文的文字训练数据就可以),然后将。traineddata文件复制到‘tessdata目录中c: \程序文件(x86) \ Tesseract-OCR \ tessdata

  

3,配置环境变量:

  

编辑系统变量里面路径,添加下面的安装路径:C: \程序文件(x86) \ Tesseract-OCR

  

cmd命令模式下测试是否安装成功:
  

  

超正方体test.jpg文本- l chi_sim

  

4,安装python的第三方库:

        pip安装枕头#一个python的图像处理库,pytesseract依赖   pip安装pytesseract      

5,找到pytesseract的安装包,C: \ Python34 \ Lib \网站\ pytesseract,编辑pytesseract.py文件(此步骤必须做,否则运行代码时会报错):

  

tesseract_cmd=' C:/程序文件(x86)/Tesseract-OCR/tesseract.exe”

  

代码实例:

  

简单验证码代码:
  

        进口的要求   从公益诉讼导入图像   进口pytesseract      “‘   简单验证码   “‘   #验证码地址   url=" https://www.renrendai.com/passport/index/captcha& # 63;时间=1551682134111 "   响应=requests.get .content (url)      #将图片写入文件   张开(“yzm.png”,“世界银行”)f:   f.write(响应)   f.close ()      “‘识别验证码”   #第一步:通过内置模块公益诉讼打开文件   照片=Image.open (“yzm.png”)   #第二步:识别图片中的内容   pic_str=pytesseract.image_to_string(图片)   打印(“验证码识别结果为:“,pic_str)      

百度文库图片文档的识别:
  

        #下载图片   baidu_url=" https://wkretype.bdimg.com/retype/zoom/4127ed79a26925c52cc5bf99& # 63; pn=2, o=jpg_6& md5sum=9 cdc209bc34a40ed774f7e14c0be59c4&标志=5 dbcb28bf1& png=11238 - 22475, jpg=41808 - 117940”   baidu_pic=requests.get .content (baidu_url)      #图片写入文件   张开(“baidu_pic.jpg”,“世界银行”)f:   f.write (baidu_pic)   f.close ()      #识别验证码   baidu_img=Image.open (“baidu_pic.jpg”)   baidu_img_str=pytesseract.image_to_string (baidu_img lang=癱hi_sim”)   打印(“百度文库图片内容为:“,baidu_img_str)      

复杂的验证码,直接识别不了的,可以使用超级鹰的第三方接口,如有需要,自己进行账号的注册,这里直接贴代码喽:
  

        从chaojiying进口chaojiying      chaojiying_url=" http://www.chaojiying.com/include/code/code.php& # 63; u=1”   响应=requests.get .content (chaojiying_url)      张开(“rryz.png”,“世界银行”)f:   f.write(响应)   f.close ()      #读取文件内容   张开(‘rryz.png’,‘rb) f:   pic1=f.read ()      #调用第三方打码平台接口识别验证码   yz=Chaojiying(用户名=? * * * *”,密码=* * * *,soft_id=* * * *)      res=yz.post_pic (pic1 codetype=' 1902 ') . get (pic_str) # 1902验证码类型   打印(“识别的结果:“,res)      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

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