爬虫系列四:为你的爬虫加速

来源:互联网 发布:eosremote软件下载 编辑:程序博客网 时间:2024/05/29 13:46

注意:本文所写主要是基于单机的爬虫程序,也就是怎么把单机的爬虫程序,效率提高。

1、手工识别和拒绝爬虫的访问

有相当多的爬虫对网站会造成非常高的负载,因此识别爬虫的来源IP是很容易的事情。最简单的办法就是用netstat检查80端口的连接。

拒绝爬虫请求既可以通过内核防火墙来拒绝,也可以在web server拒绝。

应对方案:反IP,那么就变IP,设置代理。

2通过识别爬虫的User-Agent信息来拒绝爬虫

每个爬虫在爬取网页的时候,会声明自己的User-Agent信息,因此我们就可以通过记录和分析User-Agent信息来挖掘和封锁爬虫。其实在我们利用不同的浏览器浏览网页时,也会观察到,不同浏览器发送的这个User-Agent信息不一样,这一步就是让服务器认为我们是在利用不同的浏览器进行浏览。

 应对方案:侦测User-Agent,那么就改这一项。

3、用时间窗口来改进实时反爬虫系统
爬虫爬取网页的频率都是比较固定的,不像人去访问网页,中间的间隔时间比较无规则,所以我们可以给每个IP地址建立一个时间窗口,记录IP地址最近2次访问时间,每记录一次就滑动一次窗口,比较最近访问时间和当前时间,如果间隔时间很长判断不是爬虫,清除时间窗口,如果间隔不长,就回溯计算指定时间段的访问频率,如果访问频率超过阀值,就转向验证码页面让用户填写验证码。

 应对方案:

对于这种办法,解决方案就是,利用二进制规避算法,爬虫自动学习。


0 0