Robots文件究竟应该怎么写?

最近网站上线的缘故,忙于各种琐碎的工作。一直没来得及来园子里更新博客。

分享一下网站测试的时候robots文件遇到的问题吧。

网上是可以找到一些教程的,包括写robots文件的规则。

通过百度或者google,我们可以搜索到一些相关的robots.txt文件协议或者robots文件写法相关的资料,一般会给出Disallow的用法。例如

Disallow:是用来禁止抓取。

写法如下:

User-agent: * (所有搜索引擎)

Disallow: /      (禁止根目录下所有文件,所有目录)

 

禁止抓取某个页面

User-agent: * (所有搜索引擎)

Disallow: /      (禁止根目录下所有文件,所有目录)

 

禁止抓取某个文件夹

User-agent: * (所有搜索引擎)

Disallow: /folder1/      (禁止某个目录)

 

具体规则可以查看百度百科词条,写的已经很完整了。 

 

我在操作的过程中,参阅了一些资料,包括百度百科和google站长工具。但是还是遇到一些问题,如下:

 问题一:

google网站管理员-网站配置-抓取工具的权限   抓取测试结果显示

第一行: ?User-agent:*

第二行:Disallow: /

 

 抓取结果显示第一行是 “ ?User-agent:* ” 的情况应该比较常见,这个问题是由于google抓取的时候对字符编码的要求,如果是用的UTF-8编码,就会出现上面的错误,抓取的结果显示多一个问号出来。

转换一下编码,用ANSI编码,这个问题就可以解决掉了。

或者第一行敲回车空掉一行再输入 User - agent... 这个方法是其他地方看到的,本人没有试过。有兴趣的朋友可以尝试下。

 

问题二:

对于robots文件的协议,可以参阅robotstxt.org。 具体的参数的写法,不是所有搜索引擎都一致。

比如百度给出的,禁止某一类文件的方法,可以用通配符“*”和终止符$来控制:

User-agent: Baiduspider 

Allow: /robots.txt
Disallow: /*.jpg$ 
Disallow: /* .jpeg$ 
Disallow:/* .gif$ 
Disallow:/* .png$ 
Disallow: /*.bmp$

问题是,这个格式只是对百度有效,如果是写成:

User-agent: *

Allow: /robots.txt
Disallow: /*.jpg$ 
Disallow: /* .jpeg$ 
Disallow:/* .gif$ 
Disallow:/* .png$ 
Disallow: /*.bmp$

 

http://tool.motoricerca.info/robots-checker.phtml

用robots文件检测工具进行检查的时候会有一些警告和提示,选择其中有代表性的解释如下:

Allow: /robots.txt
Unknown command. Acceptable commands are "User-agent" and "Disallow".
A robots.txt file doesn't say what files/directories you can allow but just what you can disallow

Allow: 

# 未知的参数,可被接受的指令是“User-agent”(漫游器)和“Disallow“(禁止)

一个robots.txt文件不是注释那些文件/目录是允许抓取,而是用来禁止那些内容。

 

Disallow: /*.doc$
The "*" wildchar in file names is not supported by (all) the user-agents addressed by this block of code. You should use the wildchar "*" in a block of code exclusively addressed to spiders that support the wildchar (Eg. Googlebot).

# 不是所有的搜索引擎漫游器支持文件名使用通配符”*“来处理的,您应该仅仅对支持通配符的爬虫(在代码块中)单独使用通配符”*“(例:Googlebot)

 翻译的不是太好,大家能理解就好,看不懂我的注释干脆去看原文。

 

Allow用的时候要注意,如果仅仅是简单的允许被索引 不需要使用这个参数,只是在要拦截子目录中某个页面之外的其他所有页面,(禁止某个目录的多数文件,但是此目录下的某些文件又能被查看),此时可以使用下面的条目

Allow:/A/B

Disallow:/A/

 

对于通配符,可能不是所有的SErobot都支持,所以要清楚那些SE是可以使用的,对于不可以使用通配符的,需要另外的方案来解决问题了。根据自己网站的需求,分别对不同的搜索引擎单独来写吧。

 

 

posted @ 2011-12-06 12:54  Bobby的数据分析之路  阅读(535)  评论(0)    收藏  举报