×

robots.txt文件详解

前端技术网 前端技术网 发表于2024-02-02 21:29:55 浏览2461 评论0

抢沙发发表评论

一、什么是robots.txt文件

应该是robots.txt文件吧,

robots.txt文件详解

robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。Robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。

当一个搜索机器人robots(有的叫搜索蜘蛛或者爬虫)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索引擎爬虫就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索引擎爬虫就沿着链接抓取。

robots.txt文件限制抓取网络的搜索引擎爬虫对您的网站的访问。这些搜索引擎爬虫是自动的,它们在访问任意网站的网页之前,都会查看是否存在阻止它们访问特定网页的 robots.txt文件。(虽然某些搜索引擎爬虫可能会以不同的方式解释 robots.txt文件中的指令,但所有正规的搜索引擎爬虫都会遵循这些指令。然而,robots.txt不是强制执行的,一些垃圾信息发送者和其他麻烦制造者可能会忽略它。因此,我们建议对机密信息采用密码保护。)

只有当您的网站中包含您不想让搜索引擎编入索引的内容时,才需要使用 robots.txt文件。如果您希望搜索引擎将网站上的所有内容编入索引,则不需要 robots.txt文件(甚至连空的 robots.txt文件也不需要)。

为了能使用 robots.txt文件,您必须要有对您网站的根目录的访问权限(如果您不能确定是否有该权限,请与您的网络托管商核实)。如果您没有对网站的根目录的访问权限,可以使用robots元标记来限制访问。

二、网站robots.txt文件中这些内容是什么意思

robots是站点与 spider沟通的重要渠道,站点通过 robots文件声明该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。请注意,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用 robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立 robots.txt文件。

robots.txt文件详解

robots文件往往放置于根目录下,包含一条或更多的记录,这些记录通过空行分开(以 CR,CR/NL, or NL作为结束符),每一条记录的格式如下所示:<field>:<optional space><value><optionalspace>

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

User-agent:该项的值用于描述搜索引擎 robot的名字。在"robots.txt"文件中,如果有多条- User-agent记录说明有多个 robot会受到"robots.txt"的限制,对该文件来说,至少要有一条 User-agent记录。如果该项的值设为,则对任何 robot均有效,在"robots.txt"文件中,"User-agent:"这样的记录只能有一条。如果在"robots.txt"文件中,加入"User-agent:SomeBot"和若干 Disallow、Allow行,那么名为"SomeBot"只受到"User-agent:SomeBot"后面的 Disallow和 Allow行的限制。

Disallow:该项的值用于描述不希望被访问的一组 URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以 Disallow项的值开头的 URL不会被 robot访问。例如"Disallow:/help"禁止 robot访问/help.html、/helpabc.html、/help/index.html,而"Disallow:/help/"则允许 robot访问/help.html、/helpabc.html,不能访问/help/index.html。"Disallow:"说明允许 robot访问该网站的所有 url,在"/robots.txt"文件中,至少要有一条 Disallow记录。如果"/robots.txt"不存在或者为空文件,则对于所有的搜索引擎 robot,该网站都是开放的。

Allow:该项的值用于描述希望被访问的一组 URL,与 Disallow项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以 Allow项的值开头的 URL是允许 robot访问的。例如"Allow:/hibaidu"允许 robot访问/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一个网站的所有 URL默认是 Allow的,所以 Allow通常与 Disallow搭配使用,实现允许访问一部分网页同时禁止访问其它所有 URL的功能。

使用"*"and"$":Baiduspider支持使用通配符""和"$"来模糊匹配 url。""匹配 0或多个任意字符"$"匹配行结束符。

最后需要说明的是:百度会严格遵守 robots的相关协议,请注意区分您不想被抓取或收录的目录的大小写,百度会对 robots中所写的文件和您不想被抓取和收录的目录做精确匹配,否则 robots协议无法生效。

三、什么是robots协议网站中的robots.txt写法和作用

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

文件写法

User-agent:*这里的*代表的所有的搜索引擎种类,*是一个通配符

Disallow:/admin/这里定义是禁止爬寻admin目录下面的目录

Disallow:/require/这里定义是禁止爬寻require目录下面的目录

Disallow:/ABC/这里定义是禁止爬寻ABC目录下面的目录

