如何避免爬取网站时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.mzph.cn/bicheng/38880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算两个经纬度之间的球面距离(基于Mysql和PHP实现)

计算两个经纬度之间的球面距离 1、MySQL实现方式 - 基于空间函数(ST_Distance_Sphere)实现 前置条件:确保您使用的是 MySQL 8.0 或更高版本,因为较早的版本对地理空间的支持有限。 1.1 创建表和索引 说明:设置 location 为 point 类型 #…

hive乱码问题完全解决方案

修改数据库编码集 SET GLOBAL character_set_client utf8; SET GLOBAL character_set_connection utf8; SET GLOBAL character_set_database utf8; SET GLOBAL character_set_results utf8; SET GLOBAL character_set_server utf8; show variables like ‘character_set%…

c++ set和unordered_set区别

一.set介绍 C 中的 set 容器是一种关联容器,用于存储唯一的元素,并能够根据特定的顺序对元素进行排列。在这里,我们将对 set 容器进行详细的分析。 概述 set 容器是 C标准库中的一个部分,位于 头文件中。它是一个关联容器&…

基于Java的智能城市解决方案

基于Java的智能城市解决方案 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨基于Java的智能城市解决方案,探索如何利用现代技术构建智…

【Python数据分析及环境搭建】:教程详解1(第23天)

系列文章目录 Python进行数据分析的优势常用Python数据分析开源库介绍启动Jupyter服务Jupyter Notebook的使用 文章目录 系列文章目录前言学习目标1. Python进行数据分析的优势2. 常用Python数据分析开源库介绍2.1 NumPy2.2 Pandas2.3 Matplotlib2.4 Seaborn2.5 Sklearn2.6 Ju…

[AHK V2]鼠标悬停展开窗口,鼠标离开折叠窗口

演示鼠标悬停窗口标题栏则展开窗口,鼠标离开窗口标题栏则折叠窗口。 ;作者:sunwind ;日期:2024年6月30日11:36:08 ;脚本:演示鼠标悬停窗口标题栏则展开窗口,鼠标离开窗口标题栏则折叠窗口。 MyGui : Gui() mytext:MyG…

第一 二章 小车硬件介绍-(全网最详细)基于STM32智能小车-蓝牙遥控、避障、循迹、跟随、PID速度控制、视觉循迹、openmv与STM32通信、openmv图像处理、smt32f103c8t6

第一篇-STM32智能小车硬件介绍 后续章节也放这里 持续更新中,视频发布在小B站 里面。这边也会更新。 B站视频合集: STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随 小B站链接:https://www.bilib…

启航IT世界:高考后假期的科技探索之旅

随着高考的落幕,新世界的大门已经为你们敞开。这个假期,不仅是放松身心的时光,更是为即将到来的IT学习之旅打下坚实基础的黄金时期。以下是一份专为你们准备的IT专业入门预习指南,希望能助你们一臂之力。 一:筑基篇&a…

STM32F407ZGT6驱动TFT屏ILI9341(硬件SPI)

硬件连接 我购买的是ili9341,2.8inch,带触摸 开发板是野火stm32f407霸天虎 LCD模块STM32单片机VCCDC5V/3.3VGNDGNDSDI(MOSI)PB5SDO(MISO)PB4LEDPB13SCKPB3DC/RSPB14RSTPB12CSPB15触摸连接T_IRQPB1T_DOPB2T_DINPF11T_CSPC5T_CLKPB0 初始化 本次使用的是硬件SPI1&…

Bootstrap 缩略图

Bootstrap 缩略图 引言 Bootstrap 是一个流行的前端框架,它提供了一套丰富的组件和工具,帮助开发者快速构建响应式和移动优先的网页。缩略图(Thumbnails)是 Bootstrap 中的一种组件,用于展示图片或其他媒体内容,通常与标题和文本描述一起使用,形成一个整洁的布局。本文…

新版MinIO安装,附带问题处理和SSL设置(巨详细)

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 下面开始: 前往官网下载需要的二进制文件 wget https://dl.min.io/server/minio/release/linux-am…

element ui中的scss语法理解

摘录至 导读 首先来看一个bem命名示例 .el-message-box{} .el-message-box__header{} .el-message-box__header--active{}如果使用已经封装好的bem方法的话,那么可以写成 include b(message-box) {include e(header) {include m(active);} }接下来我们来看一下b…

【FPGA】Verilog:全减器与半减器 | Full Subtractor | Half Subtractor

0x00 全减器(Full Subtractor) 减法器是用于减法运算的逻辑电路,与不包含借位的半减法器不同。 全减法器因为包含借位的产生与否,所以具备完整的减法功能。 输出由差 和借位 组成:

JUC基础学习

1.Java JUC简介 2.volatile关键字-内存可见性 3.原子变量-CAS算法 4.ConcurrentHashMap锁分段机制

什么是滴答定时器?

滴答定时器(Tick Timer)是一种关键的硬件组件,用于生成固定时间间隔的信号。这些信号通常称为“滴答”(tick),是操作系统和应用程序的时间管理基础。滴答定时器的应用范围广泛,从简单的定时任务…

Java中的数据加密与安全传输

Java中的数据加密与安全传输 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨一下在Java中如何实现数据加密与安全传输。 随着互联网的普及和网络…

C++学习/复习18----迭代器/反向迭代器及在list/vector中的应用、list与vector模拟实现复习

迭代器是一个对象,可以循环访问 C 标准库容器中的元素,并提供对各个元素的访问。 C 标准库容器全都提供迭代器,以便算法可以采用标准方式访问其元素,而不必考虑用于存储元素的容器类型。 一、反向迭代器类 基于普通迭代器构建反…

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用 使用gitlab的CI/CD实现logseq笔记自动发布为单页应用如何实现将logseq的笔记发布成网站使用 logseq-publish-docker 实现手动发布使用gitlab的CI/CD实现自动发布过程中的问题及解决参考资料 使用gitlab的CI/CD实现logseq笔记…

[AIGC] 常用的OLAP数据库:为数据分析提供强大的支持

导语:在大数据时代,数据分析成为了企业决策的重要依据。为了高效地处理和分析海量的数据,OLAP数据库应运而生。本文将介绍几种常用的OLAP数据库,为数据分析提供强大的支持。 一、Snowflake Snowflake是一种云原生的OLAP数据库&a…

win10和mac之间如何共享文件夹

我用的mac版本是 macOS Ventura ,其他版本的操作可能略有不同 在 macOS Ventura 上设置共享文件夹 打开“系统设置”:点击屏幕左上角的苹果菜单 () > 系统设置。选择“通用”:在左侧边栏中找到并点击“通用”。选择“共享”&#xff1…