爬虫基础—代理的基本原理

个人简介
作者简介:大家好,我是W_chuanqi,一个编程爱好者
个人主页:W_chaunqi
支持我:点赞+收藏⭐️+留言
愿你我共勉:“若身在泥潭,心也在泥潭,则满眼望去均是泥潭;若身在泥潭,而心系鲲鹏,则能见九万里天地。”✨✨✨

爬虫基础—代理的基本原理_第1张图片

文章目录

  • 第1章 爬虫基础
    • 1.5 代理的基本原理
      • 1.基本原理
      • 2.代理的作用
      • 3.爬虫代理
      • 4.代理分类
        • •根据协议区分
        • •根据匿名程度区分
      • 5.常见代理设置

第1章 爬虫基础

1.5 代理的基本原理

​ 在做爬虫的过程中经常会遇到一种情况,就是爬虫最初是正常运行、正常抓取数据的,一切看起来都是那么美好。然而一杯茶的工夫就出现了错误,例如 403 Forbidden,这时打开网页一看,可能会看到“您的 IP访问频率太高”这样的提示。出现这种现象是因为网站采取了一些反爬虫措施。例如服务器会检测某个 IP在单位时间内的请求次数,如果请求次数超过设定的阈值,就直接拒绝提供服务,并返回一些错误信息,可以称这种情况为封 IP。

​ 既然服务器检测的是某个IP在单位时间内的请求次数,那么借助某种方式把我们的 IP 伪装一下,让服务器识别不出请求是由我们本机发起的,不就可以成功防止封 IP了吗?

​ 一种有效的伪装方式是使用代理,后面会详细说明代理的用法。在这之前,需要先了解代理的基本原理,它是怎样实现伪装 IP 的呢?

1.基本原理

​ 代理实际上就是指代理服务器,英文叫作 Proxy Server,功能是代网络用户取得网络信息。形象点说,代理是网络信息的中转站。当客户端正常请求一个网站时,是把请求发送给了 Web 服务器,Web 服务器再把响应传回给客户端。设置代理服务器,就是在客户端和服务器之间搭建一座桥,此时客户端并非直接向 Web 服务器发起请求,而是把请求发送给代理服务器,然后由代理服务器把请求发送给 Web服务器,Web服务器返回的响应也是由代理服务器转发给客户端的。这样客户端同样可以正常访问网页,而且这个过程中 Web服务器识别出的真实P就不再是客户端的护了,成所实现了他情
装,这就是代理的基本原理。

2.代理的作用

​ 代理有什么作用呢?我们可以简单列举如下。

  • 突破自身 IP 的访问限制,访向一些平时不能访问的站点。
  • 访问一些单位或团体的内部资源。比如,使用教育网内地址段的免费代理服务器。就可以下貌和上传对教育网开放的各类 FTP,也可以查询、共享各类资料等。
  • 提高访问速度。通常,代理服务器会设置一个较大的硬盘缓神区,当有外界的悄息遍过时,会同时将其保存到自己的缓冲区中,当其他用户访向相同的信息时,直接从缓冲区中取出销息。提高了访问速度。
  • 隐藏真实 IP。上网者可以通过代理隐藏自己的 IP,免受攻击。对于爬虫来说,使用代躍就是为了隐藏自身 IP,防止自身的 IP 被封锁。

3.爬虫代理

​ 对于爬虫来说,由于爬取速度过快,因此在爬取过程中可能会遇到同一个 IP 访问过于频繁的同题,此时网站会让我们输入验证码登录或者直接封锁 IP,这样会给爬取造成极大的不便。

​ 使用代理隐藏真实的IP,让服务器误以为是代理服务器在请求自己。这样在爬取过程中不断更换代理,就可以避免 IP被封锁,达到很好的爬取效果。

4.代理分类

对代理进行分类时,既可以根据协议,也可以根据代理的匿名程度,这两种分类方式分别总结如下。

•根据协议区分

根据代理的协议,代理可以分为如下几类。

  • FTP 代理服务器:主要用于访问 FTP服务器,一般有上传、下载以及缓存功能,端口一般为21、2121 等。
  • HTTP 代理服务器:主要用于访向网页,一般有内容过滤和缓存功能,端口一般为80、8080、3128等。
  • SSL/TLS代理:主要用于访向加密网站,一般有 SSL 或 TLS 加密功能(最高支持 128 位加密强度),端口一般为 443。
  • RTSP 代理:主要用于 Realplayer 访问 Real 流媒体服务器,一般有缓存功能,端口一般为 554。
  • Telnet 代理:主要用于 Telnet 远程控制(黑客人侵计算机时常用于隐藏身份),端口一般为23。
  • POP3/SMTP 代理:主要用于以 POP3/SMTP 方式收发邮件,一般有缓存功能,端口一般为110/25。
  • SOCKS 代理:只是单纯传递数据包,不关心具体协议和用法,所以速度快很多,一般有缓存功能,端口一般为1080。SOCKS 代理协议又分为 SOCKS4 和SOCKS5,SOCKS4 协议只支持TCP,SOCKS5 协议则支持 TCP 和 UDP,还支持各种身份验证机制、服务器端域名解析等。简单来说,SOCKS4 能做到的 SOCKS5 都能做到,但 SOCKS5 能做到的 SOCKS4 不一定做得到。

•根据匿名程度区分

根据代理的匿名程度,代理可以分为如下几类。

  • 高度匿名代理:高度匿名代理会将数据包原封不动地转发,在服务端看来似乎真的是一个普通客户端在访问,记录的 IP 则是代理服务器的 IP。

  • 普通匿名代理:普通匿名代理会对数据包做一些改动,服务端可能会发现正在访问自己的是个代理服务器,并且有一定概率去追查客户端的真实 IP。这里代理服务器通常会加入的 HTTP头有HTTP_VIA 和HTTP_X_FORWARDED_FOR。

  • 透明代理:透明代理不但改动了数据包,还会告诉服务器客户端的真实 IP。这种代理除了能用缓存技术提高浏览速度,用内容过滤提高安全性之外,并无其他显著作用,最常见的例子是内网中的硬件防火墙。

  • 间谍代理:间谍代理是由组织或个人创建的代理服务器,用于记录用户传输的数据,然后对记录的数据进行研究、监控等。

5.常见代理设置

常见的代理设置如下。

  • 对于网上的免费代理,最好使用高度匿名代理,可以在使用前把所有代理都抓取下来筛选一下可用代理,也可以进一步维护一个代理池。

  • 使用付费代理服务。互联网上存在许多可以付费使用的代理商,质量要比免费代理好很多。

  • ADSL 拨号,拨一次号换一次 IP,稳定性高,也是一种比较有效的封锁解决方案。

  • 蜂窝代理,即用 4G 或 5G 网卡等制作的代理。由于用蜂窝网络作为代理的情形较少,因此整体被封锁的概率会较低,但搭建蜂窝代理的成本是较高的。

你可能感兴趣的:(Python爬虫,爬虫,python,服务器)