文章目录

  • OCR图形识别技术:
    • Tesseract:
      • 安装:
        • Windows系统:
        • Linux系统:
        • Mac系统:
        • 设置环境变量:
      • 在命令行中使用tesseract识别图像:
      • 在代码中使用tesseract识别图像:
    • 用`pytesseract`处理某学校的登陆图形验证码:

OCR图形识别技术:

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

Tesseract:

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

安装:

Windows系统:

在以下链接下载可执行文件,然后一顿点击下一步安装即可(放在不需要权限的纯英文路径下):
https://github.com/tesseract-ocr/

Linux系统:

可以在以下链接下载源码自行编译。
https://github.com/tesseract-ocr/tesseract/wiki/Compiling
或者在ubuntu下通过以下命令进行安装:

sudo apt install tesseract-ocr

Mac系统:

Homebrew即可方便安装:

brew install tesseract

设置环境变量:

安装完成后,如果想要在命令行中使用Tesseract,那么应该设置环境变量。MacLinux在安装的时候就默认已经设置好了。在Windows下把tesseract.exe所在的路径添加到PATH环境变量中。

还有一个环境变量需要设置的是,要把训练的数据文件路径也放到环境变量中。
在环境变量中,添加一个TESSDATA_PREFIX=C:\path_to_tesseractdata\teseractdata

在命令行中使用tesseract识别图像:

如果想要在cmd下能够使用tesseract命令,那么需要把tesseract.exe所在的目录放到PATH环境变量中。然后使用命令:tesseract 图片路径 文件路径
示例:

tesseract a.png a

那么就会识别出a.png中的图片,并且把文字写入到a.txt中。如果不想写入文件直接想显示在终端,那么不要加文件名就可以了。

在代码中使用tesseract识别图像:

Python代码中操作tesseract。需要安装一个库,叫做pytesseract。通过pip的方式即可安装:

pip install pytesseract

并且,需要读取图片,需要借助一个第三方库叫做PIL。通过pip list看下是否安装。如果没有安装,通过pip的方式安装:

pip install PIL

使用pytesseract将图片上的文字转换为文本文字的示例代码如下:

# 导入pytesseract库
import pytesseract
# 导入Image库
from PIL import Image# 指定tesseract.exe所在的路径
pytesseract.pytesseract.tesseract_cmd = r'D:\ProgramApp\TesseractOCR\tesseract.exe'# 打开图片
image = Image.open("a.png")
# 调用image_to_string将图片转换为文字
text = pytesseract.image_to_string(image)
print(text)

pytesseract处理某学校的登陆图形验证码:

import pytesseract
from urllib import request
from PIL import Image
import timepytesseract.pytesseract.tesseract_cmd = r"D:\ProgramApp\TesseractOCR\tesseract.exe"while True:captchaUrl = "https://xxxx.com/vcode/create?from=register&refresh=1513081451891"request.urlretrieve(captchaUrl,'captcha.png')image = Image.open('captcha.png')text = pytesseract.image_to_string(image,lang='eng')print(text)time.sleep(2)

