爬虫遇到验证码必须要知道的解决办法(干货)

2023-11-07

 

对于爬取数据而言, 有的网站在登录时或者采集数据过程中,都会出现验证码。对于网络爬虫而言,解决验证码识别识别是非常重要的一件事。

今天,我们将讨论有关验证码的5件事,以帮助大家更好的进行网络数据抓取。

1. 什么是验证码?

2. 验证码是如何工作的?

3. 常见的验证码有哪些类型?

4. 为什么网站要放验证码?

5. 如何处理网页采集中遇到的验证码?

 

1.  什么是验证码?

根据维基百科的定义,验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart” 的缩写(全自动区分计算机和人类的图灵测试),是一种区分用户是计算机还是人的公共全自动程序。

它通常在互联网上使用,特别是在网上购买产品或者登录网站时。

 

2.  验证码是如何工作的?

验证码技术基于图灵测试,该测试是用于测试机器是否可以像人一样思考。验证码的目的是提出计算机无法处理的问题或挑战。它通常显示扭曲的随机字符或者数字字符串。

它之所以起作用,是因为人看着变形的图片的时候,是可以轻松的识别图片中的字符的,但爬虫工具则不容易识别。当文字太模糊或者变形太厉害时,即使是最先进的自动化系统(被编程为扫描页面上的图片并识别图片中的文字),也很难准确识别图片中的文字。

 

3.  常见的验证码有哪些类型?

验证码有多种尺寸和类型。最常见的验证码类型有:基于文本的验证码,基于图像的验证码和基于音频的验证码。

基于文本的验证码是由两个简单的部分组成:一串随机生成的字母或数字序列(显示为扭曲的图像)和一个文本框。要通过测试并证明您的人类身份,只需在文本框中输入您在图像中看到的字符即可。

 

对于机器人来说,简单地识别图片中的字符并不难。为了增加难度,提供了数学验证码,该验证码显示有容易阅读的数字,并且涉及基本的数学运算问题;同时还有3D验证码,该验证码显示具有3D效果的字符。

 

                                           

 

基于图像的验证码:通常为用户提供的是物体、动物、人或风景的图像,而不是失真的文本,以此来区分人和计算机程序。验证码要求用户选择它们标识的正确图像,或将滑块拖动到图像中以使其完整。

基于音频的验证码:利用从录音中提取的随机单词或数字,将它们组合在一起,甚至给它们添加一些噪音,然后要求用户输入在录音中听到的单词或数字。与文本验证码和图片验证码相比,声音验证码更难处理,因为让数据抓取工具学会倾听录音并不容易。

 

4.  为什么网站要放验证码?

如今,计算机已经普及,跟计算机有关的自动化任务和服务变得司空见惯,因此提高网站的安全级别变得更加重要。为计算机开发的验证码,是在人机交互时,在一些对安全至关重要的情况下,确保与人打交道,例如登录网站或者在网上付款。

验证码还可以阻止试图自动收集在线数据、试图自动注册或使用网站、博客或论坛的垃圾邮件发送者和机器人。它可以保护网站免受垃圾邮件,欺诈性注册和其他非法行为的侵扰。

 

5.  如何处理网页采集中遇到的验证码?

一旦采集数据的过程中出现验证码,我们的数据采集工作很容易因此中断。因此,处理验证码对于网络数据抓取非常重要。 处理验证码的最好方法就是尽量避免遇到它。采集速度不要太快,短时间内不要过度频繁的访问一个网站,而是要表现得更像一个人,模拟人浏览网页的操作行为。

但是仍然有很多验证码是无法避免的,例如登录页面上的验证码。 在八爪鱼采集器中,可以通过设置验证码识别步骤,轻松地解决验证码。同时,八爪鱼还支持自动打码噢!点击此处查看示例

对于自己编写爬虫代码的人来说,可以将许多验证码解算器集成到他的爬虫系统中。例如,验证码识别服务供应商 Death by CAPTCHA和Bypass CAPTCHA 都允许用户通过调用API服务来进行自动打码,从而在抓取数据过程中自动解决验证码。这些验证码解决工具可以处理普通的文本验证码,甚至是更高级的验证码。