Disallow:/cgi-bin/*.htm禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。

Disallow:/*?*禁止访问网站中所有包含问号(?)的网址

Disallow:/.jpg$禁止抓取网页所有的.jpg格式的图片

Disallow:/ab/adc.html禁止爬取ab文件夹下面的adc.html文件。

Allow:/cgi-bin/这里定义是允许爬寻cgi-bin目录下面的目录

Allow:/tmp这里定义是允许爬寻tmp的整个目录

Allow:.htm$仅允许访问以".htm"为后缀的URL。

Allow:.gif$允许抓取网页和gif格式图片

Sitemap:网站地图告诉爬虫这个页面是网站地图

文件用法

例1.禁止所有搜索引擎访问网站的任何部分

User-agent:*

Disallow:/

实例分析:淘宝网的 Robots.txt文件

User-agent: Baiduspider

Disallow:/

User-agent: baiduspider

Disallow:/

很显然淘宝不允许百度的机器人访问其网站下其所有的目录。

例2.允许所有的robot访问(或者也可以建一个空文件“/robots.txt” file)

User-agent:*

Allow:/

例3.禁止某个搜索引擎的访问

User-agent: BadBot

Disallow:/

例4.允许某个搜索引擎的访问

User-agent: Baiduspider

allow:/

例5.一个简单例子

在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。

需要注意的是对每一个目录必须分开声明,而不要写成“Disallow:/cgi-bin//tmp/”。

User-agent:后的*具有特殊的含义,代表“any robot”,所以在该文件中不能有“Disallow:/tmp/*” or“Disallow:*.gif”这样的记录出现。

User-agent:*

Disallow:/cgi-bin/

Disallow:/tmp/

Disallow:/~joe/

Robot特殊参数:

允许 Googlebot:

如果您要拦截除Googlebot以外的所有漫游器不能访问您的网页,可以使用下列语法:

User-agent:

Disallow:/

User-agent: Googlebot

Disallow:

Googlebot跟随指向它自己的行,而不是指向所有漫游器的行。

“Allow”扩展名:

Googlebot可识别称为“Allow”的 robots.txt标准扩展名。其他搜索引擎的漫游器可能无法识别此扩展名,因此请使用您感兴趣的其他搜索引擎进行查找。“Allow”行的作用原理完全与“Disallow”行一样。只需列出您要允许的目录或页面即可。

您也可以同时使用“Disallow”和“Allow”。例如,要拦截子目录中某个页面之外的其他所有页面,可以使用下列条目:

User-agent: Googlebot

Allow:/folder1/myfile.html

Disallow:/folder1/

这些条目将拦截 folder1目录内除 myfile.html之外的所有页面。

如果您要拦截 Googlebot并允许 Google的另一个漫游器(如 Googlebot-Mobile),可使用”Allow”规则允许该漫游器的访问。例如:

User-agent: Googlebot

Disallow:/

User-agent: Googlebot-Mobile

Allow:

使用*号匹配字符序列:

您可使用星号(*)来匹配字符序列。例如,要拦截对所有以 private开头的子目录的访问,可使用下列条目:User-Agent: Googlebot

Disallow:/private*/

要拦截对所有包含问号(?)的网址的访问,可使用下列条目:

User-agent:*

Disallow:/*?*

使用$匹配网址的结束字符

您可使用$字符指定与网址的结束字符进行匹配。例如,要拦截以.asp结尾的网址,可使用下列条目:User-agent: Googlebot

Disallow:/*.asp$

您可将此模式匹配与 Allow指令配合使用。例如,如果?表示一个会话 ID,您可排除所有包含该 ID的网址,确保 Googlebot不会抓取重复的网页。但是,以?结尾的网址可能是您要包含的网页版本。在此情况下,可对 robots.txt文件进行如下设置:

User-agent:*

Allow:/*?$

Disallow:/*?

Disallow:/*?

一行将拦截包含?的网址(具体而言,它将拦截所有以您的域名开头、后接任意字符串,然后是问号(?),而后又是任意字符串的网址)。

Allow:/*?$一行将允许包含任何以?结尾的网址(具体而言,它将允许包含所有以您的域名开头、后接任意字符串,然后是问号(?),问号之后没有任何字符的网址)。

尽管robots.txt已经存在很多年了,但是各大搜索引擎对它的解读都有细微差别。Google与百度都分别在自己的站长工具中提供了robots工具。如果您编写了robots.txt文件,建议您在这两个工具中都进行测试,因为这两者的解析实现确实有细微差别。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!