爬虫 代理ip,爬虫怎么使用代理ip

80次阅读
没有评论

当我们爬一些网站的时候,我们经常交换IP以避免爬虫程序被屏蔽。 如何获取代理ip地址? 其实是比较简单的操作,现在网上有很多IP代理店。 例如,天启、神龙等。 这些代理通常提供透明代理、匿名代理和高隐藏代理。 那么,这些代理人的区别是什么? 我该怎么办? 本文的主要内容是说明各种代理IP背后的原理。

1 代理类型

代理IP总共可以分为四种类型。 透明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请求方的实际IP的HTTP扩展标头。 如果客户机使用代理,则web代理服务器不知道客户机的实际IP地址。 为了避免这种情况,代理服务器通常会添加X-Forwarded-For标头信息,并将客户端IP添加到标头信息中。

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

x-forwarded-for :客户端,proxy1,proxy2

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

在一个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请求的代理和网关,经由一个代理服务器时追加一个代理服务器的信息,经由两个时追加两个。

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

HTP _ x _ forwarded _ for=random IP address

与匿名代理的原理相似,但伪装得更真实。 如果客户端使用模糊化代理,则服务器会知道客户端正在使用该代理,但会获得假的客户端IP地址。

高隐藏代理(Elite Proxy或High Anonymity Proxy ) )。

代理服务器的构成如下。

REMOTE_ADDR=Proxy IP

HTTP_VIA=not determined

HTP _ x _ forwarded _ for=not determined

高保密代理使服务器知道客户端是否正在使用代理,并确保服务器无法获取客户端的真实IP地址。

4 代理的选择

普通的匿名代理IP可以隐藏客户端的真实IP,但请求信息也会改变,服务器可能会认为它在使用代理。 但是,如果使用此类代理,则被访问的站点无法知道客户端的IP地址,但可以知道正在使用该代理。 当然,一些可以检测IP的网页可以检测客户端的IP。

高级匿名代理不会更改客户端的请求,因此在服务器上看起来像是真正的客户端浏览器在访问。 此时,客户端的真实IP是隐藏的,服务器端不认为它在使用代理。

因此,需要将爬虫程序用于爬虫代理ip时,尽量选择普通的匿名代理和高匿名代理。 另外,为了防止代理服务器知道数据,建议使用HTTPS协议代理。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:代理IP2022-11-03发表,共计2095字。
新手QQ群:570568346,欢迎进群讨论 Python51学习