首页技术robotstxt(网站robots.txt文件简析)

robotstxt(网站robots.txt文件简析)

编程之家2024-01-23106次浏览

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

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

robotstxt(网站robots.txt文件简析)

文件写法

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

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

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

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

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

robotstxt(网站robots.txt文件简析)

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

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

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

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

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

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

robotstxt(网站robots.txt文件简析)

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文件,建议您在这两个工具中都进行测试,因为这两者的解析实现确实有细微差别。

二、"robots.txt"是什么求大神帮助

一.什么是robots.txt文件?搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。二.robots.txt文件放在哪里? robots.txt文件应该放在网站根目录下。举例来说,当robots访问一个网站(比如)时,首先会检查该网站中是否存在这个文件,如果机器人找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。网站URL相应的robots.txt的URL robots.txt robots.txt robots.txt 三.robots.txt文件的格式"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,该网站都是开放的。四.robots.txt文件用法举例例1.禁止所有搜索引擎访问网站的任何部分下载该robots.txt文件 User-agent:* Disallow:/例2.允许所有的robot访问(或者也可以建一个空文件"/robots.txt"file)?? User-agent:* Disallow:例3.禁止某个搜索引擎的访问 User-agent:BadBot Disallow:/例4.允许某个搜索引擎的访问 User-agent:baiduspider Disallow: User-agent:* Disallow:/例5.一个简单例子在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。需要注意的是对每一个目录必须分开声明,而不要写成"Disallow:/cgi-bin//tmp/"。 User-agent:后的*具有特殊的含义,代表"anyrobot",所以在该文件中不能有"Disallow:/tmp/*"or"Disallow:*.gif"这样的记录出现. User-agent:* Disallow:/cgi-bin/ Disallow:/tmp/ Disallow:/~joe/五.robots.txt文件参考资料 robots.txt文件的更具体设置,请参看以下链接:·WebServerAdministrator''sGuidetotheRobotsExclusionProtocol·HTMLAuthor''sGuidetotheRobotsExclusionProtocol·Theoriginal1994protocoldescription,ascurrentlydeployed·TherevisedInternet-Draftspecification,whichisnotyetcompletedorimplemented在你的主页中为WebRobot设计路标 Internet越来越酷,WWW的知名度如日中天。在Internet上发布公司信息、进行电子商务已经从时髦演化成时尚。作为一个WebMaster,你可能对HTML、javascript、Java、ActiveX了如指掌,但你是否知道什么是WebRobot?你是否知道WebRobot和你所设计的主页有什么关系? Internet上的流浪汉---WebRobot有时你会莫名其妙地发现你的主页的内容在一个搜索引擎中被索引,即使你从未与他们有过任何联系。其实这正是WebRobot的功劳。WebRobot其实是一些程序,它可以穿越大量Internet网址的超文本结构,递归地检索网络站点所有的内容。这些程序有时被叫“蜘蛛(Spider)”,“网上流浪汉(WebWanderer)”,“网络蠕虫(webworms)”或Webcrawler。一些Internet网上知名的搜索引擎站点(SearchEngines)都有专门的WebRobot程序来完成信息的采集,例如Lycos,Webcrawler,Altavista等,以及中文搜索引擎站点例如北极星,网易,GOYOYO等。 WebRobot就象一个不速之客,不管你是否在意,它都会忠于自己主人的职责,任劳任怨、不知疲倦地奔波于万维网的空间,当然也会光临你的主页,检索主页内容并生成它所需要的记录格式。或许有的主页内容你乐于世人皆知,但有的内容你却不愿被洞察、索引。难道你就只能任其“横行”于自己主页空间,能否指挥和控制WebRobot的行踪呢?答案当然是肯定的。只要你阅读了本篇的下文,就可以象一个交通警察一样,布置下一个个路标,告诉WebRobot应该怎么去检索你的主页,哪些可以检索,哪些不可以访问。其实WebRobot能听懂你的话不要以为WebRobot是毫无组织,毫无管束地乱跑。很多WebRobot软件给网络站点的管理员或网页内容制作者提供了两种方法来限制WebRobot的行踪: 1、RobotsExclusionProtocol协议网络站点的管理员可以在站点上建立一个专门格式的文件,来指出站点上的哪一部分可以被robot访问,这个文件放在站点的根目录下,即robots.txt."target="_blank">. 2、RobotsMETAtag一个网页作者可以使用专门的HTMLMETAtag,来指出某一个网页是否可以被索引、分析或链接。这些方法适合于大多数的WebRobot,至于是否在软件中实施了这些方法,还依赖于Robot的开发者,并非可以保证对任何Robot都灵验。如果你迫切需要保护自己内容,则应考虑采用诸如增加密码等其他保护方法。使用RobotsExclusionProtocol协议当Robot访问一个Web站点时,比如,它先去检查文件robots.txt"target="_blank"> robots.txt。如果这个文件存在,它便会按照这样的记录格式去分析: User-agent:* Disallow:/cgi-bin/ Disallow:/tmp/ Disallow:/~joe/以确定它是否应该检索站点的文件。这些记录是专门给WebRobot看的,一般的浏览者大概永远不会看到这个文件,所以千万不要异想天开地在里面加入形似<imgsrc=*>类的HTML语句或是“Howdoyoudo?whereareyoufrom?”之类假情假意的问候语。在一个站点上只能有一个"/robots.txt"文件,而且文件名的每个字母要求全部是小写。在Robot的记录格式中每一个单独的"Disallow"行表示你不希望Robot访问的URL,每个URL必须单独占一行,不能出现"Disallow:/cgi-bin//tmp/"这样的病句。同时在一个记录中不能出现空行,这是因为空行是多个记录分割的标志。 User-agent行指出的是Robot或其他代理的名称。在User-agent行,''*''表示一个特殊的含义---所有的robot。下面是几个robot.txt的例子:在整个服务器上拒绝所有的robots: User-agent:* Disallow:/允许所有的robots访问整个站点: User-agent:* Disallow:或者产生一个空的"/robots.txt"文件。服务器的部分内容允许所有的robot访问 User-agent:* Disallow:/cgi-bin/ Disallow:/tmp/ Disallow:/private/拒绝某一个专门的robot: User-agent:BadBot Disallow:/只允许某一个robot光顾: User-agent:WebCrawler Disallow: User-agent:* Disallow:/最后我们给出站点上的robots.txt:#Forusebysearch.w3.org User-agent:W3Crobot/1 Disallow: User-agent:* Disallow:/Member/#ThisisrestrictedtoW3CMembersonly Disallow:/member/#ThisisrestrictedtoW3CMembersonly Disallow:/team/#ThisisrestrictedtoW3CTeamonly Disallow:/TandS/Member#ThisisrestrictedtoW3CMembersonly Disallow:/TandS/Team#ThisisrestrictedtoW3CTeamonly Disallow:/Project Disallow:/Systems Disallow:/Web Disallow:/Team使用RobotsMETAtag方式 RobotsMETAtag允许HTML网页作者指出某一页是否可以被索引,或是否可以用来查找更多的链接文件。目前只有部分robot实施了这一功能。 RobotsMETAtag的格式为:<METANAME="ROBOTS"CONTENT="NOINDEX,NOFOLLOW">象其他的METAtag一样,它应该放在HTML文件的HEAD区:<html><head><metaname="robots"content="noindex,nofollow"><metaname="description"content="Thispage...."><title>...</title></head><body>... RobotsMETAtag指令使用逗号隔开,可以使用的指令包括[NO]INDEX和[NO]FOLLOW。INDEX指令指出一个索引性robot是否可以对本页进行索引;FOLLOW指令指出robot是否可以跟踪本页的链接。缺省的情况是INDEX和FOLLOW。例如:<metaname="robots"content="index,follow"><metaname="robots"content="noindex,follow"><metaname="robots"content="index,nofollow"><metaname="robots"content="noindex,nofollow">一个好的Web站点管理员应该将robot的管理考虑在内,使robot为自己的主页服务,同时又不损害自己网页的安全。

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

robots是站点与 spider沟通的重要渠道,站点通过 robots文件声明该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。请注意,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用 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协议无法生效。

myeclipse 8.5 注册码(myeclipse8.5注册码在线生成)oracle 10g 下载(Oracle 10g 64位系统下载地址免费发布)