电 话:0

手 机:0

联系人:刘先生

E_mail:2074917417@qq.com

地 址:成都市金牛区

您当前的位置是:主页 > 行业资讯 > news >

news

robots.txt文件的作用及写法(史上最详细版本)

发布时间:2022/01/10 丨 文章来源:未知 丨 浏览次数:

robots文件也会被称做robots协议、爬虫协议等,它是搜索引擎与网站的一个协议文件,网站通过robots协议文件告诉搜索引擎爬虫哪些页面可以抓取,哪些页面不可以抓取。

robots.txt文件的作用及写法

robots文件的存储位置

robots文件是一个txt文本文档文件,这个文件的正确命名为robots.txt,编辑好该文件后,需要放置于网站的根目录下,也就是可以通过www.huicuiwang.cn/robots.txt能够正常的访问即可。

robots文件的写法

在介绍如何写robots文件之前,我们先来看一个robots文件,如下:

#robots文件示例

#百度爬虫抓取协议

User-agent: Baiduspider

Disallow: /help

Disallow: /trends/*/h*/

Disallow: /msh/msc0p1.html

Disallow: /plc0p1.html

Disallow: /*?*

Disallow: /job/t*

Disallow: /*.png$

Allow: /youqiseol

#对于其他所有搜索引擎爬虫的抓取协议

User-Agent: *

Allow: /sitemap.xml

我们可以通过上面的示例看到,中间有很多的标签,和“#”“*”“$”符号的使用,下面我们对这些一一说明:

符号“#”的作用

符号“#”,代表的是注释内容,通俗来说,就是你写这个robots文件之后,给自己备注的一个提醒,它对搜索引擎爬行起不到任何作用,只是给你自己看的。同样对搜索引擎爬虫也没有任何的影响。

User-agent介绍

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

Disallow介绍

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

Allow介绍

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

使用“*”和“$”符号

“*”匹配0个或多个任意字符

“$”匹配行结束符

如上面的示例,“Disallow:/*?*”不允许搜索引擎爬虫抓取所有URL中带“?”号的,“Disallow:/*.png$”不允许搜索引擎爬虫抓取所有以.png结尾的链接,如https://www.huicuiwang.cn/1.png是不允许被抓取的,但是https://www.huicuiwang.cn/2.pngs就会被抓取(当然,png是图片格式,实际中并没pngs这种格式,这里只是为了方便说明演示)。

robots文件的作用

robots文件的作用在本文开始我们有提到这里在详细的说一下,首先它是搜索引擎与网站之间的一个协议文件,用来告诉搜索引擎爬虫哪些页面可以抓取,哪些页面不可以抓取。

但是实际工作中,我发现我有遇到这种情况,例如A目录在一直以来都是允许搜索引擎爬虫抓取的,并且也有了很大的索引数据,但是这个目录实际上是不允许被搜索引擎爬虫抓取的,于是我就设置了“Disallow:/a”,禁止了搜索引擎抓取A目录,几天之后发现,索引数据也已经清零了。

所以robots协议文件不仅能够屏蔽搜索引擎爬虫的抓取,也可以把已经收录索引的无效数据进行快速的删除。

robots文件书写实例

禁止所有爬虫抓取所有内容

User-agent:*

Disallow: /

User-agent说明的所有搜索引擎爬虫,而Disallow是告知搜索引擎爬虫从根目录你就不能抓取,最开始只有一个“/”代表根,通俗点解释一下:www.huicuiwang.cn/abc/1.html,其中/就是根,而abc就是一个目录,1.html是一个文章页。

只允许百度爬虫抓取

User-agent: Baiduspider

Allow: /

User-agent: *

Disallow: /

第一组声明Baiduspider(百度爬虫的User-agent),允许抓取所有;而第二组声明所有爬虫,不允许抓取所有。有人可能会疑惑,这两组是否冲突?实际上不会的,通俗点说就是:百度你来抓取,其他人别来!简单明了。

如果你想只让百度和Google来抓取,在不允许之前再加上一组即可,如下:

User-agent: Baiduspider

Allow: /

User-agent: Googlebot #google爬虫的user-agent名称

Allow: /

User-agent: *

Disallow: /

对所有搜索引擎的限制

User-Agent: *

Allow: /sitemap.xml #允许搜索引擎抓取sitemap.xml文件,但不建议把sitemap.xml文件写到robots里。

Disallow: /help #不允许抓取 help下所有

Disallow: /

abc/*/d*/ #不允许抓取 abc/{任意内容}/d{任意内容}/,但可以抓取abc/{任意内容}/d{任意内容}/123.html等;

Disallow: /qwe/qwe1.html #不允许抓取该网页

Disallow: /p1.html #不允许抓取该网页

Disallow: /*?* #不允许抓取带?号的URL

Disallow: /job/s* #不允许抓取 /job/s下的所有,包括/job/s

Disallow: /*.png$ #不允许抓取 任何以".png"结尾的链接

如上,每一行的含义都写在了示例中。

PS:所有作品版权归原创作者所有,与本站立场无关,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理!


网站首页 | app开发| 小程序开发| SEM竞价托管| 行业资讯

扫码关注我们