2013年2月8日北京市第一中級人民法院正式受理了百度訴奇虎360違反“Robots協(xié)議”抓取、復制其網(wǎng)站內(nèi)容的不正當競爭行為一案,索賠金額高達一億元,這可以看做2012年下半年“3B大戰(zhàn)”的繼續(xù)。在此次索賠案件中,百度稱自己的Robots文本中已設(shè)定不允許360爬蟲進入,而360的爬蟲依然對“百度知道”、“百度百科”等百度網(wǎng)站內(nèi)容進行抓取。
其 實早在2012年11月初,針對雙方摩擦加劇的情況,在中國互聯(lián)網(wǎng)協(xié)會的牽頭下,包括百度、新浪、奇虎360在內(nèi)的12家互聯(lián)網(wǎng)公司已共同簽署了《互聯(lián)網(wǎng) 搜索引擎服務(wù)自律公約》,在公約第七條承諾“遵循國際通行的行業(yè)慣例與商業(yè)規(guī)則,遵守機器人協(xié)議(robots協(xié)議)。
今天就找個機會聊聊一夜成名的robots協(xié)議。
初識robots協(xié)議
什么是robots
要 了解robots協(xié)議首先要了解robots,本文說的robots不是《I,robot》里的威爾·史密斯,不是《機器人總動員》里的瓦力和伊娃,不是 《終結(jié)者》系列中的施瓦辛格。什么?這些經(jīng)典電影你都不知道?好吧,算我想多了。本文的robots特指搜索引擎領(lǐng)域的web robots,這個名字可能很多人不熟悉,但是提到Web Wanderers,Crawlers和Spiders很多人可能就恍然大悟了,在中文里我們統(tǒng)稱為爬蟲或者網(wǎng)絡(luò)爬蟲,也就是搜索引擎抓取互聯(lián)網(wǎng)網(wǎng)頁的程序。
同學們都知道網(wǎng)頁是通過超級鏈接互相關(guān)聯(lián)起來的,從而形成了網(wǎng)頁的網(wǎng)狀結(jié)構(gòu)。爬蟲的工作方式就像蜘蛛在網(wǎng)上沿著鏈接爬來爬去,最基本的流程可以簡化如下:
1.喂給爬蟲一堆url,我們稱之為種子(seeds)2.爬蟲抓取seeds,解析html網(wǎng)頁,抽取其中的超級鏈接3.爬蟲接著抓取這些新發(fā)現(xiàn)的鏈接指向的網(wǎng)頁
2,3循環(huán)往復
什么是robots協(xié)議
了解了上面的流程就能看到對爬蟲來說網(wǎng)站非常被動,只有老老實實被抓取的份。存在這樣的需求:
1.某些路徑下是個人隱私或者網(wǎng)站管理使用,不想被搜索引擎抓取,比如說日本愛情動作片2.不喜歡某個搜索引擎,不愿意被他抓取,最有名的就是之前淘寶不希望被百度抓取3.小網(wǎng)站使用的是公用的虛擬主機,流量有限或者需要付費,希望搜索引擎抓的溫柔點4.某些網(wǎng)頁是動態(tài)生成的,沒有直接的鏈接指向,但是希望內(nèi)容被搜索引擎抓取和索引網(wǎng) 站內(nèi)容的所有者是網(wǎng)站管理員,搜索引擎應(yīng)該尊重所有者的意愿,為了滿足以上等等,就需要提供一種網(wǎng)站和爬蟲進行溝通的途徑,給網(wǎng)站管理員表達自己意愿的機 會。有需求就有供應(yīng),robots協(xié)議就此誕生。Robots協(xié)議,學名叫:The Robots Exclusion Protocol,就搜索引擎抓取網(wǎng)站內(nèi)容的范圍作了約定,包括網(wǎng)站是否希望被搜索引擎抓取,哪些內(nèi)容不允許被抓取,把這些內(nèi)容放到一個純文本文件 robots.txt里,然后放到站點的根目錄下。爬蟲抓取網(wǎng)站內(nèi)容前會先抓取robots.txt,據(jù)此“自覺地”抓取或者不抓取該網(wǎng)頁內(nèi)容,其目的是 保護網(wǎng)站數(shù)據(jù)和敏感信息、確保用戶個人信息和隱私不被侵犯。
需要注意的是robots協(xié)議并非是規(guī)范,只是行業(yè)內(nèi)一個約定俗成的協(xié)議。什么意思呢?Robots協(xié)議不是什么技術(shù)壁壘,而只是一種互相尊重的協(xié)議,好比私家花園的門口掛著“閑人免進”,尊重者繞道而行,不尊重者依然可以推門而入,比如說360。
說了這么多,看幾個有名的例子感覺一下先:
例子1:淘寶
User-agent: Baiduspider
Disallow: /
User-agent: baiduspider
Disallow: /
程序猿,你懂的。這不就是淘寶不想讓百度抓取嘛例子2:京東
User-agent: *
Disallow: /?*
Disallow: /pop/*.html
User-agent: EtaoSpider
Disallow: /
這個也不復雜,京東有2個目錄不希望所有搜索引擎來抓。同時,對etao完全屏蔽。
基本玩法
robots.txt的位置
說簡單也簡單,robots.txt放到一個站點的根目錄下即可。說復雜也有點小復雜,一個robots.txt只能控制相同協(xié)議,相同端口,相同站點的網(wǎng)頁抓取策略。什么意思呢?看個例子最清楚:
百度網(wǎng)頁搜索
百度知道
這兩個robots.txt的內(nèi)容是不同的,也就是說百度網(wǎng)頁搜索和百度知道的抓取策略可以由自己獨立的robots.txt來控制,井水不犯河水。
robots.txt的內(nèi)容



