注册
登录
提问时间:2018/8/20 14:48:42    楼主:未知网友   阅读量:321

互联网上的网页数据是海量的,爬虫的工作量是巨大的,所以爬虫程序的性能是非常重要的。不同的应用对应的爬虫也各不相同,相应的策略也不相同,那么优秀的爬虫具备哪些特性呢?

一、高性能

这里的高性能指的是指爬虫的高效性、稳定性、持续性,单位时间内能够爬取的网页越多,同时又能持续稳定的爬取,那么爬虫的性能就越高。

要提高爬虫的性能,在程序设计时对数据结构的选择尤为重要,同时爬虫的策略以及反反爬虫的策略也不容忽视,并且需要利用优质的代理IP来辅助爬虫工作。

二、可扩展性

即使单个爬虫的性能提高到非常高了,但面对海量的数据依然需要相当长的周期,为了尽量缩短爬虫的任务周期,爬虫系统还应该有很好的扩展性,可以通过增加抓取服务器和爬虫数量来达到目的。每台服务器部署多个爬虫,每个爬虫多线程运行,通过多种方式增加并发性,也就是分布式爬虫。

三、健壮性

爬虫在访问各种类型的网站服务器时,可能会遇到各种非常的情况或者突发情况,比如网页HTML编码不规范,目标服务器突然死机,甚至是代理服务器突然故障,爬虫如果能够对各种异常情况作出正确处理,不会不定期的停止工作,这就是爬虫健壮性的一种体现。

四、友好性

爬虫的友好性有两方面的含义:一是保护网站的部分私密性,二是减少目标网站的网络负载,其实还有一种是在使用代理IP时,减少代理服务器的网络负载。

对于网站所有者来说,有些内容是不希望被泄露的,一般会有robot.txt文件来指定哪些禁止爬取,或者在HTML代码里加入 meta name="robots"标记。作为友好的爬虫,一定要遵守这个协议。

友好的爬虫不能影响到目标服务器的正常运行,给目标服务器造成太大的访问压力,这样也容易被封IP限制爬取,在使用代理IP的时候也是一样,对代理服务器造成太大的压力,最终还是影响自己爬虫工作的稳定进行。