对于网页数据抓取,验证码可能是一个令人头疼的问题。但是不用担心,正所谓道高一尺,魔高一丈。 随着爬虫工具和验证码解算器的兴起,验证码已成为可以被破解的对象。借助这些工具,您可以畅享网页数据抓取。

 

 

作者:黄伊娜(八爪鱼团队)

校对:Isabel Li(八爪鱼团队)

编辑/翻译:蒋红(八爪鱼团队)

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫遇到验证码必须要知道的解决办法(干货) 的相关文章

  • 数据采集

    xff08 1 xff09 数据分类 xff1a 业务数据 xff0c 行业数据 xff0c 内容数据 xff0c 线上行为数据 xff0c 线下行为数据 xff08 2 xff09 数据来源 xff1a 企业系统 xff0c 机器系统 x
  • captcha验证码入门

    kaptcha是一个简单易用的验证码生成工具 而且支持中文 你还可以配置其很多属性 用法 1 首先到http code google com p kaptcha downloads list把压缩文件下下来 然后把里面的jar文件加到自己的
  • 利用Puppeteer实现验证码网站登录

    Puppeteer puppeteer是由Google官方推出的一个node库 可以启动Chromium浏览器模拟人为操作 类似于PhantomJS 这为爬虫和自动化测试提供了便利 流程 登录流程很简单 启动puppeteer打开目标网站
  • python-selenium(webdriver)中的自动截屏并获取验证码的位置

    因为最近在搞一个购票的一个爬虫需要获取当前验证码的位置信息进行打码 因为是用的selenium测试工具所以在网上找了多个资料搞出来的 记录下一成果 encoding utf 8 from PIL import Image from sele
  • 字符分割算法研究

    字符分割 定义 以字符串的形式分割字符 达到将验证码分割的效果 从定位得到的车牌图像中分离出单个字符 包括汉字 字母和数字等 的图像 以便于字符分割 初步了解 行切分 字切分 参考范例 车牌识别 主要算法解析 改进的连通域分割法 版面分割是
  • 运行ddddocr项目,报错 DLL load failed: 找不到指定的模块

    我的环境是python3 7 9的 from onnxruntime pybind11 state import noqa ImportError DLL load failed 找不到指定的模块 看了网上什么改这改那的 太麻烦了 后来发现
  • 【从零开始学爬虫】采集京东商品信息

    l 采集网站 场景描述 采集京东电视分类中的所有商品信息 使用工具 前嗅ForeSpider数据采集系统 免费版本下载链接 http www forenose com view forespider view download html 入
  • Random类和UUID以及验证码的生成

    一 介绍与测试 Random 产生随机数 UUID 通用唯一识别码 目的是让分布式系统中的所有元素 都能有唯一的辨识信息 根据当前时间和电脑网卡 生成一段字符 Radom类 import java util public class Ran
  • JS生成uuid的四种方法

    在开发过程中 有时候需要js生成全局唯一标识符 在java中可以使用uuid 但是JS中没有现成的函数 总结了一下 JS生成唯一标识符的几种方法 第一种 function guid return xxxxxxxx xxxx 4xxx yxx
  • 【教程】Matrikon OPC使用教程连载(二)

    MatrikonOPC介绍 Matrikon 是基于OPC UA和基于OPC的控制自动化数据互操作性产品的供应商 提供自动化厂商的高级OPC UA开发工具包 适用于从嵌入式设备到云应用的所有产品线 对于终端用户客户 Matrikon提供了关
  • Google reCAPTCHA ----------验证码

    现有验证码的产品形态调研范围如下 基本涵盖了比较主流的验证码平台 Google reCAPTCHA 极验 阿里云 腾讯云 点触 网易易盾 螺丝帽 FunCaptcha 产品背景 reCAPTCHA起初是由CMU 卡耐基梅隆大学 设计 将OC
  • 数据采集---json格式数据

    页面展示 智联招聘 URL https sou zhaopin com jl 801 kw 0 p 1 例 https sou zhaopin com jl 801 kw python p 1 右键 gt 查看网页源码 切片处理获得json
  • charles使用

    安装 HTTPS的SSL证书配置 windows电脑 管理员模式打开Charles gt help gt SSL Proxying gt Install Chrales Root Certificate 安装证书 gt 下一步 gt 选择证
  • 如何获取股票预测数据集“上海证券综合指数”(上证综指,Shanghai Composite Index)?

    以下网址可提供较为全面的数据集 涵盖Date Opening price Highest price Lowest price Closing price Volume Turnover Ups and Downs Change指标 即日期
  • 原生JS局部刷新

    目录 使用XMLHttpRequest对象进行异步请求 2 使用fetch API进行异步请求 3 使用事件监听器进行局部刷新 4 servlet实现img验证码局部刷新 依赖jar包 Servlet login jsp 在原生JS中 可以
  • 机器学习 数据的采集和清洗

    本人找到了一条路 不知道对错的路 采集训练的 数据和清理数据 第一步 采集 涉及到如何利用爬虫采集网页csv文件 数据是在UCI 上的 UCI官网如下http archive ics uci edu ml index php 就拿里面最热门
  • 干货丨RPA内网验证码识别技巧

    通常在一些网络安全等级比较高的大型客户里面 如银行 政府等 RPA的实现流程基本都是内网环境 没办法使用外网 那么这个时候针对一些客户端或者网银登录的字符型验证码识别 没办法通过UiBot调用公网环境中的OCR组件进行识别 或者使用需要外网
  • 生成图片验证码的两种实现方式

    最近工作中 需求让新加一个图片验证码功能 其实这个功能之前自己写过 想必跟大家现在心里想到的实现方式一样 要么是通过servlet实现请求操作 要么是通过get请求实现操作 然后在后台通过session存储图片上的字符串 和之后前台请求过来
  • 如何用RPA实现天猫淘宝商品转Fordeal上架

    天猫淘宝商品转fordeal上架是一项常见的任务 需要手动操作来完成 然而 有了八爪鱼rpa 这个繁琐的过程可以变得轻松简单 首先 使用八爪鱼rpa 您只需要设定好规则和参数 然后启动机器人即可 机器人会自动登录您的天猫淘宝账号 并进入商品
  • How to collect data

    How to collect data 爬虫 Java Python 反爬虫 自动化测试工具 Selenium QMetry Automation Studio Te

