各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > pbootcms

robots.txt协议怎么写(写法详解)

管理员 2020-12-22
pbootcms
308

我们可以在网站根目录下放一个robots.txt文件,里面是robots协议规则,可以指定搜索引擎能抓取哪些网页,也可以禁止抓取哪些网页。当您的网站有不希望被搜索引擎收录的内容时,才需要使用robots.txt文件,如果您希望搜索引擎收录网站上所有内容,就可以不用建立robots.txt文件!

什么是Robots协议

robots协议全称是“网络爬虫排除标准”,也叫爬虫协议、机器人协议,我们可以控制robots协议阻止或放行搜索引擎抓取网页的行为,通过robots协议向搜索引擎声明,我们的站点网页哪些是自己允许搜索引擎抓取的,哪些网页又禁止搜索引擎抓取!

搜索引擎在对网站进行抓取收录网页之前,首先获取到这个robots.txt文本文件,然后解析到其中的规则,然后根据规则来抓取网站的页面。

但是,robots协议并没有形成法律层面的规范,只是一种约定俗成的道德约束而已。

如何查看网站robots.txt文件

前提是网站根目录下存在robots.txt文件,如果存在,我们就可以通过访问:域名/robots.txt,就可以在浏览器中查看!比如:

百度:www.baidu.com/robots.txt

淘宝网:www.taobao.com/robots.txt

刘代码博客:www.liudaima.com/robots.txt

robots协议的作用

可以告知搜索引擎哪些页面能被抓取,哪些页面不能被抓取;

可以屏蔽一些网站中比较大的文件,节省服务器带宽。如:图片,音乐,视频等;

可以设置网站地图连接,方便引导蜘蛛爬取页面;

可以屏蔽站点的一些死链接;

robots协议规则

 每行记录的第一个英文字母要大写,紧跟其后的是英文状态下的冒号,冒号后面还有一个空格

Markup
User-agent: 表明搜索引擎爬虫名字Disallow: 表示禁止抓取的页面Allow: 表示允许抓取的页面Sitemap: 表示网站地图*: 表示匹配0或任意长度的任意字符$: 表示匹配行结束/: 表示该目录下的所有目录文件和页面

下面我们具体介绍一下上面的规则:

1、User-agent:指定搜索引擎

User-agent是用来指定各个搜索引擎的,在robots.txt文件中,至少要有一条User-agent记录!

如果你只想指定百度搜索引擎,就可以这样写:

Markup
User-agent: Baiduspider

如果你想指定所有搜索引擎,就可以这样写:

Markup
User-agent: *

星号*是一个通配符,表示全部,所以,User-agent: * 表示指定所有搜索引擎

2、Disallow:禁止抓取

Disallow指定要禁止抓取的页面、目录或文件等。

如果你想蔽整个网站的所有目录文件或页面,就用正斜杠(/)来表示

Markup
Disallow: /  表示禁止抓取网站根目录下所有目录

如果你想禁止抓取admin和require两个目录下面的所有目录,就可以这样写

Markup
Disallow: /admin/  Disallow: /require/

如果你想禁止抓取abc目录下的所有以“.html”为后缀的网页,可以这样写:

Markup
Disallow: /abc/*.html

如果想禁止抓取目录下的某个具体文件,比如abc目录下的“50.html”,就可这样写

Markup
Disallow: /abc/50.html

如果想禁止抓取网站中所有的.jpg、png,GIF等格式的图片,添加美元符号$表示结尾,就可以写成这样:

Markup
Disallow: /.jpg$ Disallow: /.png$ Disallow: /.GIF$

如果想禁止抓取网站中所有包含问号(?)的网址,就这样写

Markup
Disallow: /*?*

3、Allow:允许抓取

Allow的用法和Disallow差不多,只不过,Disallow是禁止抓取,而Allow是指定搜索引擎抓取的目录。

Allow: /  表示允许抓取网站所有目录

Allow: /admin/ 允许爬寻admin目录下的所有目录

Allow: /require/ 允许爬寻reqire目录下的所有目录

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

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

4、Sitemap:指定网站地图

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

所以,我们可以在网站中生成sitemap网站地图文件,并在robots.txt协议文件里,用sitemap规则来告诉搜索引擎网站地图,使搜索引擎更加快速方便的抓取!

比如:在robots协议中告诉搜索引擎刘代码博客的sitemap网站地图,写法如下:

Markup
Sitemap: https://www.liudaima.com/sitemap.html

带斜杠/和不带的区别

在屏蔽目录的时候,注意,这里如果是阻止抓取某目录的话目录名字一定要注意“/”,不带“/”表示的是阻止访问目录所有内容和包含目录名的文件,而带上“/”则表示阻止访问目录下的所有内容,这两点要分清楚!

其他robots协议规则

1、Robot-version: 用来指定robot协议的版本号

Markup
Robot-version: Version 2.0

2、Crawl-delay:设置抓取延迟

就是指抓取一个页面之后,间隔多久再次抓取下一个页面的时长,以秒为最低延迟单位!比如:

Markup
Crawl-delay: 5

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

4、Visit-time: 设置抓取时间段

如果你只希望搜索引擎在凌晨1:00到中午12:00才可以抓取网页,就可以这样写:

Markup
Visit-time: 0100-1200

5、Request-rate: 设置在某个时间段内抓取网页的频率

如果希望搜索引擎在2:30到08:29之间,以每分钟35次的频率进行抓取,就可以这样写:

Markup
Request-rate: 35/1m 0100 - 0759

如果希望搜索引擎在7:00到12:00之间,以每分钟15次的频率进行抓取,就可以这样写:

Markup
Request-rate: 15/1m 0700 - 1200

robots.txt完整协议用法示例

例1禁止所有搜索引擎抓取网站的任何部分 

Markup
User-agent: * Disallow: / 

例2:允许所有搜索引擎抓取网站的任何部分

Markup
User-agent: *Allow: /

例3、禁止所有搜索引擎访问网站中的几个部分,在这里我用a、b、c目录来代替

Markup
User-agent: *Disallow: /a/Disallow: /b/Disallow: /c/

如果是允许,则是

Markup
User-agent: *Allow: /a/Allow: /b/Allow: /c/

例4、禁止某个搜索引擎的访问,比如:同时禁止百度和神马抓取:

Markup
User-agent: baiduspiderUser-agent: YisouspiderDisallow: /

例5、只允许某个搜索引擎的访问,比如百度

Markup
User-agent: baiduspiderDisallow:

在Disallow:后面不加任何东西,意思是仅允许e访问该网站。

例6、使用”$”限制访问url

Markup
User-agent: *Allow: .htm$Disallow: /

意思是仅允许访问以”.htm”为后缀的URL

例7、禁止访问网站中所有的动态页面

Markup
User-agent: *Disallow: /*?*

例8、禁止所有搜索引擎抓取网站上所有图片

Markup
User-agent: *Disallow: .jpg$Disallow: .jpeg$Disallow: .gif$Disallow: .png$Disallow: .bmp$

意思是只允许引擎抓取网页,禁止抓取任何图片(严格来说,是禁止抓取jpg、jpeg、gif、png、bmp格式的图片。)

例9、只允许所有搜索引擎抓取网页和.gif格式图片

Markup
User-agent: *Allow: .gif$Disallow: .jpg$Disallow: .jpeg$Disallow: .png$Disallow: .bmp$

意思是只允许抓取网页和gif格式图片,不允许抓取其他格式图片

robots的meta标签

前面介绍了robots.txt文件协议的写法,下面还有一个robots的meta标签,主要是针对一个具体的页面;robots的meta标签是放在网页中的head头部标签中的,专门用于告诉搜索引擎如何抓取该网页的内容!

比如说,我们要防止网页被所有搜索引擎抓取,我们可以这样写:

Markup
<meta name="robots" content="noindex">

但要是希望所有搜索引擎来抓取页面,就这样写:

Markup
<meta name="robots" content="index">

因robots的meta标签的讲解不是本文的重点


转载请注明来源网址:

相关推荐

扫码关注

qrcode

QQ交谈

回顶部