如何避免爬取网站时IP被封?

news/2024/7/7 19:43:42 标签: ip, tcp/ip, 网络, 安全

互联网协议 (IP) 地址是识别网络抓取工具的最常见方式。IP 是每个互联网交换的核心,对其进行跟踪和分析可以了解很多有关连接客户端的信息。 在网络抓取中,IP 跟踪和分析(又名指纹)通常用于限制和阻止网络抓取程序或其他不需要的访问者。在本文中,我们将了解什么是互联网协议地址以及如何使用 IP 跟踪技术来阻止网络抓取工具。

6eb7d472b02d7668aae9283dc05dc47e.jpeg

IP 地址详情

Internet 协议地址是一个简单的基于数字的地址,用于标识连接来源 – 它是所有 Internet 连接的主干。如果您在家 – 您的 IP 是由互联网服务提供商提供给您的,但是,还有更多!

IP版本

这些 IP 地址有两个版本:IPv4 和 IPv6。 关键区别在于 IPv4 池仅限于几十亿个地址。这听起来可能很多,但我们几乎用完了! 另一方面,IPv6 有更多的可用地址,但缺乏现实世界的采用。 由于大多数网络仍然通过 IPv4 运行,并且这些地址的数量有限,这意味着这些地址本质上是一种商品。这就是 IPv4 在指纹识别方面表现更好的原因,因为它的获取成本更高。 换句话说,如果网站发现客户端从 IPv6 地址连接,它会自动降低客户端信任评分,因为这些地址数量更多。 在本文中,我们将坚持使用 IPv4 地址,因为目前还不太可能使用 IPv6 地址进行抓取。

IP地址结构

因此,让我们在识别和跟踪的上下文中看一下 IPv4 地址结构。 IPv4地址由4部分组成:

240338b3a52661d9e3b52c40b61a3cb8.jpeg

前两部分是随机分配给 IP 持有者(如 ISP)的网络地址,因此我们可以从中提取的有价值信息非常少。 对于 IP 指纹识别,最后两个数字很重要。 第三个数字称为子网地址,它本质上是一组 254 个地址的标识符。在现实世界中,子网通常标识一个地理区域——您和您的邻居很可能共享您的 ISP 提供的相同子网地址,你们每个人都有一个单独的主机地址——地址的最后一个数字。

IP元数据

IP 地址本身提供的有关其所有者身份的信息非常少。因此,IP 元信息数据库用于提供有关连接客户端的更多上下文。这些数据库从公共数据点(如 WHOIS、ARIN 和 RIPE)收集信息并包含大量元信息,例如:

  • ISP 的元数据,如名称、法律细节和 AS 编号
  • IP地址地理位置
  • 连接类型
  • 来源估计:是Proxy IP、VPN还是其他?

我们可以看到我们从这个公共 IP 数据库中获得了多少元数据信息。所有这些细节都可以用来确定这个 IP 被真人或程序使用的可能性。 例如,我们可以看到所有者是某个组织(住宅 IP 将使用“Person”关键字代替)。从注册名称和域名来看,应该是某服务器托管公司。 所以,我们可以看到这是位于加利福尼亚的某个服务器托管公司拥有的 IP 地址——这个连接来自人类用户的可能性有多大?

网络抓取时,我们希望避免使用可能指示非人类连接的元数据的 IP(例如数据中心拥有的 IP)。相反,我们应该瞄准使连接显得更加人性化的住宅或移动 IP。

IP 是如何被追踪的?

反网页抓取服务使用这两个 IP 详细信息——地址和元数据——为每个客户端生成初始连接信任分数,用于确定客户端是否可取。 例如,如果您从干净的家庭网络连接,该服务可能会以 1 分(可信)开始,让您毫不费力地通过,而无需请求验证码来解决。 另一方面,如果您从繁忙的公共 wifi 连接,则分数会低一点(例如 0.5),这可能会每隔一段时间提示一个小的验证码挑战。 最坏的情况是,如果您从一个繁忙的共享数据中心 IP 连接,您会得到一个非常低的分数,这可能会导致多次验证码挑战甚至完全被阻止。 那么,哪些 IP 数据点对这个分数的影响最大?

IP 是如何被追踪的?

反网页抓取服务使用这两个 IP 详细信息——地址和元数据——为每个客户端生成初始连接信任分数,用于确定客户端是否可取。 例如,如果您从干净的家庭网络连接,该服务可能会以 1 分(可信)开始,让您毫不费力地通过,而无需请求验证码来解决。 另一方面,如果您从繁忙的公共 wifi 连接,则分数会低一点(例如 0.5),这可能会每隔一段时间提示一个小的验证码挑战。 最坏的情况是,如果您从一个繁忙的共享数据中心 IP 连接,您会得到一个非常低的分数,这可能会导致多次验证码挑战甚至完全被阻止。 那么,哪些 IP 数据点对这个分数的影响最大?