随机推荐

  • MATLAB实现基本的遗传算法(写成函数形式,可调用),优化目标函数,并举例展示

    遗传算法 其本质上是一种进化算法 相比其他的算法应用范围比较广泛 特别是对于一些非线性 多模型 多目标的函数优化问题 用其他的优化方法较难求解 而遗传算法可以方便的得到较好的结果 不过正如我在PSO粒子群算法的文章中说道 每种算法的应用场景
  • Ubuntu: 安装最新版本的 Nginx

    Ubuntu 默认 apt 源中的 Nginx 版本比较旧 今天介绍下如何在 Ubuntu 中安装最新版本的 Nginx 要安装较新版本的 Nginx 可以使用 Nginx 的 APT 源 执行如下脚本来添加 Nginx APT 源 bin
  • gitlab项目的备份与迁移

    gitlab项目的备份与迁移 最近工作中需要用到gitlab项目的备份与迁移工作 因此做了一个简单的部署配置 这里小小记录一下 一 gitlab的安装 1 安装准备 1 本人由于在centos7上部署gitlab 因此使用的gitlab的版
  • unity3d 启动项目卡在load script assembly

    最近突然碰到unity启动项目 卡在load script assembly的情况 删除了library重开也还是如此 日志打印里面打印到 刷新script开始然后就戛然而止了 后来发现是 项目里某个文件夹被一个命令行占用了 unity在导
  • 安装nrm报错

    internal validators js 124 throw new ERR INVALID ARG TYPE name string value TypeError ERR INVALID ARG TYPE The path argu
  • 2023华为OD机试真题【最接近中位数的索引】

    前言 本题使用Java解答 如果需要python版本答案 请查看以下链接 Python版本答案 题目内容 给定一个数组X和正整数K 请找出使表达式X i x i 1 X i K 1 结果最接近于数组中位数的下标i 如果有多个i满足条件 请返
  • [Java]两个有理数的加减乘除

    public class Rational private long num 0 分子 private long den 1 分母 Begin long i public Rational long num long den this nu
  • Blender 的 操作与快捷键

    Blender是一款开源的免费的3D建模软件 目前来看还不错哦 Blender的快捷键 鼠标右键选中物体 左键是确认 选中下 按住滑轮拖动鼠标可以环视 选中下 按住shift正反键可以上下 选中下 按住shift按住滑轮拖动鼠标可以左右 小
  • javaweb-HTTP协议(服务器数据的接收、处理、响应流程)详解

    HTTP协议 HTTP请求 两种HTTP请求方式 在服务器接收信息 HttpServletRequest 请求行 请求头 请求体 处理 响应 HTTP协议 什么是HTTP协议 超文本传输协议 Hypertext Transfer Proto
  • https请求跨域问题的解决

    原http服务升级为https服务后 发现同级域名下的单点登录不可用 报错 The page at https aaa xxx com was loaded over HTTPS but requested an insecure fram
  • CTFweb篇——upload-labs

    0x00 前言 本次以 upload labs的Pass 00和pass 01为例 0x01 进入靶场 pass 00 首先查看Pass 00题目 任务要求上传一个webshell到服务器 编写一句话木马 然后上传 右键复制图像地址 连接菜
  • Windows系统克隆***与防范

    随着电脑技术的发展和电脑的普及 还有大大小小的 骇客 网站和越来越简单的工具 使得目前 变得日趋频繁 被植入 的电脑或 服务器也越来越多 与此同时系统管理员的 安全意识也在不断提高 加上杀毒软件的发展 网络 的生命周期也越来越短 所以 者在
  • sql函数创建和调用

    create FUNCTION Fun GetDeptID 传入参数 或参数类型 UserID VARCHAR 100 IDepGrade INT 返回值类型 RETURNS VARCHAR 100 AS BEGIN 定义返回值 DECLA
  • 揭开“视频超分”黑科技的神秘面纱

    在看电影时 有一幕大家应该都非常熟悉 警察从证据图片中选取一块区域放大 再放大 直到一个很小的目标变得清晰可见 从而发现重要的线索 现实中是不是真的有这样的技术 可以把模糊的小图变得清晰 答案是 一定程度上可以 这项黑科技就是超分辨率技术
  • 【教程】PyTorch Timer计时器

    转载请注明出处 小锋学长生活大爆炸 xfxuezhang cn OpenCV的Timer计时器可以看这篇 Python Timer和TimerFPS计时工具类 Timer作用说明 统计某一段代码的运行耗时 直接上代码 开箱即用 import
  • 【实战】通过 JS 将 HTML 导出为 PDF 文档

    背景介绍 某老人院信息管理系统项目 甲方要求将财务模块的各种报表导出为PDF文档 方便打印 之前的解决方案 是将报表生成专门的打印 HTML 页面 然后按 Ctrl P 调用浏览器本身打印功能去打印 这种方式存在的问题是不同分辨率的显示器
  • vue单页应用在页面刷新时保留状态数据的方法

    在Vue单页应用中 如果在某一个具体路由的具体页面下点击刷新 那么刷新后 页面的状态信息可能就会丢失掉 这时候应该怎么处理呢 如果你也有这个疑惑 这篇文章或许能够帮助到你 一 问题 现在产品上有个需求 单页应用走到某个具体的页面 然后点击刷
  • 跨平台开发之 Tauri

    比起 Electron Tauri 打包后的安装包体积是真的小 跨平台开发 最近使用跨平台开发框架写了一个软件 在此记录一下 说起跨平台开发 我的理解是这样的 多依赖浏览器环境运行 多使用前端语言进行开发 只需一次编码 但不同平台可能需要做
  • linux usermod用法,Linux中Usermod命令的一些使用技巧

    usermod 是一个命令行实用程序 允许您修改用户的登录信息 本文介绍了如何使用usermod命令添加用户到组 更改用户shell 登录名 主目录等 1 usermod 命令 该usermod命令的语法采用以下形式 usermod opt
  • 爬虫遇到验证码必须要知道的解决办法(干货)

    对于爬取数据而言 有的网站在登录时或者采集数据过程中 都会出现验证码 对于网络爬虫而言 解决验证码识别识别是非常重要的一件事 今天 我们将讨论有关验证码的5件事 以帮助大家更好的进行网络数据抓取 1 什么是验证码 2 验证码是如何工作的 3