百度搜索引擎工作原理


百度搜索引擎工作原理

文章插圖

Baiduspider 主要抓取策略類型
上圖看似簡單,但其實Baiduspider在抓取過程中面對的是一個超級復雜的網絡環境,為了使系統可以抓取到盡可能多的有價值資源并保持系統及實際環境中頁面的一致性同時不給網站體驗造成壓力,會設計多種復雜的抓取策略 。 以下做簡單介紹:
1、抓取友好性
【百度搜索引擎工作原理】 ? ? ? ? 互聯網資源龐大的數量級,這就要求抓取系統盡可能的高效利用帶寬,在有限的硬件和帶寬資源下盡可能多的抓取到有價值資源 。 這就造成了另一個問題,耗費被抓網站的帶寬造成訪問壓力,如果程度過大將直接影響被抓網站的正常用戶訪問行為 。 因此,在抓取過程中就要進行一定的抓取壓力控制,達到既不影響網站的正常用戶訪問又能盡量多的抓取到有價值資源的目的 。
通常情況下,最基本的是基于ip的壓力控制 。 這是因為如果基于域名,可能存在一個域名對多個ip(很多大網站)或多個域名對應同一個ip(小網站共享ip)的問題 。 實際中,往往根據ip及域名的多種條件進行壓力調配控制 。 同時,站長平臺也推出了壓力反饋工具,站長可以人工調配對自己網站的抓取壓力,這時百度spider將優先按照站長的要求進行抓取壓力控制 。
對同一個站點的抓取速度控制一般分為兩類:其一,一段時間內的抓取頻率;其二,一段時間內的抓取流量 。 同一站點不同的時間抓取速度也會不同,例如夜深人靜月黑風高時候抓取的可能就會快一些,也視具體站點類型而定,主要思想是錯開正常用戶訪問高峰,不斷的調整 。 對于不同站點,也需要不同的抓取速度 。
2、常用抓取返回碼示意
? ? ? ? 簡單介紹幾種百度支持的返回碼:
? ? ? ? 1)最常見的404代表“NOT FOUND”,認為網頁已經失效,通常將在庫中刪除,同時短期內如果spider再次發現這條url也不會抓??;
? ? ? ? 2)503代表“Service Unavailable”,認為網頁臨時不可訪問,通常網站臨時關閉,帶寬有限等會產生這種情況 。 對于網頁返回503狀態碼,百度spider不會把這條url直接刪除,同時短期內將會反復訪問幾次,如果網頁已恢復,則正常抓??;如果繼續返回503,那么這條url仍會被認為是失效鏈接,從庫中刪除 。
? ? ? ? 3)403代表“Forbidden”,認為網頁目前禁止訪問 。 如果是新url,spider暫時不抓取,短期內同樣會反復訪問幾次;如果是已收錄url,不會直接刪除,短期內同樣反復訪問幾次 。 如果網頁正常訪問,則正常抓取;如果仍然禁止訪問,那么這條url也會被認為是失效鏈接,從庫中刪除 。
? ? ? ? 4)301代表是“Moved Permanently”,認為網頁重定向至新url 。 當遇到站點遷移、域名更換、站點改版的情況時,我們推薦使用301返回碼,同時使用站長平臺網站改版工具,以減少改版對網站流量造成的損失 。
3、多種url重定向的識別
? ? ? ? 互聯網中一部分網頁因為各種各樣的原因存在url重定向狀態,為了對這部分資源正常抓取,就要求spider對url重定向進行識別判斷,同時防止作弊行為 。 重定向可分為三類:http 30x重定向、meta refresh重定向和js重定向 。 另外,百度也支持Canonical標簽,在效果上可以認為也是一種間接的重定向 。
4、抓取優先級調配
? ? ? ? 由于互聯網資源規模的巨大以及迅速的變化,對于搜索引擎來說全部抓取到并合理的更新保持一致性幾乎是不可能的事情,因此這就要求抓取系統設計一套合理的抓取優先級調配策略 。 主要包括:深度優先遍歷策略、寬度優先遍歷策略、pr優先策略、反鏈策略、社會化分享指導策略等等 。 每個策略各有優劣,在實際情況中往往是多種策略結合使用以達到最優的抓取效果 。

相關經驗推薦