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