(爬虫学习笔记5)爬虫代理基本理解(代理的基本理解、基本原理、作用和分类)

爬虫代理基本理解

一、概况:

​ 我们在做爬虫时常常会遇到这种情况,最初爬虫正常运行,但是一段时间之后会出现错误,比如:403 Forbidden。这时候我们再打开目标网页就会看到 “您的 IP 访问频率太高” 这样的提示。出现这种情况的原因是网站采取了一些反爬虫措施。比如:服务器会检测某个 IP 在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为 “封 IP”。

​ 如果服务器会检测某个 IP 单位时间的请求次数,那么借助某种方式来伪装我们的 IP,让服务器识别不出来是由我们本机发出的,不就可以成功防止 IP 被封了吗。一种有效的方法就是 使用代理。

二、基本原理:

​ 代理指的是代理服务器。我们在正常请求一个网站时,是由我们的本机发送了请求给 Web 服务器,Web 服务器再把响应传回给我们的本机。如果设置了代理服务器,实际上就是在本机和服务器之间搭建了一个中转站,此时本机不是直接向 Web服务器 发送请求,而是向 代理服务器 发送请求,请求再由 代理服务器 发送给 Web服务器 ,接着 Web服务器 再将响应传回 代理服务器,代理服务器 再将响应传给我们本机。这样我们可以正常访问网页,但是这个过程中 Web服务器 识别出来的真实 IP 就不再是我们的本机 IP ,我们也就成功的伪装了 IP,这就是代理的基本原理。

三、代理的作用:

  1. 突破自身 IP 访问限制,访问一些平时不能访问的站点;
  2. 访问一些单位或团体内部资源:比如使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类 FTP 下载上传,以及各类资料查询共享等服务;
  3. 提高访问速度:通常代理服务器都设置一个比较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度;
  4. 隐藏真实 IP:上网者也可以通过这种方式隐藏自己的 IP,免受攻击,对爬虫来说,我们使用代理就是为了隐藏自己的 IP,防止自身 IP 被封锁。

四、代理分类:

代理分类时,既可以根据协议区分,也可以根据其匿名程度区分。

1、根据协议区分:

  • FTP 代理服务器:
    主要用于访问 FTP 服务器,一般有长传、下载以及缓存功能,端口一般为 21、2121 等;

  • HTTP 代理服务器:
    主要用于访问网页,一般有内容过滤和缓存功能,端口一般为 80、8080、3128 等;

  • SSL / TLS 代理:
    主要用于访问加密网站,一般有 SSL 或 TLS 加密功能(最高支持 128 位加密强度),端口一般为 443;

  • RTSP 代理:
    主要用于访问 Real 流媒体服务器,一般有缓存功能,端口一般为 554;

  • Telnet代理:
    主要用于访问 telnet 远程控制(黑客入侵计算机时常用于隐藏身份),端口一般为 23;

  • POP3 / SMTP 代理:
    主要用于 POP3 / SMTP 方式收发邮件,一般有缓存功能,端口一般为 110 / 25;

  • SOCKS 代理:
    只是单纯传递数据包,不关系具体协议和用法,所以速度快很多,一般有缓存功能,端口一般为 1080。其中 SOCKS 代理协议又分为 SOCKS4 和 SOCKS5,前者只支持 TCP,而后者支持 TCP 和 UDP,还支持各种身份验证机制、服务器端域名解析等。简单说 SOCKS5 能做到的 SOCKS4 不一定能做到,但是 SOCKS4 能做到的 SOCKS5 一定能做到。

2、根据匿名程度区分

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

  • 普通匿名代理:
    会在数据包上做一些改动,服务端上有可能发现这是代理服务器,也有一定机率追查到客户端的真实 IP。代理服务器通常会加入的 HTTP 头有 HTTP_VIA 和 HTTP_X_FORWARDED_FOR。

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

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

五、常见代理设置:

  • 使用网上的免费代理:
    最好使用高匿代理,另外可用的代理不多,需要在使用前筛选一下可用代理,也可以进一步维护一个代理池。

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

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

所有内容全部引自《python3 网络爬虫开发实战(人民邮电出版社)》,此笔记仅用于学习交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章