爬虫所需要的代理IP究竟是啥呢?

在爬取某些网站时,我们经常会设置代理 IP 来避免爬虫程序被封。我们获取代理 IP 地址方式通常提取国内的知名 IP 代理商的免费代理。这些代理商一般都会提供透明代理,匿名代理,高匿代理。那么这几种代理的区别是什么?我们该如何选择呢?本文的主要内容是讲解各种代理 IP 背后的原理。

爬虫所需要的代理IP究竟是啥呢?

1 代理类型

代理类型一共能分为四种。除了前面提到的透明代理,匿名代理,高匿代理,还有混淆代理。从安全程度来说,这四种代理类型的排序是 高匿 > 混淆 > 匿名 > 透明。

2 代理原理

代理类型主要取决于代理服务器端的配置。不同配置会形成不同的代理类型。在配置中,这三个变量REMOTE_ADDRHTTP_VIAHTTP_X_FORWARDED_FOR 是决定性因素。

1) REMOTE_ADDR
REMOTE_ADDR 表示客户端的 IP,但是它的值不是由客户端提供的,而是服务器根据客户端的 IP 指定的。

如果使用浏览器直接访问某个网站,那么网站的 web 服务器(Nginx、Apache等)就会把 REMOTE_ADDR 设为客户端的 IP 地址。

如果我们给浏览器设置代理,我们访问目标网站的请求会先经过代理服务器,然后由代理服务器将请求转化到目标网站。那么网站的 web 服务器就会把 REMOTE_ADDR 设为代理服务器的 IP。

2)X-Forwarded-For(XFF)
X-Forwarded-For 是一个 HTTP 扩展头部,用来表示 HTTP 请求端真实 IP。当客户端使用了代理时,web 服务器就不知道客户端的真实 IP 地址。为了避免这个情况,代理服务器通常会增加一个 X-Forwarded-For 的头信息,把客户端的 IP 添加到头信息里面。

X-Forwarded-For 请求头格式如下:

X-Forwarded-For: client, proxy1, proxy2

client 表示客户端的 IP 地址;proxy1 是离服务端最远的设备 IP; proxy2 是次级代理设备的 IP;从格式中,可以看出从 client 到 server 是可以有多层代理的。

如果一个 HTTP 请求到达服务器之前,经过了三个代理 Proxy1、Proxy2、Proxy3,IP 分别为 IP1、IP2、IP3,用户真实 IP 为 IP0,那么按照 XFF 标准,服务端最终会收到以下信息:

X-Forwarded-For: IP0, IP1, IP2

Proxy3 直连服务器,它会给 XFF 追加 IP2,表示它是在帮 Proxy2 转发请求。列表中并没有 IP3,IP3 可以在服务端通过 Remote Address 字段获得。我们知道 HTTP 连接基于 TCP 连接,HTTP 协议中没有 IP 的概念,Remote Address 来自 TCP 连接,表示与服务端建立 TCP 连接的设备 IP,在这个例子里就是 IP3。

3)HTTP_VIA
via 是 HTTP 协议里面的一个header,记录了一次 HTTP 请求所经过的代理和网关,经过1个代理服务器,就添加一个代理服务器的信息,经过2个就添加2个。

3 代理类型区别

1) 透明代理(Transparent Proxy)
代理服务器的配置如下:

REMOTE_ADDR = Proxy IPHTTP_VIA = Proxy IPHTTP_X_FORWARDED_FOR= Your IP

透明代理虽然可以直接“隐藏”客户端的 IP 地址,但是还是可以从HTTP_X_FORWARDED_FOR来查到客户端的 IP 地址。

2) 匿名代理(Anonymous Proxy)
代理服务器的配置如下:

REMOTE_ADDR = proxy IPHTTP_VIA = proxy IPHTTP_X_FORWARDED_FOR= proxy IP

匿名代理能提供隐藏客户端 IP 地址的功能。使用匿名代理,服务器能知道客户端使用用了代理,但无法知道客户端真实 IP 地址。

3) 混淆代理(Distorting Proxy)
代理服务器的配置如下:

REMOTE_ADDR = Proxy IPHTTP_VIA = Proxy IPHTTP_X_FORWARDED_FOR=Random IP address

与匿名代理的原理相似,但是会伪装得更逼真。如果客户端使用了混淆代理,服务器还是能知道客户端在使用代理,但是会得到一个假的客户端 IP 地址。

