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