【Python网络蜘蛛】:基础 - 代理的基本原理

文章目录

  • 代理的基本原理
    • 基本原理
    • 代理的作用
    • 代理分类
    • 常见代理设置

代理的基本原理


在抓取数据的过程中经常会遇到这样的情况,一开始抓取数据是正常的,但是一杯茶的功夫就出现了错误,例如403 Forbidden。出现这种现象是因为网站采取了一些反爬虫的措施。

例如服务器会检测某个IP在单位时间内的请求次数,如果请求次数超过设定的阙值,就直接提供服务,并返回一些错误信息,可以称这种情况为封IP。

一种有效的解决方法就是使用代理进行伪装。

基本原理

设置代理服务器,就是在客户端和服务器之间搭建一座桥,此时客户端并非直接向Web服务器发起请求,而是把请求发送给代理服务器,然后由代理服务器把请求发送给Web服务器,Web服务器返回的响应也是由代理服务器发送给客户端。

这样客户端同样可以正常访问网页,而且这个过程中Web服务器识别出的真实IP就不再是客户端的IP了,成功实现了IP伪装,这就是代理的基本原理。

代理的作用

  • 突破自身IP的访问限制,访问一些平时不能访问的站点。
  • 访问一些单位或团体的内部咨源。
  • 提高访问速度。通常,代理服务器会设置一个较大的硬盘缓冲区,当有外界的信息通过时,会同时将其保存到自己的缓冲区中,当其他用户访问相同的信息时,直接从缓冲区中取出信息,提高了访问速度。
  • 隐藏真实IP。

代理分类

  • 根据协议区分
    • 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能做到的SOCKS3郁能做到,但 SOCKS5 能做到的 SOCKS4不一定做得到。
  • 根据匿名程度区分
    • 高度匿名代理:高度匿名代理会将数据包原封不动地转发,在服务端看来似乎真的是一个普通客户端在访问,记录的IP则是代理服务器的IP。
    • 普通匿名代理:普通匿名代理会对数据包做一些改动,服务端可能会发现正在访问自己的是个代理服务器,并且有一定概率去追查客户端的真实IP。这里代理服务器通常会加入的HTTP头有HTTP_VIA和 HTTP_X_FORWARDED_FOR。
    • 透明代理:透明代理不但改动了数据包,还会告诉服务器客户端的真实IP。这种代理除了能用缓存技术提高浏览速度,用内容过滤提高安全性之外,并无其他显著作用,最常见的例子是内网中的硬件防火墙。
    • 间谍代理:间谍代理是由组织或个人创建的代理服务器,用于记录用户传输的数据,然后对记录的数据进行研究、监控等。

常见代理设置

  • 对于网上的免费代理,最好使用高度匿名代理,可以在使用前把所有代理都抓取下来筛选一下可用代理,也可以进一步维护一个代理池。
  • 使用付费代理服务。互联网上存在许多可以付费使用的代理商,质量要比免费代理好很多。
  • ADSL拨号,拨一次号换一次IP,稳定性高,也是一种比较有效的封锁解决方案。
  • 蜂窝代理,即用4G或5G网卡等制作的代理。由于用蜂窝网络作为代理的情形较少,因此整体被封锁的概率会较低,但搭建蜂窝代理的成本是较高的。

你可能感兴趣的:(Python网络爬虫开发实战,代理,Python爬虫)