Python爬虫:爬虫所需要的爬虫代理ip是什么?

当我们对某些网站进行爬去的时候,我们经常会换IP来避免爬虫程序被封锁。代理ip地址如何获取?其实也是一个比较简单的操作,目前网络上有很多IP代理商。这些代理商一般都会提供透明代理,匿名代理,高匿代理。那么这几种代理的区别是什么?我们该如何选择呢?本文的主要内容是讲解各种代理 IP 背后的原理。

Python爬虫:爬虫所需要的爬虫代理ip是什么?

1 代理类型

代理IP一共可以分成4种类型。前面提到过的透明代理IP,匿名代理IP,高匿名代理IP,还有一种就是混淆代理IP。最基础的安全程度来说呢,他们的排列顺序应该是这个样子的高匿 > 混淆 > 匿名 > 透明。

2 代理原理

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

REMOTE_ADDR

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

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

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

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。

HTTP_VIA

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

3 代理类型区别

透明代理(Transparent Proxy)

代理服务器的配置如下:

REMOTE_ADDR = Proxy IP

HTTP_VIA = Proxy IP

HTTP_X_FORWARDED_FOR = Your IP

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

匿名代理(Anonymous Proxy)

代理服务器的配置如下:

REMOTE_ADDR = proxy IP

HTTP_VIA = proxy IP

HTTP_X_FORWARDED_FOR = proxy IP

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

混淆代理(Distorting Proxy)

代理服务器的配置如下:

REMOTE_ADDR = Proxy IP

HTTP_VIA = Proxy IP

HTTP_X_FORWARDED_FOR = Random IP address

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

高匿代理(Elite Proxy 或 High Anonymity Proxy)

代理服务器的配置如下:

REMOTE_ADDR = Proxy IP

HTTP_VIA = not determined

HTTP_X_FORWARDED_FOR = not determined

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

4 代理的选择

普通的匿名代理IP能隐藏客户机的真是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 6, 2023 7:57 am
Next December 6, 2023 8:04 am

Related recommendations

  • SOCKS5代理IP:为什么它是网络爬虫的首选?

    当我们谈论网络爬虫和数据采集时,很少有人能够忽视代理IP的重要性。代理IP是网络爬虫的一项关键工具,而其中最受欢迎的选择之一就是SOCKS5代理IP。那么,为什么SOCKS5代理IP成为网络爬虫的首选呢?让我们一起来深入探讨这个问题,同时也介绍一下穿云API,这个在网络爬虫领域备受推崇的代理协议。   代理IP:网络爬虫的隐形   网络爬虫是一种自动化程序,…

    Web crawler December 26, 2023
  • 爬虫使用http代理IP需要注意哪些细节

    爬虫在使用http代理IP工作时,需要注意很多细节,这样才能让爬虫工作更加高效。让我们一起来看看,爬虫使用http代理IP时需要注意哪些细节。   1、选择合适的代理IP服务商,需要注意其稳定性、速度和隐私性等因素,并购买得到一个适合自己业务的代理IP套餐。   2、配置爬虫程序,使其支持使用代理服务器。具体方法是,在代码中添加相应的HTTP请求头,指定使用…

    January 31, 2024
  • 如何在Python爬虫中使用代理IP?

    在进行Python爬虫时,使用代理IP是有效的策略,可以帮助爬虫避免被封禁,保障抓取任务的顺利进行。以下是关于如何在Python爬虫中使用代理IP的步骤说明。 1. 选择适合的代理IP服务 首先,你需要选择一个可靠的代理IP服务提供商。例如,Kookeey提供动态代理IP,可以提供全球范围的IP池,帮助爬虫绕过限制。确保代理服务支持多个协议(HTTP、HTT…

    December 28, 2024
  • 爬虫抓取数据过程中代理IP频繁掉线如何解决

    在进行爬虫抓取数据时,代理IP是一个不可或缺的工具,它能够帮助我们绕过目标网站的IP限制,提高抓取效率。然而,代理IP频繁掉线却是一个令人头疼的问题,它不仅会降低抓取效率,还可能导致任务失败。那么,当遇到代理IP频繁掉线的情况时,我们应该如何处理呢?以Kookeey为例,本文将为你提供一些有效的解决方案。 一、了解掉线原因 首先,我们需要了解代理IP掉线的原…

    Web crawler August 15, 2024
  • IP爬虫代理服务器是什么以及为什么使用爬虫代理?

    在网络抓取领域,爬虫代理发挥着关键作用。 但它们到底是什么? 从本质上讲,爬虫代理是位于网络抓取工具和目标网站之间的中间服务器。 该中间服务器充当盾牌,提供匿名性,并允许您访问网站并提取数据,而无需透露您的真实身份。 从本质上讲,它充当您和网络之间的桥梁,使网络抓取更加高效和谨慎。 要了解爬虫代理您启动网络抓取过程时,您的抓取工具会向目标网站的服务器发送请求…

    December 19, 2023