最近同事在做搜索引擎,一时兴起,搞了一个反搜索,主要参考这个:
Robot是帮助搜索引擎搜集网页的一种自动化程序,它在访问一个Web站点时,会跟随网页中的链接提取出站点上的大部分内容,并为这些网页建立索引,放在搜索引擎的数据库中。在一些情况下,Web管理员或网页的作者出于某种原因的考虑可能并不想让Robot提取站点上的某些内容,此时可以使用一些方法来限制Robot的访问范围。
限制Robot访问Web站点的方法共有两种,一种是由站点的Web管理员使用的Robot限制协议,目前绝大部分Robot都遵守该协议,另一种是由网页作者使用的Robot META标记,目前只有一小部分Robot支持该标记。
Robot限制协议
Robot限制协议的关键是在Web站点的根目录下放置一个文本文件Robot.txt。Robot在访问一个站点时会首先去读取该文件,分析其中的内容,并按照Web管理员的规定不去访问某些文件。下面是Robot.txt的一个例子:
# http://www.yoursite.com/robots.txt
User-agent:
Disallow: /tmp/ # these files will soon be deleted
Disallow: /test.html
User-agent: InfoSeek Robot 1.0
Disallow: /
其中"#"后面的内容是注释,User-agent命令用于指定它下面的Disallow命令对何种Robot有效,""表示对所有Robot都有效,上面例子中第二个User-agent命令表示其下面的Disallow命令只对Infoseek的1.0版Robot有效。Disallow命令用于指定哪些目录或文件不能被访问,如果指定了"/",那么所有文件都不允许访问,Disallow命令在一行中只能放一个目录或一个文件,如果有多个目录,则必须分别放在几行中。
上面的Robot.txt文件是目前还在使用的早期Robot限制协议规定的内容,现在还有一个关于如何限制Robot的Internet草案正在制定之中,它对早期Robot限制协议进行了很多扩充,但还未进入实用阶段。
Robot META标记
绝大多数情况下,网页作者并非Web管理员,如果网页作者不想让Robot访问自己编写的一些HTML文件,那么可以请Web管理员帮忙在Robot.txt中注明,或者使用Robot META标记。
META标记是HTML文件中用来放置一些不可见信息的一种标记,它必须放在HTML文件的Head部分中。Robot META标记是一种特殊的META标记,下面是它的几个例子:
〈meta name=″robots″ content=″index,follow″〉
〈meta name=″robots″ content=″noindex,follow″〉
〈meta name=″robots″ content=″index,nofollow″〉
〈meta name=″robots″ content=″noindex,nofollow″〉
Robot META标记的name部分为"robots",content部分可以是"index"、"noindex"、"follow"和"nofollow"的组合。"index"表示搜索引擎可以为该HTML文件建立索引,"follow"表示搜索引擎可以使用该HTML文件中的链接来访问其它文件,"noindex"和"nofollow"与"index"和"follow"的意义正好相反。在组合使用这几个命令时,不能出现逻辑矛盾,即不能同时指定"index"、"noindex",或"follow"、"nofollow"。另外,如果要指定"index,follow",可以使用"all"来代替,如果要指定"noindex"、"nofollow",可以使用"none"来代替。
使用Robot META标记的缺点是比较麻烦,对每一个HTML文件都要进行修改,另外,很多Robot并不支持该标记。