基本概述
搜索引擎蜘蛛即Search Engine Spider,是一個很形象的名字。把互聯網比喻成一張蜘蛛網,那么Spider就是在網上爬來爬去的蜘蛛。搜索引擎蜘蛛是通過網頁的鏈接地址來尋找網頁,從 網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它鏈接地址,然后通過這些鏈接地址尋找下一個網頁,這樣一直循環下去,直到把這個網站所有的網頁都抓取完為止。如果把整個互聯網當成一個網,那么搜索引擎蜘蛛就可以用這個原理把互聯網上所有節點的網頁都抓取下來。
由于互聯網上無數的網站頁面,搜索引擎蜘蛛無法將所有的頁面都下載保存到服務器。因此,許多搜索引擎的網絡蜘 蛛只是抓取那些重要的網頁,而在抓取的時候評價重要性主要的依據是某個網頁的鏈接廣泛度(及外部鏈接的數量與質量)。
抓取網頁策略
在抓取網頁的時候,搜索引擎蜘蛛一般有兩種策略:廣度優先和深度優先(如下圖所示)。廣度優先是指搜索引擎蜘蛛會先抓取起始網頁中鏈接的所有網頁,然后再選擇其中 的一個鏈接網頁,繼續抓取在此網頁中鏈接的所有網頁。這是最常用的方式,因為這個方法可以讓搜索引擎蜘蛛并行處理,提高其抓取速度。深度優先是指搜索引擎蜘蛛會從 起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之后再轉入下一個起始頁,繼續跟蹤鏈接。這個方法有個優點是搜索引擎蜘蛛在設計的時候比較容易。兩種策略的區別,下圖的說明會更加明確。由于不可能抓取所有的網頁,有些搜索引擎蜘蛛對一些不太重要的網站,設置了訪問的層數。例如,在上圖中,A為起始網頁,屬于0層,B、C、D、E、F屬于第1 層,G、H屬于第2層,I屬于第3層。如果搜索引擎蜘蛛設置的訪問層數為2的話,網頁I是不會被訪問到的。這也讓有些網站上一部分網頁能夠在搜索引擎上搜索 到,另外一部分不能被搜索到。 對于網站設計者來說,扁平化的網站結構設計有助于搜索引擎抓取其更多的網頁。
訪問網站權限
搜索引擎蜘蛛在訪問網站網頁的時候,經常會遇到加密數據和網頁權限的問題,有些網頁是需要會員權限才能訪問。當然,網站的所有者可以通過協議讓搜索引擎蜘蛛不去抓取,但對于一些出售報告的網站,他們希望搜索引擎能搜索到他們的報告,但又不能完全免費的讓搜索者查看,這樣就需要給搜索引擎蜘蛛提供相應的 用戶名和密碼。搜索引擎蜘蛛可以通過所給的權限對這些網頁進行網頁抓取,從而提供搜索。而當搜索者點擊查看該網頁的時候,同樣需要搜索者提供相應的權限驗證。