一、简介
尊敬的开发者,感谢您加入快应用小米平台,为了提升开发者快应用的曝光率和用户使用率,我们在此公布快应用小米平台对robots协议的支持说明,以便开发者们更好的了解,实现快应用更好的开发与上线。
二、robots协议介绍与声明
robots.txt 是存放在快应用包根目录下的一个纯文本文件,也是您的快应用与爬虫沟通的重要渠道,通过robots文件告知搜索引擎哪些内容不应该被抓取,哪些内容可以被抓取。
快应用小米平台robots文件声明:“您同意小米通过爬虫机制获取并索引快应用内的内容;如不同意,您可设置robots.txt文件来控制爬虫的爬取行为;若您没有设置相关robots协议文件,即允许被抓取。
三、robots使用方法
robots文件放置于您快应用包的根目录下,包含一条或更多的记录,这些记录通过空行分开(以CR,CR/LN,或 LN为结束符),每一条记录的格式如下所示:
"<field>:<value>"
四、robots文件的格式
robots文件放置于您快应用包的根目录下,这个文件支持以下字段:
user-agent/allow/disallow/robots
用于设置爬虫行为,小米快应用爬虫的user-agent为:MiHapSpider。
一般格式如下:
user-agent: [botname]
disallow: [path]
user-agent: [botname]
allow: [path]
其中[botname]为爬虫名称,[path]为页面路径,应该与manifest.json文件中的router.page中的path描述一致,与deeplink协议中path保持一致。
记录分组
robots.txt文件中的记录是分组的,user-agent为分组的起始字段,disallow和allow为分组成员字段。robots字段不属于任何分组.
示例组:
user-agent: a
disallow: /c
user-agent: b
disallow: /d
user-agent: e
user-agent: f
disallow: /g
该示例中指定了三个不同的组,一个针对“a”,一个针对“b”,还有一个同时针对“e”和“f”。每个组都有各自的组成员记录。注意:可以选择使用空行,以提高可读性。
字段描述
user-agent
用于指定记录分组对应的爬虫名称,可以使用通配符。对于特定的爬虫,只有一个组成员记录组有效。爬虫必须通过最具体的匹配用户代理进行查找,从而确定正确的记录组。爬虫忽略其他所有记录组。比如:
user-agent: MiHapSpider
disallow: /a
user-agent: *
disallow: /b
对于爬虫MiHapSpider只会使用第一个分组描述,而其他爬虫会使用第二个分组。
disallow
用于指定爬虫不能访问的路径。如果未指定路径,该字段将被忽略。
allow
用于指定爬虫可以访问的路径。如果未指定路径,该字段将被忽略。该字段用于替换 disallow 字段,从而允许抓取被禁止访问的目录中的子目录或网页。比如:
user-agent: MiHapSpider
disallow: /path1/
disallow: /path2/
allow: /path2/subpath/
该分组针对名为MiHapSpider的爬虫,禁止访问path1和path2,但允许访问path2中的subpath子路径。
robots
考虑到robots文件会有调整的需求,可以使用远程的robots.txt文件替换当前的文件robots: [url]
如果rpk包中的robots.txt文件包含robots字段,则所有其他的字段不被解析
五、robots.txt用法举例
1、禁止某些爬虫访问
user-agent: MiHapSpider
disallow: /
2、只允许某个爬虫访问
user-agent: MiHapSpider
disallow:
user-agent: *
disallow: /
3、远程替换robots.txt文件
robots: http://examplesite.com/robots.txt
六、robots协议使用温馨提示
robots协议是搜索引擎和网站之间的友善协议,我们鼓励开发者们也以友善的方式使用这一协议,希望通过这一协议方式,可以更好的为开发者们提供应用开发环境,提升应用曝光与用户使用率。