本篇是关于验证码识别问题,也是Python爬虫笔记的一个结尾,使用 Tesseract

Python爬虫教程-29-验证码识别-Tesseract-OCR

  • 常见反爬虫手段:

    • 验证码

      • 1.简单图片,扭曲数字验证码
      • 2.中文顺序点击
      • 3.动态验证码
      • 4.滑动验证:滑动小方块到缺口
      • 5.语音验证
      • 6.极验验证:官网:http://www.geetest.com/

        根据鼠标轨迹,判定是机器人还是用户,很强大的验证机制
  • 对于极验是很厉害的拦截机器人手段,好像是使用人工智能机器学习,当然自己想做验证的话建议使用。对于验证有反爬虫,就有可能有反反爬虫

爬虫-验证码识别

  • 通用方法:

    • 1.下载网页和验证码,或截图
    • 2.然后手动输入验证码
  • 对于简单图片
    • 1.使用图像识别软件或者文字识别软件
    • 2.可以使用第三方图像验证码破解网站
  • 对于极验,官网:http://www.geetest.com/
    • 可以模拟鼠标移动,具体的方法我还不清楚

通用方法案例

  • 能力有限,这里就介绍通用方法,先下载得到验证图片,然后手动输入
  • Tesseract
    • 机器视觉领域的基础软件
    • OCR:OpticalChracterRecognition,光学文字识别
    • Tesseract:是一个 OCR 库,由 Google 赞助

Tesseract-Windows的安装

Tesseract-macOS的安装

  • 我也没有 MacBook,老师顺口一说,记下了
  • brew install tesseract

Tesseract-Linux的安装

  • 我这里是 Ubuntu 18 其他 Linux 版本不确定,进入管理员用户
  • apt-get install tesseract-ocr

python使用tesseract的工具 pytesseract 的安装

  • 如果使用的是 Anaconda 环境:

    • 进入当前环境:(我的环境名为learn,如果只有一个base环境,忽略此步)

activate learn

  • 安装 pytesseract

pip install pytesseract

  • 操作截图

  • 首先说一下,conda 是没有这个包的,也就不能使用 conda install,也不能直接在 Pycharm 里找到,只有使用 pip 安装,然后需要注意的就是,要使用你在 Pycharm 使用的那个环境进行安装

识别验证码案例

  • 注意:此代码路径是,在图片和代码在同一目录
  • 图片截图:

  • 代码 py30pytess.py 文件:
import pytesseract as pt

from PIL import Image

# 生成图片实例
image = Image.open('timg.jpg') # 调用 pytesseract 识别图片文字
text = pt.image_to_string(image) print(text)

运行结果

更多文章链接:Python 爬虫随笔


- 本笔记不允许任何个人和组织转载

