一、网络爬虫使用代理

网络代理常用于Python爬虫,爬虫程序通常会以高并发多线程的方式运行,所需爬取的任务量大,会对站点服务器造成很大的负载,需要使用代理IP帮助完成任务,否则很容易被所爬取的站点服务器发现,限制其访问。

爬虫使用网络代理的优点:

  • 可以提高爬取速度和效率,代理IP服务器位于互联网的核心节点,它们具有更快的数据传输速度和更低的延迟。
  • 可以规避IP在单位时间的请求次数,防止出现“IP请求过于频繁”或“403”等错误。

二、双重代理和多重代理

双重代理指代理软件再套一层中转代理(如VPS反代CF家的中转服务器)。
多重代理就是在双重代理的基础上“俄罗斯套娃”。

三、共享代理

多数代理软件都会提供一个TCP的代理端口(监听端口)。主要问题在于代理软件的监听端口基本绑定在本机的127.0.0.1上。代理只能被本机软件使用,外部主机的软件无法连接到该端口。

1.共享代理——本机方案

最简单的解决方案,就是修改代理软件的配置,把监听端口绑定到0.0.0.0上。
其次是“端口转发”,也称“端口映射”,主要弥补部分代理软件,无法修改配置文件的缺陷。

以Windows系统自带的netsh举例:

  • 以管理员身份登录,进入“控制面板”下面的“网络连接”
  • 选中本地连接,点右键,在右键菜单选“属性”
  • 弹出“属性”对话框,点“安装”按钮
  • 弹出“选择网络组件类型”对话框,选“协议”,再点“添加”按钮
  • 在弹出的对话框中选“IPv6”,点“确定”即可

2.共享代理——虚拟机方案

单独开一个虚拟机(Guest OS),专门用来安装代理软件。在该虚拟机中,除了代理软件,不安装其它任何东西。

该方案的好处在于:

  • 即使某些代理软件存在漏洞,也不会威胁到真实系统(Host OS)的安全。
  • 虚拟机之间可以进行网络隔离,确保本机的桌面程序总是经过代理联网,防止公网IP地址暴露。

首先,参照前面介绍的“端口转发”方法,再配置虚拟机的网卡模式,两种模式任选其一:

NAT模式

  • 添加“端口映射”,把真实系统(Host OS)上的某个端口映射到虚拟机(Guest OS)的NAT网卡上的另一个端口

Bridge模式

  • 无需任何额外设置,该模式的虚拟网卡,对于真实系统(Host OS)之外的网络是可见的,因此其它主机可以直接连接该虚拟机上的代理端口。