如何在网络抓取过程中绕过 CAPTCHA 和 reCAPTCHA?

什么是 CAPTCHA?

CAPTCHA,全称为 “Completely Automated Public Turing test to tell Computers and Humans Apart”(完全自动化的公共图灵测试以区分计算机和人类),是一种用于识别网站访问者是否为真实人的测试。

这是一种在加载请求页面之前必须解决的干扰,有多种形式。网站使用它们来测试用户的准确性,从而确定你是实际用户还是机器人。

不用担心!他们不会使用复杂的生物识别技术和面部识别进行身份验证。

CAPTCHA 验证通常发生在以下情况下:

  1. 同一用户在短时间内流量突然激增。
  2. 可疑的互动。例如,访问很多页面但没有滚动。
  3. 随机检查。因为一些高安全性的防火墙会进行检查以防万一。

CAPTCHA 如何工作?

CAPTCHA 通过生成对人类来说容易识别但对计算机来说难以解析的挑战来工作。这些挑战通常涉及识别扭曲的文本、选择包含特定物体的图像或解决简单的逻辑问题。

以下是 CAPTCHA 工作的主要步骤和机制:

1. 生成挑战:

  • 文本 CAPTCHA。生成包含扭曲或模糊文本的图像,通常包括随机排列的字母和数字。
  • 图像选择。提供一组图像,并要求用户选择包含特定物体的图像(例如,交通灯、汽车、行人等)。
  • 逻辑问题。提出简单的数学或逻辑问题,并要求用户回答。
  • 音频 CAPTCHA。播放包含随机字母或数字的音频,用户需要听并输入。

2. 显示挑战:

当用户访问需要验证的网页时,CAPTCHA 系统会生成并显示一个挑战。用户需要在指定的字段中输入答案或选择图像。

3. 用户响应验证:

用户提交答案后,系统会将用户的输入或选择与预期答案进行比较。验证成功则允许用户继续,验证失败则提示用户重试。

4. 生成新挑战:

如果用户多次验证失败,系统可能会生成一个新挑战,以确保尝试通过验证的是人类用户。

Nstbrowser 轻松绕过 CAPTCHA 认证以解锁网站。
立即免费试用!

6 种主要类型的 CAPTCHA

文本 CAPTCHA

随机生成一串字符并进行扭曲、旋转、颜色变化等处理,使 OCR(光学字符识别)算法难以解析。

3D CAPTCHA

这种新技术是文本挑战的一种进化,使用 3D 字符,这对计算机来说更难识别。

reCAPTCHA

谷歌提供的一种高级 CAPTCHA 系统,包含图像选择和文本识别组件。

利用用户验证的同时帮助改进图像识别和文本数字化技术。

数学挑战

用户需要解决数学方程或计算问题以通过验证。

图像选择 CAPTCHA

在登录时,系统显示一组图像并要求用户选择包含特定物体的图像。这种方法使用深度学习技术来分析用户的选择与预期答案的匹配程度。

音频 CAPTCHA

这种验证类型是为视力受损的用户设计的。验证系统播放一个包含字母或数字的音频片段,用户需要听并输入。

如何绕过 CAPTCHA?

方法 1. 避免 Honeypot 陷阱

Honeypot 陷阱是一种通过使用隐藏链接或表单来检测和标记自动化工具的策略,以防止机器人抓取内容。因此,如果点击这些陷阱,你将被标记为抓取器。

  • 跳过隐藏元素

确保抓取脚本忽略具有 display: none 或 visibility: hidden CSS 属性的元素。可以使用以下选择器过滤这些元素:

hidden_elements = driver.find_elements_by_css_selector("[style*='display:none'], [style*='visibility:hidden']")
  • 检测隐藏表单

抓取器还应跳过隐藏的表单和输入框:

   hidden_forms = driver.find_elements_by_css_selector("input[type='hidden']")
  • 避免点击可疑链接

在点击链接之前,检查是否具有隐藏属性:

   links = driver.find_elements_by_tag_name("a")
   for link in links:
       if "display:none" in link.get_attribute("style") or "visibility:hidden" in link.get_attribute("style"):
           continue  # 跳过隐藏链接
       link.click()  # 点击可见链接
  • 使用 robots.txt

遵循网站的 robots.txt 文件中的规则,避免抓取禁止的部分。

  • 模拟人机交互

模拟真实用户行为,如随机间隔点击和滚动,以避免被检测为抓取器。

  • 日志分析

定期分析抓取器的日志,查看是否被阻止或重定向,以便调整策略。

