1. 首页
  2. 软文投稿

什么是robots协议?网站robots.txt文件的作用

当我们制作网站时,一个完整的网站应该有301个重定向、404个页面和robots.txt文件,这些都是制作网站所必需的。有经验的网站管理员知道301重定向是为了集中,404重定向是为了在网站有死链时引导蜘蛛和增加用户体验。

那么网站robots.txt文件的功能是什么,如何编写网站robots.txt

robots.txt协议(也称为爬虫协议、爬虫规则、机器人协议等。)

robots.txt文件是存储在网站根目录下的TXT文本文档。这是网站和蜘蛛之间的协议。

该网站告诉搜索引擎哪些页面可以被抓取,哪些页面不想通过机器人协议被抓取。推荐注意事项(深圳搜索引擎优化培训)

robots.txt的角色是什么?

如果你的网站根目录中有一个像robots.txt这样的文件,蜘蛛在抓取你的网站时会首先访问这个文件(robots文件通常存储在根目录中,蜘蛛首先访问这个文件,所以这个文件非常重要)。

机器人文件用于告诉搜索引擎蜘蛛网站的哪些文件夹可以被检索,哪些文件夹不能被检索,从而确保我们网站的隐私内容不会被包括在内。

机器人网站的内容如下:

*替换0或任意数量的字符

$ End符号,描绘以xxx结尾的文件

?动态页面的特别推荐阅读(什么是网站地图)

以下是机器人的书写格式:

每行的第一个字母大写。

必须用英语输入法来写

(注意)在继续写入之前,用户代理“不允许”、“允许”后面跟有英文冒号加空大小写。

每个主要搜索引擎蜘蛛的名字写如下:

1.百度蜘蛛

拜德斯皮德的名字是拜德斯皮德。百度蜘蛛日志中也有百度蜘蛛-手机、百度蜘蛛-图像、百度蜘蛛-视频和百度蜘蛛-新闻。百度蜘蛛和百度蜘蛛图片是百度蜘蛛的两种。

2.谷歌蜘蛛:谷歌机器人,谷歌机器人移动,它的名字是抓取wap内容

3.蜘蛛,这家伙很勤奋

4.索索斯派德:索索斯派德,比360更勤奋

5.雅虎蜘蛛:雅虎!诋毁中国

6.有一只蜘蛛:你的机器人

7.搜狗蜘蛛:搜狗新闻蜘蛛

搜狗蜘蛛还包括以下几种:搜狗蜘蛛、搜狗inst蜘蛛、搜狗搜狗蜘蛛2
博客、搜狗新闻蜘蛛、搜狗蜘蛛等。

8.MSN Spider: msnbot,MSN bot-媒体

9.冰蜘蛛:冰机器人

robots.txt放到一个站点的根目录下即可,一个robots.txt只能控制相同协议,相同端口,相同站点的网页抓取策略。

1、robots.txt的常规写法

最简单的robots.txt只有两条规则:

User-agent:指定对哪些爬虫生效

Disallow:指定要屏蔽的网址

整个文件分为x节,一节由y个User-agent行和z个Disallow行组成。一节就表示对User-agent行指定的y个爬虫屏蔽z个网址。这里x>=0,y>0,z>0。x=0时即表示空文件,空文件等同于没有robots.txt。

下面详细介绍这两条规则:

(1)、User-agent

爬虫抓取时会声明自己的身份,这就是User-agent,没错,就是http协议里的User-agent,robots.txt利用User-agent来区分各个引擎的爬虫。

举例说明:google网页搜索爬虫的User-agent为Googlebot,下面这行就指定google的爬虫。

User-agent:Googlebot

如果想指定所有的爬虫怎么办?不可能穷举啊,可以用下面这一行:

User-agent: *

可能有的同学要问了,我怎么知道爬虫的User-agent是什么?这里提供了一个简单的列表:爬虫列表

当然,你还可以查相关搜索引擎的资料得到官方的数据,比如说google爬虫列表,百度爬虫列表

(2)、Disallow

Disallow行列出的是要拦截的网页,以正斜线 (/) 开头,可以列出特定的网址或模式。

要屏蔽整个网站,使用正斜线即可,如下所示:

Disallow: /

要屏蔽某一目录以及其中的所有内容,在目录名后添加正斜线,如下所示:

Disallow: /无用目录名/

要屏蔽某个具体的网页,就指出这个网页,如下所示:

Disallow: /网页.html

举例:

       User-agent: baiduspider