OCR图形识别技术在爬虫中的应用相关推荐

  1. OCR识别技术在行业中的应用

    OCR识别一般是指OCR图像文字识别技术,经过多年的发展,OCR识别技术累积了大量经验,逐渐推出了针对不同行业的OCR识别接口,识别的精度更加准确.速度更快.支持在多种平台运用,满足了不同行业信息录入 ...

  2. 爬虫中的那些反爬虫措施以及解决方法

     在爬虫中遇到反爬虫真的是家常便饭了,这篇博客我想结合我自己的经验将遇到过的那些问题给出来,并给出一些解决方案. 1.UserAgent   UserAgent的设置能使服务器能够识别客户使用的操作系 ...

  3. 身份证OCR识别在远程开户中的应用

    远程开户背景: 传统的金融机构开户需要客户携带身份证件到营业厅进行办理,但是地理位置的限制造成了部分客户群体的不便,随着移动互联网的快速发展,金融行业追求创新,为客户提供更加便利的开户方式.利用金融远 ...

  4. OCR识别技术之—移动端证件识别

    移动端驾驶证识别应用背景 随着智能手机及平板电脑以及互联网的飞速发展,第三方支付.理财.P2P网贷.征信.汽车后市场等APP应用成爆发式的增长,在众多APP中都涉及到对驾驶证信息的录入,如车险理赔.汽 ...

  5. 通过OCR识别技术 识别视频和图片的文字信息怎样得到结果

    随着互联网世界的不断充盈,各种各样的视频.文字.图片爆炸式增长,那么如何才能保障信息的健康性.文明性?如何监控这些新增内容和现存内容呢?舆情监控的重要性可谓不言而喻.中安未来视频文字识别SDK具有强大 ...

  6. ID 发展新方向:OCR证件技术

    OCR(Optical character recognition光学字符识别)技术自70年代后期出现至今已有近40年历史,现已在计算机自动录入.票据识别.信函分拣.资料分析等多方面获得了广泛应用.可 ...

  7. 隐式 Style–CSS 在反爬虫中的应用

    文章作者:「夜幕团队 NightTeam」 - 戴煌金 润色.校对:「夜幕团队 NightTeam」 - Loco 什么是隐式 Style–CSS 先来唠唠什么是 隐式 Style–CSS: CSS中 ...

  8. 【人工智能】中科院2019全球人工智能发展白皮书!八大关键技术中国崛起中,国产AI芯片耀眼...

    来源:产业智能官 人工智能是一个很宽泛的概念,概括而言是对人的意识和思维过程的模拟,利用机器学习和数据分析方法赋予机器类人的能力.人工智能将提升社会劳动生产率,特别是在有效降低劳动成本.优化产品和服务 ...

  9. 爬虫中的User-Agent和IP代理

    爬虫中的User-Agent和IP代理 一.User-Agent 按照百度百科的解释:User-Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本 ...

  10. 浅谈网络爬虫中广度优先算法和深度优先算法

    前言 做爬虫的,最怕业务简单粗暴的来一句"爬一下XXXX网".比如,"爬一下央广网"(示例链接:http://www.cnr.cn),看着密密麻麻的各种子分类, ...

最新文章

  1. 密歇根大学联合谷歌大脑提出,通过「推断语义布局」实现「文本到图像合成」
  2. php python-浅谈php调用python文件
  3. [原] 探索 EventEmitter 在 Node.js 中的实现
  4. python绘图设置标题出现乱码_解决python2 绘图title,xlabel,ylabel出现中文乱码的问题...
  5. HTML与XHTML区别
  6. 使用idea创建项目并通过git上传到码云
  7. 小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_42、SpringBoot常用定时任务配置实战...
  8. PhotoShop - 建立剪切蒙版
  9. CST微波工作室学习笔记1 概述
  10. [VP] 拉普拉斯算子 Laplacian Filter
  11. 别了甲骨文,别了拉里·埃里森!
  12. thinkphp3.1.3框架手册
  13. SylixOS学习二—— SylixOS启程之旅_SylixOS 系统概览
  14. Dubbo是什么?能做什么?架构图?
  15. Magnetic Actuation Systems for Miniature Robots: A Review
  16. Android图片转换
  17. 为什么你的同龄人在抛弃你?还要等着被谁抛弃?
  18. sirius java_sirius
  19. 最优控制问题matlab编程实例,第十二章用matlab解最优控制问题及应用实例.ppt
  20. 【转】《致新员工书》

热门文章

  1. java中的数据结构——栈
  2. 用matlab绘制挠度图,如何绘制载荷挠度曲线图
  3. 如何分享带淘宝客的链接到新浪微博
  4. 使用spring validation完成数据后端校验-自定义校验的注解-判断是否为空
  5. 计算机键盘上如何打对勾,电脑键盘怎么打对勾符号
  6. 知识直播的“顶流”,正在被复制
  7. 干货:制造业中的机械智能(内附完整PPT)
  8. CSS 固定定位:固定在版心右侧
  9. 制作字幕.html教程,怎样制作视频字幕
  10. 人生的路很远,一路小心