Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。Robots协议的本质是网站和搜索引擎爬虫的沟通方式,用来指导搜索引擎更好地抓取网站内容,而不是作为搜索引擎之间互相限制和不正当竞争的工具。
在2012年由中国互联网协会举行的《互联网搜索引擎服务自律公约》签约仪式上,百度、即刻搜索、奇虎360、搜狗等12家搜索引擎服务企业签署公约,共同承诺:互联网站所有者设置Robots协议应遵循公平、开放和促进信息自由流动的原则,限制搜索引擎抓取应有行业公认合理的正当理由,不利用Robots协议进行不正当竞争行为,积极营造鼓励创新、公平公正的良性竞争环境。
Robots协议初衷:保护网站内部信息,保护服务器流量平衡
在互联网发展早期,搜索引擎还没有为网站带来明显的商业价值,搜索引擎爬虫也没有受到网站的普遍欢迎,主要有如下原因:
一、快速抓取导致网站过载,影响网站正常运行;
二、重复抓取相同的文件,抓取层级很深的虚拟树状目录,浪费服务器资源;
三、抓取网站管理后台等内部敏感信息,或抓取临时文件等对用户没有价值的信息;
四、抓取会对投票等CGI脚本造成负面影响,可能出现虚假的投票结果。
Robots协议正是针对搜索引擎爬虫的这些弊端而设计的约束措施。1994年,Robots协议由荷兰籍网络工程师Martijn Koster首次提出,Martijn Koster也因此被誉为“Robots之父”。之后直到2008年6月,Yahoo、Google和MSN Live Search共同通过非官方途径宣布采纳该标准,各大搜索引擎公司开始对Robots协议进行商业研究,各种公司标准的Robots协议开始产生。
对于网站来说,设置Robots协议主要有三个目的,首先是保护网站内部信息不被搜索引擎爬虫抓取;其次是引导爬虫不要抓取对用户没有价值的信息;最后是为了保护中小网站的流量平衡,避免爬虫快速抓取给网站服务器带来过大压力。
但通常来说,用户在利用搜索引擎检索到内容网站时,对内容网站并不构成伤害,反而会为内容网站带来更多用户。绝大多数网站非但不会使用Robots协议禁止搜索引擎抓取,反而希望自己的网站内容能够更快、更全面地被搜索引擎收录,并展现在搜索结果的前列,由此也催生出搜索引擎竞价排名、SEO(搜索结果优化)等商业模式。
Robots协议使用现状:绝大多数网站对搜索引擎一视同仁
Robots协议也就是robots.txt文本文件,当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt。如果存在,搜索爬虫就会按照该文件中的内容来确定访问的范围;如果robots.txt文件不存在,搜索爬虫将会抓取网站上所有没有被口令保护的页面。
商业网站大多会在robots.txt中提供SiteMap文件链接地址,为搜素引擎指路,方便爬虫更好地抓取网站内容。此外,网站也可以使用robots.txt屏蔽网站中一些比较大的文件,如:视频、图片等,节省服务器带宽,也可以屏蔽网站的一些死链接。
Robots协议的写法包括两类:
一类是对所有的网络爬虫一视同仁,使用UserAgent * 这样的写法,明确写明不允许抓取的目录,这也是国际上商业网站Robots协议的主流用法,在Alexa的网站排行榜上选取前100个有Robots协议文件的国外网站,其中有85个站点使用了Original Robots协议规范,即不设置任何黑白名单,对所有爬虫一视同仁,或只针对部分爬虫做细微的规则指导,但是不禁止任何爬虫抓取;
另一类是如Facebook、LinkedIn、Twitter这种采用黑白名单机制写robots.txt的网站,在robots.txt中针对每种网络爬虫规定哪些目录不能抓取,LinkedIn在robots.txt文件中还列出了申请将网络爬虫加入白名单中的联系方法。Alexa上有Robots协议文件的TOP100网站中,有15个网站在robots.txt中设置了黑白名单,但只有一个是对通用搜索引擎的爬虫进行了黑名单设置,其他都是针对一些非通用搜索引擎的特殊爬虫设置黑名单。
Robots协议的误区:并非真正意义的“协议”
Robots协议虽然名为“协议”,但只是行业惯用的说法,它并非真正意义上的协议,也不受任何机构保护。
“Robots之父”Martijn Koster对Robots协议的性质进行了如下阐述:Robots协议是一个未经标准组织备案的非官方标准,它也不属于任何商业组织。本协议不受任何机构保护,所有现有和未来的机器人不一定使用本协议。Robots协议是Robot创作者们向互联网社区提供的用来保护互联网服务器免受骚扰的一个通用工具。
早在1997年,Martijn Koster曾向IETF(互联网工程任务组)提交申请,试图把Robots协议作为该组织规范,但被IETF拒绝。之后,国际电信联盟(ITU)、万维网联盟(W3C)的规范也同样拒绝采纳Robots协议。欧美电信专家担心,由于Robots协议包含排斥性条款,搜索巨鳄可能会利用Robots协议的条款,迫使某些热门网站与其签署排他性协议,从而将后起竞争者挡在门外,维护垄断。
在2012年11月1日,中国互联网协会在北京举行《互联网搜索引擎服务自律公约》签约仪式。据中国互联网协会胡启恒理事长介绍,“本次公约的制定充分体现了互联网的精神,一方面,公约对非法律条文规定、国际互联网界拥有共识的Robost协议给予了的充分的尊重和肯定。另一方面,互联网是生而自治的,在日后随着互联网技术应用的不断发展,还会有许多新兴问题出现,同时也希望业界能够基于诚信、自主自治的互联网精神来解决互联网的争议,共同讨论和解决出现的问题。”
《互联网搜索引擎服务自律公约》明确规定,“互联网站所有者设置Robots协议应遵循公平、开放和促进信息自由流动的原则,限制搜索引擎抓取应有行业公认合理的正当理由,不利用Robots协议进行不正当竞争行为,积极营造鼓励创新、公平公正的良性竞争环境。”
百度、即刻搜索、盘古搜索、奇虎360、盛大文学、搜狗、腾讯、网易、新浪、宜搜、易查无限、中搜等12家发起单位在现场共同签署了《互联网搜索引擎服务自律公约》,表示将自觉遵守自律公约各项规定,不断提升服务水平,努力改善用户体验,积极为搜索引擎服务行业的健康发展贡献力量。