有一种力量其实一直在渗入大量的网站和页面,我们通常看不到它们,而且它们通常也很蛮横,大部分人甚至不知道它的存在,大家不要误会,其实我说得是搜索引擎爬虫和机器人。每天,上百个这样的爬虫会出来对网站进行快速的搜索。不管是不是google打算对整个网络进行索引,还是spam机器人打算收集大量的 email地址,通常它们这样的寻找是漫无目的的。作为网站拥有者,我们可以通过一个叫做robots.txt的文件来控制哪些动作是机器人可以做的。
创建robots.txt文件
好,现在我们开始行动。创建一个叫robots.txt的文本文件,请确保它的文件名是正确的。该文件必须上传到在您的网站的根目录下,而不是二级目录下(例如,应该是http://www.mysite.com,而不是http: //www.mysite.com/stuff),只有满足以上两点,即文件名正确和路径正确,搜索引擎才会根据该文件中的规则工作,否则 robots.txt仅仅只是个常规文件而已,没有任何作用。
现在,你已经知道如果这个文件该如何命名,以及应该把它上传在何处,接下来你会学习在这个文件中键入命令,搜索引擎会遵循一个叫做“机器人排除协议”(Robots Exclusion Protocol)的协议。其实,它的格式很简单,并且能够满足大多数的控制需要。首先是一行USERAGENT用来识别爬虫类型,紧跟着的是一行或者多行DISALLOW,这些行是用来限制爬虫访问网站的一些部分的。
1) robots.txt基本设置
User-agent: *
Disallow: /根据以上的声明,所有的爬虫(这里用*表示出来)均不允许对您的网站的任何部分进行索引,这里的/表示所有页面。通常情况下这不是我们需要的,但这里仅仅是让大家有个概念而已。
2) 现在让我们做一些小小的改动。尽管每个站长都喜欢Google,但是你可能不希望Google的镜像机器人挖掘你的网站,也不希望它把你的网站的镜像放在网上,实现在线搜索,如果仅仅是为了节省你的网站所在的服务器的带宽,下面的声明可以做到这一点
User-agent: Googlebot-Image
Disallow: /3) 以下代码不允许任何一个搜索引擎和机器人挖掘目录和页面信息
User-agent: *
Disallow: /cgi-bin/
Disallow: /privatedir/
Disallow: /tutorials/blank.htm4) 你还可以对多个机器人设置不同的目标,看看下面的代码
User-agent: *
Disallow: /
User-agent: Googlebot
Disallow: /cgi-bin/
Disallow: /privatedir/这个设置很有趣,这里我们禁止了所有的搜索引擎对于我们的网站的挖掘操作,除了google,在这里Google被允许访问除了/cgi-bin/和/privatedir/以外的所有站点。这里说明,规则是可以定制的,但不是继承而来的。
3) 有另外一种使用Disallow的方法:即允许访问网站所有内容,其实只要冒号后不输入任何东西就可以了
User-agent: *
Disallow: /
User-agent: ia_archiver
Disallow:在这里,除了alex以外的所有爬虫都不允许搜索我们的网站
4) 最后,一些爬虫现在支持Allow规则,最著名的就是Google。正如这个规则的名字所说,"Allow:"允许你精确的控制那些文件或者文件夹是可以被访问的。然而,这个文件目前还不是robots.txt协议的组成部分,所以我建议只有在必须使用时才使用它,因为一些不够聪明的爬虫可能认为它是错误的。
下面的内容来自于Google's的FAQs for webmasters,如果你希望除了Google以外的爬虫都不挖掘你的网站,那么以下的代码是做好的选择
User-agent: *
Disallow: /
User-agent: Googlebot
Allow: /
原文:http://javascriptkit.com/howto/robots.shtml 译者:Tony Qu,BluePrint翻译团队