禁止搜索引擎爬虫抓取网站方法小结

本文主要通过查找网上资料,简单总结一下禁止搜索引擎爬虫抓取网站的方法。

一般情况,大家都是希望搜索引擎爬虫尽可能多的抓取自己的网站,但有时也需要告诉爬虫不要抓取,比如,不要抓取镜像页面等。

搜索引擎抓取自己的网站有它的好处,也存在许多常见问题:

1.网络堵塞丢包严重(上下行数据异常,排除DDOS攻击,服务器中毒。异常下载,数据更新)

2.服务器负载过高,CPU几乎跑满(针对相应的服务配置而定);

3.服务基本瘫痪,路由瘫痪;

4.查看日志发现大量的异常访问日志

一、先查看日志

以下以ngnix的日志为例

catlogs/www.ready.log|grepspider-c(看有爬虫标志的访问次数)

catlogs/www.ready.log|wc(合计总页面的访问次数)

catlogs/www.ready.log|grepspider|awk'{print$1}'|sort-n|uniq-c|sort-nr(查看爬虫的IP地址来源)

catlogs/www.ready.log|awk'{print$1""substr($4,14,5)}'|sort-n|uniq-c|sort-nr|head-20(查看爬虫的来源)

二、分析日志

晓得爬虫爬过那些内容,是什么爬虫爬的。什么时候爬的

常见的爬虫:

google蜘蛛:googlebotwww.google.com/bot.html

百度蜘蛛:baiduspiderwww.baidu.com/search/spider.html

yahoo蜘蛛:slurp

alexa蜘蛛:ia_archiver

msn蜘蛛:msnbot

altavista蜘蛛:scooter

lycos蜘蛛:lycos_spider_(t-rex)

alltheweb蜘蛛:fast-webcrawler/

inktomi蜘蛛:slurp

有道蜘蛛:YoudaoBotwww.youdao.com/help/webmaster/spider/

搜狗蜘蛛:Sogouspiderwww.sogou.com/docs/help/webmasters.htm#07

三、禁止方法

(一)、禁止IP

服务器配置中可以:denyfrom221.194.136

防火墙配置中可以:-ARH-Firewall-1-INPUT-mstate–stateNEW-mtcp-ptcp–dport80-s61.33.22.1/24-jREJECT

缺点:搜索引擎的爬虫可以能部署在多个服务器(多个IP)上,想完全获得某个搜索引擎的爬虫的全部IP比较困难。

(二)、robot.txt

1.什么是robots.txt文件?

搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。

您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。

2.robots.txt文件放在哪里?

robots.txt文件应该放在网站根目录下。举例来说,当robots访问一个网站(比如http://www.abc.com)时,首先会检查该网站中是否存在http://www.abc.com/robots.txt这个文件,如果机器人找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。

3."robots.txt"文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL,orNL作为结束符),每一条记录的格式如下所示:

"<field>:<optionalspace><value><optionalspace>"。

在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow行,详细情况如下:

User-agent:

该项的值用于描述搜索引擎robot的名字,在"robots.txt"文件中,如果有多条User-agent记录说明有多个robot会受到该协议的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何机器人均有效,在"robots.txt"文件中,"User-agent:*"这样的记录只能有一条。

Disallow:

该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow开头的URL均不会被robot访问到。例如"Disallow:/help"对/help.html和/help/index.html都不允许搜索引擎访问,而"Disallow:/help/"则允许robot访问/help.html,而不能访问/help/index.html。任何一条Disallow记录为空,说明该网站的所有部分都允许被访问,在"/robots.txt"文件中,至少要有一条Disallow记录。如果"/robots.txt"是一个空文件,则对于所有的搜索引擎robot,该网站都是开放的。

缺点:当两个域名指向同一个根目录时,如果想允许爬虫抓取其中一个域名的某些网页(A/,等),而想禁止爬虫抓取另外一个域名的这些网页(A/,等),这种方法就不能实现了。

(三)、服务器配置

以nginx服务器为例,可以在域名配置中增加配置

if($http_user_agent~*"qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo!Slurp|Yahoo!SlurpChina|YoudaoBot|Sosospider|Sogouspider|Sogouwebspider|MSNBot|ia_archiver|TomatoBot")

{

return403;

}

缺点:只能禁止爬虫抓取域名级别网页。灵活性不足。

相关推荐