Disallow: /
User-agent: Googlebot
Disallow: /

马海祥博客解释:意思也就是禁止百度蜘蛛和Google蜘蛛抓取所有文章

2、robots.txt的高级写法

首先声明:高级玩法不是所有引擎的爬虫都支持,一般来说,作为搜索引擎技术领导者的谷歌支持的最好。

(1)、allow

如果需要屏蔽seo1-seo100,但是不屏蔽seo50,那我们该怎么办呢?

方案1:

       Disallow:/seo1/
Disallow:/seo2/

Disallow:/seo49/
Disallow:/seo51/

Disallow:/seo100/

方案2:

       Disallow:/seo
Allow:/seo50/

对比以上2个方案,大家应该知道allow的用法了吧,如果你网站目前也有这个需求的话,马海祥建议你可以使用方案2来解决。

但如果想屏蔽seo50下面的文件seo.htm,又该怎么办呢?

       Disallow:/seo
Allow:/seo50/
Disallow:/seo50/seo.html

聪明的你一定能发现其中的规律,对吧?谁管的越细就听谁的。

(2)、sitemap

前面说过爬虫会通过网页内部的链接发现新的网页,但是如果没有连接指向的网页怎么办?或者用户输入条件生成的动态网页怎么办?能否让网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页?这就是sitemap。

最简单的Sitepmap形式就是XML文件,在其中列出网站中的网址以及关于每个网址的其他数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度等等),利用这些信息搜索引擎可以更加智能地抓取网站内容。

新的问题来了,爬虫怎么知道这个网站有没有提供sitemap文件,或者说网站管理员生成了sitemap(可能是多个文件),爬虫怎么知道放在哪里呢?

由于robots.txt的位置是固定的,于是大家就想到了把sitemap的位置信息放在robots.txt里,这就成为robots.txt里的新成员了,比如:

Sitemap: http://www.mahaixiang.cn/sitemap.html

考虑到一个网站的网页众多,sitemap人工维护不太靠谱,对此,马海祥建议你可以使用google提供了工具可以自动生成sitemap。

(3)、meta tag

其实严格来说这部分内容不属于robots.txt,不过也算非常相关,我也不知道放哪里合适,暂且放到这里吧。

robots.txt的初衷是为了让网站管理员管理可以出现在搜索引擎里的网站内容。但是,即使使用robots.txt文件让爬虫无法抓取这些内容,搜索引擎也可以通过其他方式找到这些网页并将它添加到索引中。

例如,其他网站仍可能链接到该网站,因此,网页网址及其他公开的信息(如指向相关网站的链接中的定位文字或开放式目录管理系统中的标题)有可能会出现在引擎的搜索结果中,如果想彻底对搜索引擎隐身那咋整呢?马海祥给你的答案是:元标记,即meta tag。

比如要完全阻止一个网页的内容列在搜索引擎索引中(即使有其他网站链接到此网页),可使用noindex元标记。只要搜索引擎查看该网页,,便会看到noindex元标记并阻止该网页显示在索引中,这里注意noindex元标记提供的是一种逐页控制对网站的访问的方式。

比如:要防止所有搜索引擎将网站中的网页编入索引,那你就可以在网页的头部代码部分添加:

<meta name=”robots” content=”noindex”>

这里的name取值可以设置为某个搜索引擎的User-agent从而指定屏蔽某一个搜索引擎。

除了noindex外,还有其他元标记,比如说nofollow,禁止爬虫从此页面中跟踪链接。这里马海祥再提一句:noindex和nofollow在 HTML 4.01规范里有描述,但是其他tag的在不同引擎支持到什么程度各不相同,还请读者自行查阅各个引擎的说明文档。

(4)、Crawl-delay

除了控制哪些可以抓哪些不能抓之外,robots.txt还可以用来控制爬虫抓取的速率。如何做到的呢?通过设置爬虫在两次抓取之间等待的秒数。

Crawl-delay:5

表示本次抓取后下一次抓取前需要等待5秒。

【本文作者】:亿闻天下网,商业用途未经许可不得转载,非商业用途转载注明出处原文链接:https://cqsoo.com/ruanwen/8368.html

【版权与免责声明】:如发现内容存在版权问题,烦请提供相关信息发邮件至 kefu@cqsoo.com ,

并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。反馈给我们

本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。

发表评论

登录后才能评论
Copyright 2007-2019 亿闻天下网 / 渝ICP备89217412123号-1  / 本站由wordpress、阿里云、群英、百度云提供驱动力
QR code