Robots協議是Web站點和搜索引擎爬蟲交互的一種方式,Robots.txt是存放在站點根目錄下的一個純文本文件。該文件可以指定搜索引擎爬蟲只抓取指定的內容,或者是禁止搜索引擎爬蟲抓取網站的部分或全部內容。當一個搜索引擎爬蟲訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索引擎爬蟲就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,那么搜索引擎爬蟲就沿著鏈接抓取。
另外,robots.txt必須放置在一個站點的根目錄下,而且文件名必須全部小寫。
如果搜索引擎爬蟲要訪問的網站地址是http://www.w3.org/,那么robots.txt文件必須能夠通過http://www.w3.org/robots.txt打開并看到里面的內容。
具體使用格式如下:
(1)User-agent:
用于描述搜索引擎爬蟲的名字。在Robots.txt文件中,如果有多條User-agent記錄,說明有多個搜索引擎爬蟲會受到該協議的限制,對該文件來說,至少要有一條User-agent記錄。如果該項的值設為*,則該協議對任何搜索引擎爬蟲均有效,在Robots.txt文件中,“User-agent:*”這樣的記錄只能有一條。
(2)Disallow:
用于描述不希望被訪問到的一個URL。這個URL可以是一條完整的路徑,也可以是部分路徑,任何以Disallow開頭的URL均不會被Robot訪問到。
下面舉例來說明robots.txt的具體用法:
【例1】通過/robots.txt禁止所有搜索引擎爬蟲抓取/bin/cgi/目錄,以及/tmp/目錄和/foo.html文件,設置方法如下:
User-agent:*
Disallow:/bin/cgi/
Disallow:/tmp/
Disallow:/foo.html
【例2】通過/robots.txt只允許某個搜索引擎抓取,而禁止其他的搜索引擎抓取。如:只允許名為slurp的搜索引擎爬蟲抓取,而拒絕其他的搜索引擎爬蟲抓取/cgi/目錄下的內容,設置方法如下:
User-agent:*
Disallow:/cgi/
User-agent:slurp
Disallow:
【例3】禁止任何搜索引擎抓取我的網站,設置方法如下:
User-agent:*
Disallow:/
【例4】只禁止某個搜索引擎抓取我的網站。如:只禁止名為slurp的搜索引擎蜘蛛抓取,設置方法如下:
User-agent:slurp
Disallow:/
搜索引擎爬蟲必須要遵守Robots協議并執行Web站點的要求。因此搜索引擎爬蟲需要有一個分析Robots協議的模塊,并嚴格按照Robots協議的規定抓取Web主機允許訪問的目錄和網頁。
當然,Robots.txt只是一個協議,如果搜索引擎爬蟲的設計者不遵循這個協議,網站管理員也無法阻止搜索引擎爬蟲對于某些頁面的訪問,但一般的搜索引擎爬蟲都會遵循這些協議,而且網站管理員還可以通過其他方式來拒絕網絡蜘蛛對某些網頁的抓取。
搜索引擎爬蟲在下載網頁的時候,會去識別網頁的HTML代碼,在其代碼部分會有META標識。通過這些標識,可以告訴搜索引擎爬蟲本網頁是否需要被抓取,還可以告訴搜索引擎爬蟲本網頁中的鏈接是否需要被繼續跟蹤。例如:表示本網頁不需要被抓取,但是網頁內的鏈接需要被跟蹤。
現在一般的網站都希望搜索引擎能更全面地抓取自己網站的網頁,因為這樣可以讓更多的訪問者能通過搜索引擎找到此網站。為了讓本網站的網頁更全面地被抓取到,網站管理員可以建立一個網站地圖,即Site Map。許多搜索引擎爬蟲會把sitemap.html文件作為一個網站網頁爬取的入口,網站管理員可以把網站內部所有網頁的鏈接放在這個文件里面,那么搜索引擎爬蟲可以很方便地把整個網站抓取下來,避免遺漏某些網頁,也會減小對網站服務器的負擔。