方法 2. 使用真实的头信息

正确识别请求头信息是检测抓取器的一种常见方式,尤其是在使用 Selenium 和 Puppeteer 这样的无头浏览器时。为避免被识别为抓取器,可以修改 User-Agent 头信息以模仿真实用户的浏览器。

方法 3. IP 轮换或头信息轮换

同一个 HTTP 头信息在短时间内发出大量请求肯定是可疑的,对吧?

同一个 IP 地址发出大量请求也是可疑的!因为真实用户不可能在五分钟内访问 1000 个网页。

为了让网站相信你是一个真实用户,轮换你的头信息或 IP 地址,这样就不会被网站轻易识别。

方法 4. 使用 Nstbrowserless

Nstbrowserless 提供了一种高效的方式来运行无头浏览器自动化脚本,同时避免被检测为抓取器。这个基于云的无头浏览器服务模仿真实用户的行为,以帮助绕过 CAPTCHA 和其他反抓取机制。

Nstbrowser 通过 Selenium 和 Puppeteer 轻松解决 CAPTCHA 识别问题。允许你无缝访问和抓取网站。

方法 5. 禁用自动化指标

大多数浏览器自动化工具如 Selenium 和 Puppeteer 都有一些特定的标志,如 navigator.webdriver,暴露了它们是自动化工具的事实。

这时你需要使用像 Puppeteer-stealth 这样的插件来有效隐藏这些痕迹。

方法 6. 模拟真实用户行为

最后,网站会跟踪用户的导航、悬停元素,甚至是点击坐标来分析用户行为。因此,模拟真实的浏览行为非常重要,以避免被检测。

你可以尝试设置的一些行为是:

  • 随机化动作,如滚动。
  • 点击。
  • 打字。
  • 在动作之间使用随机时间间隔。

结论

什么是 CAPTCHA,为什么会出现,以及如何绕过它?你已经在本文中学到了关于 CAPTCHA 的最全面的知识。轮换你的头信息和 IP 是避免 CAPTCHA 最有效和最简单的方法。

为了让你更容易进行网页抓取,使用 Nstbrowser 轻松解锁网站,智能轮换 IP,并绕过 CAPTCHA 验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/767829.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s学习--k8s群集ELK日志收集部署最详细的过程与应用(收集k8s群集日志)(图形化界面手把手教学)

