Spider: 以遵守robots.txt协议为荣 以匿名盗抓为耻
按照是否匿名和是否遵循robots.txt协议有4种蜘蛛: 1 真名真姓,遵循robots.txt 协议。代表:GoogleBot BaiduSpider MSNBot Yahoo!Slurp 等 2 真名真姓,不遵循robots.txt协议。代表:iAskSpider SohuAgent wget 3 匿名,不遵循robots.txt协议。代表:大量的匿名蜘蛛,例如 OutfoxBot; 4 伪装:不遵循robots.txt协议。代表:中搜,各种SpamBot,
如何识别这四类蜘蛛呢?通过HTTP协议和是否支持mod_gzip都很好的特征。做一个知荣知耻的spider很难吗?事实上:比较难。没有一定的技术积累,spider就和spambot一样。详细分析附后:
先看看第一类: GoogleBot: 除了遵循robots.txt外,也支持HTTP 1.1压缩,可以非常有效的节省带宽;
第二类的和第三类的还好办,至少方便通过web服务器通过agent判断进行控制。最烦的就是第四类:不但无法防止,还给日志统计分析带来了很多麻烦。
但如果服务上安装了mod_gzip支持,就可以区分出了:因为机器人对HTTP 1.1支持到HTTP压缩还是有一定难度的,如果来自某个IP有大量的MSIE 访问,却是只支持HTTP 1.0请求或者支持HTTP 1.1但又不支持压缩那个就有可能是伪装spam了。
中搜多年以来一直伪装成Mozilla/4.0 (compatible;MSIE 5.5;Windows NT 5.0),从中搜上的CrawledBy结果就可以看出来:
做一个知荣知耻的spider很难吗?