什么是Robots协议
Robots协议也称为爬虫协议、爬虫规则、机器人协议,是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯。“规则”中将搜索引擎抓取网站内容的范围做了约定,包括网站是否希望被搜索引擎抓取,哪些内容不允许被抓取,而网络爬虫可以据此自动抓取或者不抓取该网页内容。如果将网站视为酒店里的一个房间,robots.txt就是主人在房间门口悬挂的“请勿打扰”或“欢迎打扫”的提示牌。这个文件告诉来访的搜索引擎哪些房间可以进入和参观,哪些不对搜索引擎开放。
Robots协议的详解
Robots协议是Web站点和搜索引擎爬虫交互的一种方式,Robots.txt是存放在站点根目录下的一个纯文本文件。该文件可以指定搜索引擎爬虫只抓取指定的内容,或者是禁止搜索引擎爬虫抓取网站的部分或全部内容。当一个搜索引擎爬虫访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索引擎爬虫就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索引擎爬虫就沿着链接抓取。
另外,robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。如果搜索引擎爬虫要访问的网站地址是http://www.w3.org/,那么robots.txt文件必须能够通过http://www.w3.org/robots.txt打开并看到里面的内容。
# robots.txt for http://www.w3.org
#
#$Id:robots.txt.v 1.482007/10/1605:3l:15 gerald Exp$
#
#Forusebysearch.w3.org
User-agent:W3C-gsa
Disallow:/Out-Of-DateUser-agent:W3T_SE
Disallow:/Out-Of-Date-
User-agent:MozillaJ4.0(compatible;MSIE6.0;WindowsNT;MSSearch4.0Robot)
Disallow:
#W3CLinkchecker
User-agent:W3C-checklink
Disallow:
#excludesomeaccess-controlledareas
User-agent:*
Disallow:/Team
Disallow;/Project
Disallow:/Web
Disallow:/Systems
Disallow:/History
Disallow:/0ut-Of-Date
Disallow:/People/all/
Disallow:/2005/11/Translations/Query
Disallow:/2000/06/webdata/xslt
Disallow:/2000/09/webdata/xslt
Disallow:/2005/08/online-xslt/xslt
Disallow:/Search/Mail/Public/
Disallow:/2006/02/chartergen
具体使用格式如下:
(1)User.agent:用于描述搜索引擎爬虫的名字。在Robots.txt文件中,如果有多条User-agent记录,说明有多个搜索引擎爬虫会受到该协议的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为木,则该协议对任何搜索引擎爬虫均有效,在Robots.txt文件中,“User-agent:*这样的记录只能有一条。
(2)Disallow:用于描述不希望被访问到的一个URL。这个URL可以是一条完整的路径,也可以是部分路径,任何以Disallow开头的URL均不会被Robot访问到。
搜索引擎爬虫必须要遵守Robots协议并执行Web站点的要求。因此搜索引擎爬虫需要有一个分析Robots协议的模块,并严格按照Robots协议的规定抓取Web主机允许访问的目录和网页。
当然,Robots.txt只是一个协议,如果搜索引擎爬虫的设计者不遵循这个协议,网站管理员也无法阻止搜索引擎爬虫对于某些页面的访问,但一般的搜索引擎爬虫都会遵循这些协议,而且网站管理员还可以通过其他方式来拒绝网络蜘蛛对某些网页的抓取。
搜索引擎爬虫在下载网页的时候,会去识别网页的HTML代码,在其代码部分会有META标识。通过这些标识,可以告诉搜索引擎爬虫本网页是否需要被抓取,还可以告诉搜索引擎爬虫本网页中的链接是否需要被继续跟踪。例如:表示本网页不需要被抓取,但是网页内的链接需要被跟踪。
现在一般的网站都希望搜索引擎能更全面地抓取自己网站的网页,因为这样可以让更多的访问者能通过搜索引擎找到此网站。为了让本网站的网页更全面地被抓取到,网站管理员可以建立一个网站地图,即SiteMap。许多搜索引擎爬虫会把sitemap.htm文件作为一个网站网页爬取的入口,网站管理员可以把网站内部所有网页的链接放在这个文件里面,那么搜索引擎爬虫可以很方便地把整个网站抓取下来,避免遗漏某些网页,也会减小对网站服务器的负担。
Robots协议的约束力
“Robots的约束力固然仅限于自律,无强制性,但这不等于说它背后反映的精神,没有法律基础。”中国社会科学院信息化研究中心秘书长姜奇平表示,美国的电子隐私权法就规定“将决定权交给消费者,让其切实有效地授权或者拒绝他人采集和使用其个人信息”,可见遵守规则就是要遵守公平竞争,不是没有强制力就可以不公平竞争。