文章目录 FilebeatFilebeat主要特点Filebeat使用场景 ELK简介Elasticsearch简介Elasticsearch主要特点Elasticsearch使用场景 Logstash简介Logstash主要特点Logstash使用场景 Kibana简介Kibana主要特点Kibana使用场景 简单理解 环境一、ELK集群部署1.软件安装2.软件配置及启动(…

Gitlab代码管理工具安装配置

前言: 没有真正的证书与域名建议使用httpip的方式在内网使用,不建议使用假的域名地址 一、安装前配置 #更改主机域名 hostnamectl set-hostname gitlab.dome.com bash #配置hosts 底部添加下面内容 vim /etc/hosts ############################ ip gi…

软件功能测试基础知识大揭秘,功能测试报告就找专业软件测评机构

软件功能测试是以软件产品的需求规格为基础,通过对软件功能的逐个测试,验证软件是否符合需求规格,是否能够正常执行各项功能操作。对于软件产品而言,功能测试是一项至关重要的工作,它能够发现软件中存在的功能缺陷、错…

104.二叉树的最大深度

给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root [1,null,2] 输出…

10、matlab中字符、数字、矩阵、字符串和元胞合并为字符串并将字符串以不同格式写入读出excel

1、前言 在 MATLAB 中,可以使用不同的数据类型(字符、数字、矩阵、字符串和元胞)合并为字符串,然后将字符串以不同格式写入 Excel 文件。 以下是一个示例代码,展示如何将不同数据类型合并为字符串,并以不…

以智领航 鸿翼助力企业构筑智能化知识管理体系

全面智能化时代,鸿翼倾力打造“知识管理人工智能”的深度融合之作——鸿翼KM知识管理,植根非结构化数据治理全生命周期,打造出智能高效的知识管理体系,助推企业数智化转型落地。 数字化时代的知识管理 文档是现代企业运行与管理的…

springboot大学生请假管理系统-计算机毕业设计源码17453

摘 要 从20年代开始,计算机疯狂的出现在人们的生活以及工作当中,成为人们生活、工作的好帮手,计算机深入到每家每户当中,网络办公,网络教学更是替换了传统手工记录管理的方式,使用计算机办公可以不必局限于…

Vue3轻松创建交互式仪表盘

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于 Plotly.js 的 Vue 仪表盘组件 应用场景介绍 仪表盘是一种交互式可视化工具,用于监控和分析关键指标。它广泛应用于各种行业,例如金融、医疗保健和制造业。 代码基本功能介绍 本…

linux快捷键

快捷键 ctrl c 强制停止ctrl d 退出登录history 查看历史命令!命令前缀,自动匹配上一个命令ctrl r 搜索历史命令ctrl a | e 光标移动到命令开始或结束ctrl 左箭头 | 右箭头 左右跳单词ctrl | 或者 clear 清屏 !命令前缀 例如这里之前…

德旺训练营称重问题

这是考小学的分治策略,小学的分治策略几乎都是分三组。本着这个策略,我们做看看。 第一次称重: 分三组,16,16,17,拿两个16称,得到A情况,一样重,那么假铜钱在那组17个里面。B情况不…

3d打开模型的时候怎么没有灯光?---模大狮模型网

在3D建模与渲染过程中,灯光是至关重要的元素之一,直接影响到最终场景的视觉效果和真实感。然而,有时打开3D模型时可能会发现缺乏适当的灯光设置,这会导致场景显得暗淡或平淡无奇。本文将探讨为何在打开3D模型时可能没有灯光的原因…

AI时代的产品经理的成长指南_pdca循环理论制定ai学习成长计划

一、人人不都是产品经理 大多数人听到“产品经理”这个词,总会联想到“人人都是产品经理”这句话。但实际上产品经理这个岗位并没有那么简单。 用一句话概括产品经理的职责就是“帮助团队交付正确产品给用户的人”。也就是说,产品经理要能凝聚团队的力…

在线JSON可视化工具--改进

先前发布了JSON格式化可视化在线工具,提供图形化界面显示结构关系功能,并提供JSON快速格式化、JSON压缩、快捷复制、下载导出、对存在语法错误的地方能明确显示,而且还支持全屏,极大扩大视野区域。 在线JSON格式化可视化工具 但…

C语言版,链表头插法与尾插法

最近又开始看数据结构与算法,看到这个头插法还真的是头插法,头都搞疼了,略微理解了一些。尾插法还好一些,比较好理解,但是如果深入理解还是可以理解。 头插法核心代码: head->next NULL; s->next h…

windows重装系统

一、下载Ventoy工具,制作启动盘 官网地址:https://www.ventoy.net/cn/download.html 电脑插入用来制作系统盘的U盘,建议大小在8G以上。 双击打开刚解压出来的Ventoy2Disk.exe文件。打开界面如图: 确认U盘,如图&am…

java常用类(3)

目录 一. 正则表达式 二. Math类 三. Random类 四. Date类 五. Calendar类 六. SimpDateFormate类 七. BigInteger类 八. BigDecimal类 一. 正则表达式 正则表达式(Regular Expression)就是用一些特殊的符号去匹配一个字符串是否符合规则,利用String类中的matches()方…

3D Gaussian Splatting代码中的train和render两个文件代码解读

现在来聊一聊训练和渲染是如何进行的 training train.py line 31 def training(dataset, opt, pipe, testing_iterations, saving_iterations, checkpoint_iterations, checkpoint, debug_from):# 初始化第一次迭代的索引为0first_iter 0# 准备输出和日志记录器tb_writer p…

滚珠花键促进汽车产业整体升级与发展!

滚珠花键能够实现高效的传动和连接,确保物体在运动过程中的精确位置和稳定性,被广泛应用于机械制造、航空航天、工业自动化、工业汽车、工业机器人、高速铁路等领域。为各个行业的发展提供了重要支持,尤其是在工业汽车领域中,为我…

数据库管理系统中的磁盘、文件、页和记录管理

1. 引言 数据库管理系统(DBMS)是一个复杂的软件系统,用于管理和操作数据库中的数据。DBMS需要有效地在磁盘和内存之间组织和管理数据,以确保高效的数据存储和检索。本文将详细介绍DBMS中关于磁盘、文件、页和记录的管理&#xff…

关于电子画册的制作方法

在这个数字化飞速发展的时代,电子画册以其便捷的分享方式和环保的理念,逐渐成为艺术家和设计师的新宠。如果你也想将自己的作品集或品牌故事以电子画册的形式呈现,那么就跟随我们的脚步,一起探索电子画册的制作方法吧!…