最常见的反爬技术之一就是通过客户端的IP鉴别是否为爬虫。如果同一个IP在短时间内大量访问服务器的不同页面,那么极有可能是爬虫,如果服务端认为客户端是爬虫,很有可能将客户端所使用的IP临时或永久禁用,这样爬虫就再也无法访问服务器的任何资源了,当然,如果使用的是ADSL或光纤宽带,重新拨一下号或重启一下,一般会更换IP。但爬虫的任务是从服务器抓取成千上万的资源,光换几个IP是没用的,这就要求爬虫在抓取服务器资源时,需要不断更换IP,而且是大量的,数以万计的IP。更换IP的方式有很多,最常用,最简单的方式就是使用代理服务器。尽管一个代理服务器一般只有一个固定的IP,但我们可以不断更换代理服务器,这样就会使用大量的IP访问服务器,对于服务器而言,就会认为是成千上万不同客户端发送的请求。这样就成功欺骗的服务器。
使用ProxyHandler类可以设置HTTP和HTTPS代理,但在设置代理之前,首先要有代理服务器。代理服务器可以自己搭建,也可以使用第三方的服务器。本节会分别介绍如何自己搭建服务器以及如何从第三方获得代理服务器。
我们可以使用nginx服务器搭建HTTP服务器,打开根目录>/conf/nginx.conf文件,在http{...}中加入如下的代码:
server {
resolver 192.168.31.1;
listen 8888;
location / {
proxy_pass http://$http_host$request_uri;
}
}
其中resolver是DNS服务器