1.简介

#  -*-coding:utf8 -*-
#图形验证码识别技术
'''
阻碍我们爬虫的,有时候是在登录或者请求一些数据时候的图形验证码。因此这里我们讲解
一种能将图片翻译成文字的技术。将图片翻译成文字一般被称为光学文字识别,简写为OCR。
实现OCR的库不是很多,特别是开源的。因为这块存在一定的技术壁垒(需要大量的数据、算法、
机器学习、深度学习知识等),并且如果做好了具有很高的商业价值。因此开源的比较少。这里
介绍一个比较优秀的图像识别开源库:Tesseract

Tesseract
Tesseract是一个OCR库,目前由谷歌赞助。Tesseract是目前公认最优秀、最准确的开源OCR库,
它具有很高的识别度,也具有很高的灵活性,它可以通过训练识别任何字体。

安装:
windows系统:
    在以下链接下载可执行文件,然后一顿点击下一步安装即可。(放在不需要权限的纯文本英文路径下)
    https://github.com/tesseract-ocr/
linux系统:
    可以在以下链接下载源码自行编译:
    https://github.com/tesseract-ocr/tesseract/wiki/Compiling
mac系统:
    用Homebrew即可方便安装:
    brew install tesseract

设置环境变量:
windows下要把tesseract.exe所在的路径添加到PATH环境变量中
linux和mac在安装的时候默认已经设置好了
'''

2.在终端下识别图片

#  -*-coding:utf8 -*-
import pytesseract
from PIL import Image

#加了路径,后面还要指定文件名
pytesseract.pytesseract.tesseract_cmd=r'D:\tesseract\Tesseract-OCR\tesseract.exe'
#打开a图片,这个识别的是英文
# image=Image.open('2.png')
# text=pytesseract.image_to_string(image)
# print(text)

#指定识别中文
img=Image.open(r'b.png')
text=pytesseract.image_to_string(img,lang='chi_sim')
print(text)

3.在代码下识别图片

#  -*-coding:utf8 -*-

from PIL import Image
import pytesseract
from urllib import request
import time

pytesseract.pytesseract.tesseract_cmd = r'D:\tesseract\Tesseract-OCR\tesseract.exe'

def main():
    url = 'https://passport.lagou.com/vcode/create?from=register&refresh=1513082291955'
    while True:
        request.urlretrieve(url,'captcha.png')
        img=Image.open('captcha.png')
        text=pytesseract.image_to_string(img)
        print(text)
        time.sleep(10)

if __name__ == '__main__':
    main()

最新文章

  1. JAVA 链表操作:单链表和双链表
  2. iOS 真机测试 App installation failed
  3. 旧项目如何切换到Entity Framework Code First
  4. CSS本页写样式
  5. 解决download.msdn.microsoft.com无法正确解析而无法下载的问题
  6. 以雅酷网为实例从技术上说说dedecms的seo优化要注意哪些?
  7. 利用ajax.dll类库文件实现无刷新
  8. 从客户端中检测到有潜在危险的Request.Form值的解决方法
  9. linux下使用libiconv库转码
  10. 关于.net的一些基础知识(二)
  11. SignalR 的跨域支持
  12. 给即将面临Noip的二班同学
  13. 【玩转cocos2d-x之四十】怎样在Cocos2d-x 3.0中使用opengl shader?
  14. 关于Ajax无刷新分页技术的一些研究 c#
  15. iwinfo 的使用
  16. 一文为你详细讲解对象映射库【AutoMapper】所支持场景
  17. 利用Socket 实现多客户端的请求与响应
  18. Spring Boot入门(13)自制音乐平台
  19. MySQL(六)
  20. 下拉框 tree 基于 EasyUi

热门文章

  1. jsp 部署
  2. .net core2.x - 关于工作单元(UnitOfWork) 模式
  3. vs2019 cdkey 秘钥
  4. rpm 安装、卸载软件命令 ——以nginx为例
  5. 一道很经典的 BFS 题
  6. docker 安装mongo
  7. 转:python request属性及方法说明
  8. NOIP-金币
  9. MAC下 mySQL及workbench安装
  10. ECMA Script 6_解构赋值_模式匹配