另一个常用于计算信任分数的元数据点是IP 类型本身。虽然元数据没有明确说明地址是住宅地址、移动地址还是数据中心地址,但可以从所有权详细信息中推断出这一事实。 因此,数据中心 IP 的得分较低,因为它很可能是机器人,而移动和住宅 IP 会得到更公平的对待。

Web 抓取中的 IP 地址使用

我们在网络抓取中学到了很多关于 IP 指纹识别的知识。那么我们如何在网络抓取中应用这些信息呢? 为了避免 web scraper 阻塞,我们希望使用具有高信任度的IP 。换句话说,我们应该避免使用元数据数据点薄弱的 IP 地址——任何表明数据中心来源或不可信所有者的 IP 地址。 在大规模抓取时,我们希望通过使用高信任评分 IP 地址的代理池来多样化我们的连接。多样性是这里的关键,因为即使是高信任评分的地址也会在高连通性时期失去其效力。 简而言之:为了绕过网络抓取工具的阻塞,我们需要一个多样化的住宅或移动代理池。有许多不同的子网、地理位置和 AS 编号。


http://www.niftyadmin.cn/n/5535163.html

相关文章

鸿蒙小案例-自定义键盘

一个自定义键盘 效果 完成简单的26键中英文输入 使用: Entry Component struct IndexInput {State text: string inputController: TextInputController new TextInputController()//自定义键盘关闭事件hideClick(){this.inputController.stopEditing()}//自定义…

C++ 教程 - 08 文件操作与异常处理

文章目录 文件操作文件对象其他方法异常处理 文件操作 需要头文件 <iostream><fstream> 读取文件 ifstream obj; obj.open(const char* filename, std::in)写入文件ofstream obj; obj.open(const char* filename, std::out)读、写文件 fstream&#xff0c;包含了i…

2024.7.4

2024.7.4 【又苦又甜&#xff0c;也挺好嘛&#xff0c;很像生活】 Thursday 五月廿九 <theme oi-“graph theory”> P2865 [USACO06NOV] Roadblocks G 主要就是求一个严格次短路&#xff0c;但是有一定条件&#xff0c; 道路可以连续走 我们先求解出最短路&#xff0…

探索 ES6:现代 JavaScript 的新特性

随着 JavaScript 的不断演进&#xff0c;ECMAScript 2015&#xff08;简称 ES6&#xff09;作为 JavaScript 的一次重大更新&#xff0c;带来了许多新特性和语法改进&#xff0c;极大地提升了开发体验和代码质量。本文将详细介绍 ES6 的主要新特性&#xff0c;并展示如何在实际…

最近,被“AI”狠狠刷屏了......

最近&#xff0c;被“AI”狠狠刷屏了。 作为时下最热门的话题&#xff0c;AI画图、AI配音、AI写文案、AI做视频......AI在最近两年可谓是火遍全球。ChatGPT、Midjourney和SORA等技术不断涌现&#xff0c;不仅深刻改变着我们的生活方式&#xff0c;也推动了AI技术的飞速发展。 …

深入浅出:npm 常用命令详解与实践

在现代的前端开发流程中&#xff0c;npm&#xff08;Node Package Manager&#xff09;已经成为了不可或缺的一部分。它不仅帮助我们有效地管理项目中的依赖包&#xff0c;还提供了一系列强大的命令来优化开发体验。在这篇博客中&#xff0c;我们将深入探讨 npm 的常用命令&…

PyTorch实战OCR:CRNN与CTC Loss详解——深度学习图像转文字(2)

文章目录 一、CRNN&#xff08;卷积递归神经网络&#xff09; 1.1 CRNN介绍与网络结构 1.1.1 网络结构 二、网络结构详解 2.1 CNN 2.2 Map-to-Sequence2.3 RNN2.3 CTC Loss 2.3.1 序列合并机制 2.3.2 训练阶段2.3.3 划分标准2.3.4 CRNN总结结 一、CRNN&#xff08;卷积…

线性代数基础概念:矩阵

目录 线性代数基础概念&#xff1a;矩阵 1. 矩阵的定义 2. 矩阵的运算 3. 矩阵的特殊类型 4. 矩阵的秩 5. 矩阵的初等变换 6. 矩阵的特征值与特征向量 7. 矩阵的应用 8. 矩阵总结 总结 线性代数基础概念&#xff1a;矩阵 矩阵是线性代数中的另一个重要概念&#xff0…