Python爬虫教程-29-验证码识别-Tesseract-OCR的更多相关文章

  1. Python爬虫教程:验证码的爬取和识别详解

    今天要给大家介绍的是验证码的爬取和识别,不过只涉及到最简单的图形验证码,也是现在比较常见的一种类型. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻 ...

  2. Python爬虫教程-01-爬虫介绍

    Spider-01-爬虫介绍 Python 爬虫的知识量不是特别大,但是需要不停和网页打交道,每个网页情况都有所差异,所以对应变能力有些要求 爬虫准备工作 参考资料 精通Python爬虫框架Scrap ...

  3. Python爬虫教程-00-写在前面

    鉴于好多人想学Python爬虫,缺没有简单易学的教程,我将在CSDN和大家分享Python爬虫的学习笔记,不定期更新 基础要求 Python 基础知识 Python 的基础知识,大家可以去菜鸟教程进行 ...

  4. Python爬虫教程-12-爬虫使用cookie爬取登录后的页面(人人网)(上)

    Python爬虫教程-12-爬虫使用cookie(上) 爬虫关于cookie和session,由于http协议无记忆性,比如说登录淘宝网站的浏览记录,下次打开是不能直接记忆下来的,后来就有了cooki ...

  5. 简单的python爬虫教程:批量爬取图片

    python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程. ...

  6. Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影)

    Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影) ProxyHandler处理(代理服务器),使用代理IP,是爬虫的常用手段,通常使用UserAgent 伪装浏览器爬取仍然可能被网 ...

  7. Python爬虫教程-10-UserAgent和常见浏览器UA值

    Python爬虫教程-10-UserAgent和常见浏览器UA值 有时候使用爬虫会被网站封了IP,所以需要去模拟浏览器,隐藏用户身份, UserAgent 包含浏览器信息,用户身份,设备系统信息 Us ...

  8. Python爬虫教程-09-error 模块

    Python爬虫教程-09-error模块 今天的主角是error,爬取的时候,很容易出现错,所以我们要在代码里做一些,常见错误的处,关于urllib.error URLError URLError ...

  9. Python爬虫教程-08-post介绍(百度翻译)(下)

    Python爬虫教程-08-post介绍(下) 为了更多的设置请求信息,单纯的通过urlopen已经不太能满足需求,此时需要使用request.Request类 构造Request 实例 req = ...

随机推荐

  1. 2019 CCPC-Wannafly Winter Camp Day4(Div2, onsite)

    slove 6/11 A.夺宝奇兵 Code:zz Thinking:zz 贪心即可.这条路线里,点n1和点n2肯定是相连的,接下来,点(n-1)1和点(n-1)2分别是和n1和点n2相连的,一共有两 ...

  2. c#中的引用类型和值类型

    一,c#中的值类型和引用类型 众所周知在c#中有两种基本类型,它们分别是值类型和引用类型:而每种类型都可以细分为如下类型: 什么是值类型和引用类型 什么是值类型: 进一步研究文档,你会发现所有的结构都 ...

  3. SpringBoot 整合 slf4j 日志打印

    划水时间,记录一下用到的相关slf4j 日志打印,如何实现配置输出.本地保存log日志文件... 我使用的是SpringBoot框架,slf4j 类库已经包含到了 SpringBoot 框架中,所有, ...

  4. Kubeadm and Kops

    Kubeadm是Kubernetes官方推出的快速部署Kubernetes的集群工具,其思路是将Kubernetes相关服务容器化以简化部署. With the release of kubeadm ...

  5. Github提交PullRequest

    Github提交PullRequest工作流程: 以Kubernetes为例 1.   Fork Kubernetes到自己的Github目录 访问:https://github.com/kubern ...

  6. (转)python time模块和datetime模块详解

    python time模块和datetime模块详解 原文:http://www.cnblogs.com/tkqasn/p/6001134.html 一.time模块 time模块中时间表现的格式主要 ...

  7. 纯Python给ulaw wav文件加头

    最近在处理wav相关文件,碰见一工具产生的ualw文件不带header,顺手用python给wav格式文件加头处理,让普通播放器也能播放. (原文:http://www.cnblogs.com/ryh ...

  8. 修改eclipse下tomcat的内存大小/解决内存溢出

    我们安装完成eclipse之后,在我们的安装目录下有一个名为eclipse.ini文件. 打开文件里面的内容如下: -startup plugins/org.eclipse.equinox.launc ...

  9. Derby的jar说明

    Derby的jar说明 Derby的下载后,解压发现lib中有很多jar包,下面说明一下每个jar包的用途: 引擎库 derby.jar是引擎库,必须的 For embedded databases. ...

  10. Visual Studio2017中如何让ADO.NET实体数据模型[EntityFramework]支持MariaDB&MySQL数据源

    近期由于工作需要,需要重新修改设计系统的ADO.NET实体数据模型.edmx文件中间,在完成实际中途遇到一些实际使用问题,特此记录. 1. Visual Studio 2017 无法以实体设计模式打开 ...