2) 高匿代理(Elite  Proxy 或 High Anonymity Proxy)
代理服务器的配置如下:

REMOTE_ADDR = Proxy IPHTTP_VIA =not determinedHTTP_X_FORWARDED_FOR=not determined

高匿代理既能让服务器不清楚客户端是否在使用代理,也能保证服务器获取不到客户端的真实 IP 地址。

4 代理的选择

普通匿名代理能隐藏客户机的真实 IP,但会改变我们的请求信息,服务器端有可能会认为我们使用了代理。不过使用此种代理时,虽然被访问的网站不能知道客户端的 IP 地址,但仍然可以知道你在使用代理,当然某些能够侦测 IP 的网页仍然可以查到客户端的 IP。

而高度匿名代理不改变客户机的请求,这样在服务器看来就像有个真正的客户浏览器在访问它,这时客户的真实IP是隐藏的,服务器端不会认为我们使用了代理。

因此,爬虫程序需要使用到代理 IP 时,尽量选择普通匿名代理和高匿名代理。另外,如果要保证数据不被代理服务器知道,推荐使用 HTTPS 协议的代理。

This article comes from online submissions and does not represent the analysis of kookeey. If you have any questions, please contact us

Like (0)
kookeeykookeey
Previous December 13, 2023 6:27 am
Next December 13, 2023 6:36 am

Related recommendations

  • 爬虫IP使用教程,IP代理可以为爬虫带来的好处

    作为爬虫程序的一部分,使用代理IP可以帮助我们更好地隐藏自己的真实IP地址,保护自己的隐私和安全。同时,代理IP还可以帮助我们绕过一些封锁和限制,获取更全面、更准确的数据。 一、代理IP的工作原理 代理IP是一种网络协议,它允许我们通过一个中转服务器来访问互联网。当我们使用代理IP时,我们的请求会先发送到这个中转服务器,然后由这个服务器将请求发送到目标网站。…

    January 31, 2024
  • 代理ip对于爬虫的重要性,重要在于什么地方?

    随着大数据时代的到来,爬虫成为了获取数据必不可少的方式,但是因为网站限制以及其他的禁制,使得爬虫在多次访问同一网站时,经常被挡在门外。而政府为了解决问题通常就会使用代理ip。那么,代理ip对爬虫的重要性是什么?重要在于什么地方呢? 代理ip对于爬虫的重要性是什么? 使用代理ip,对爬虫最大的重要性就是给爬虫伪造真实ip。网站的禁制基本上对虚假ip造成巨大的影…

    December 8, 2023
  • 为什么有的时候Socks5比HTTP爬虫IP更快?

    作为一名长期从事爬虫行业动态IP解决方案服务商,我发现经常有客户疑惑:为什么有的时候Socks5代理IP比HTTP代理IP更快?其实,这个是很常见的一种现象。今天,我就来分析一下为什么Socks5代理IP有时比HTTP代理IP更快,希望能帮助到你们! 首先,我们要了解Socks5和HTTP代理IP的区别。Socks5是一种网络协议,它在传输层进行代理,能够代…

    December 14, 2023
  • 使用代理IP抓取数据需要注意什么?

    当用户使用代理IP访问网站时,用户的IP地址将被隐藏,用户可以访问不同地区的内容。大多数爬虫工作者会使用轮换代理,如何可以以较高的速度抓取数据,而不用担心被网站封掉。那么利用代理IP抓取数据需要注意一些什么呢? 1、选择合适的地理定位 无论选择哪种代理,它都会更改用户的IP地址以显示用户位于不同的国家或地区。 2、使用独享代理 有些代理服务商会提供独享代理,…

    January 22, 2024
  • 探讨http协议下爬虫使用socks5代理的优势

    随着互联网的发展,网络数据的爬取已成为数据分析和商业应用中不可或缺的一环。然而,由于一些网站对数据的保护和限制,爬虫在获取数据时常会遇到IP被封禁或者访问受限的情况。为了解决这一问题,爬虫使用代理服务器来隐藏真实IP地址,其中socks5代理作为一种高匿代理,对于爬虫而言具有一定的优势。本文将探讨在http协议下,爬虫使用socks5代理的优势。 首先,so…

    December 28, 2023