了解搜索引擎的工作流程,對(duì)于我們規(guī)劃網(wǎng)站建設(shè)以及進(jìn)行網(wǎng)站優(yōu)化都是十分重要的步驟。百度在其官方站長(zhǎng)平臺(tái)上發(fā)布了搜索引擎抓取系統(tǒng)概述,幫助站長(zhǎng)朋友們更好的了解搜索引擎的工作流程,有的放矢的進(jìn)行站點(diǎn)優(yōu)化。
互聯(lián)網(wǎng)信息爆發(fā)式增長(zhǎng),如何有效的獲取并利用這些信息是搜索引擎工作中的首要環(huán)節(jié)。數(shù)據(jù)抓取系統(tǒng)作為整個(gè)搜索系統(tǒng)中的上游,主要負(fù)責(zé)互聯(lián)網(wǎng)信息的搜集、保存、更新環(huán)節(jié),它像蜘蛛一樣在網(wǎng)絡(luò)間爬來(lái)爬去,因此通常會(huì)被叫做“spider”。例如我們常用的幾家通用搜索引擎蜘蛛被叫做:Baiduspdier、Googlebot、Sogou Web Spider等。
Spider抓取系統(tǒng)是搜索引擎數(shù)據(jù)來(lái)源的重要保證,如果把web理解為一個(gè)有向圖,那么spider的工作過(guò)程可以認(rèn)為是對(duì)這個(gè)有向圖的遍歷。從一些重要的種子 URL開始,通過(guò)頁(yè)面上的超鏈接關(guān)系,不斷的發(fā)現(xiàn)新URL并抓取,盡最大可能抓取到更多的有價(jià)值網(wǎng)頁(yè)。對(duì)于類似百度這樣的大型spider系統(tǒng),因?yàn)槊繒r(shí)每刻都存在網(wǎng)頁(yè)被修改、刪除或出現(xiàn)新的超鏈接的可能,因此,還要對(duì)spider過(guò)去抓取過(guò)的頁(yè)面保持更新,維護(hù)一個(gè)URL庫(kù)和頁(yè)面庫(kù)。
1、spider抓取系統(tǒng)的基本框架
如下為spider抓取系統(tǒng)的基本框架圖,其中包括鏈接存儲(chǔ)系統(tǒng)、鏈接選取系統(tǒng)、dns解析服務(wù)系統(tǒng)、抓取調(diào)度系統(tǒng)、網(wǎng)頁(yè)分析系統(tǒng)、鏈接提取系統(tǒng)、鏈接分析系統(tǒng)、網(wǎng)頁(yè)存儲(chǔ)系統(tǒng)。
2、spider抓取過(guò)程中涉及的網(wǎng)絡(luò)協(xié)議
搜索引擎與資源提供者之間存在相互依賴的關(guān)系,其中搜索引擎需要站長(zhǎng)為其提供資源,否則搜索引擎就無(wú)法滿足用戶檢索需求;而站長(zhǎng)需要通過(guò)搜索引擎將自己的內(nèi)容推廣出去獲取更多的受眾。spider抓取系統(tǒng)直接涉及互聯(lián)網(wǎng)資源提供者的利益,為了使搜素引擎與站長(zhǎng)能夠達(dá)到雙贏,在抓取過(guò)程中雙方必須遵守一定的規(guī)范,以便于雙方的數(shù)據(jù)處理及對(duì)接。這種過(guò)程中遵守的規(guī)范也就是日常中我們所說(shuō)的一些網(wǎng)絡(luò)協(xié)議。以下簡(jiǎn)單列舉:
http協(xié)議:超文本傳輸協(xié)議,是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)。客戶端一般情況是指終端用戶,服務(wù)器端即指網(wǎng)站。終端用戶通過(guò)瀏覽器、蜘蛛等向服務(wù)器指定端口發(fā)送http請(qǐng)求。發(fā)送http請(qǐng)求會(huì)返回對(duì)應(yīng)的httpheader信息,可以看到包括是否成功、服務(wù) 器類型、網(wǎng)頁(yè)最近更新時(shí)間等內(nèi)容。
https協(xié)議:實(shí)際是加密版http,一種更加安全的數(shù)據(jù)傳輸協(xié)議。
UA屬性:UA即user-agent,是http協(xié)議中的一個(gè)屬性,代表了終端的身份,向服務(wù)器端表明我是誰(shuí)來(lái)干嘛,進(jìn)而服務(wù)器端可以根據(jù)不同的身份來(lái)做出不同的反饋結(jié)果。
robots協(xié)議:robots.txt是搜索引擎訪問(wèn)一個(gè)網(wǎng)站時(shí)要訪問(wèn)的第一個(gè)文件,用以來(lái)確定哪些是被允許抓取的哪些是被禁止抓取的。 robots.txt必須放在網(wǎng)站根目錄下,且文件名要小寫。詳細(xì)的robots.txt寫法可參考 http://www.robotstxt.org 。百度嚴(yán)格按照robots協(xié)議執(zhí)行,另外,同樣支持網(wǎng)頁(yè)內(nèi)容中添加的名為robots的meta標(biāo) 簽,index、follow、nofollow等指令。
3、spider抓取的基本過(guò)程
spider的基本抓取過(guò)程可以理解為如下的流程圖: