觸屏版
全國服務(wù)熱線:0571-87205688
登錄
注冊
客戶中心
關(guān)注云客
關(guān)于百度以及其它搜索引擎的工作原理,其實(shí)大家已經(jīng)討論過很多,但隨著科技的進(jìn)步、互聯(lián)網(wǎng)業(yè)的發(fā)展,各家搜索引擎都發(fā)生著巨大的變化,并且這些變化都是飛快的。我們設(shè)計(jì)這個章節(jié)的目的,除了從官方的角度發(fā)出一些聲音、糾正一些之前的誤讀外,還希望通過不斷更新內(nèi)容,與百度搜索引擎發(fā)展保持同步,給各位站長帶來最新的、與百度高相關(guān)的信息。本章主要內(nèi)容分為四個章節(jié),分別為:抓取建庫;檢索排序;外部投票;結(jié)果展現(xiàn)。
互聯(lián)網(wǎng)信息爆發(fā)式增長,如何有效的獲取并利用這些信息是搜索引擎工作中的首要環(huán)節(jié)。數(shù)據(jù)抓取系統(tǒng)作為整個搜索系統(tǒng)中的上游,主要負(fù)責(zé)互聯(lián)網(wǎng)信息的搜集、保存、更新環(huán)節(jié),它像蜘蛛一樣在網(wǎng)絡(luò)間爬來爬去,因此通常會被叫做“spider”。例如我們常用的幾家通用搜索引擎蜘蛛被稱為:Baiduspdier、Googlebot、Sogou Web Spider等。
Spider抓取系統(tǒng)是搜索引擎數(shù)據(jù)來源的重要保證,如果把web理解為一個有向圖,那么spider的工作過程可以認(rèn)為是對這個有向圖的遍歷。從一些重要的種子 URL開始,通過頁面上的超鏈接關(guān)系,不斷的發(fā)現(xiàn)新URL并抓取,盡最大可能抓取到更多的有價值網(wǎng)頁。對于類似百度這樣的大型spider系統(tǒng),因?yàn)槊繒r 每刻都存在網(wǎng)頁被修改、刪除或出現(xiàn)新的超鏈接的可能,因此,還要對spider過去抓取過的頁面保持更新,維護(hù)一個URL庫和頁面庫。
下圖為spider抓取系統(tǒng)的基本框架圖,其中包括鏈接存儲系統(tǒng)、鏈接選取系統(tǒng)、dns解析服務(wù)系統(tǒng)、抓取調(diào)度系統(tǒng)、網(wǎng)頁分析系統(tǒng)、鏈接提取系統(tǒng)、鏈接分析系統(tǒng)、網(wǎng)頁存儲系統(tǒng)。Baiduspider即是通過這種系統(tǒng)的通力合作完成對互聯(lián)網(wǎng)頁面的抓取工作。
上圖看似簡單,但其實(shí)Baiduspider在抓取過程中面對的是一個超級復(fù)雜的網(wǎng)絡(luò)環(huán)境,為了使系統(tǒng)可以抓取到盡可能多的有價值資源并保持系統(tǒng)及實(shí)際環(huán)境中頁面的一致性同時不給網(wǎng)站體驗(yàn)造成壓力,會設(shè)計(jì)多種復(fù)雜的抓取策略。以下做簡單介紹:
1、抓取友好性
互聯(lián)網(wǎng)資源龐大的數(shù)量級,這就要求抓取系統(tǒng)盡可能的高效利用帶寬,在有限的硬件和帶寬資源下盡可能多的抓取到有價值資源。這就造成了另一個問題,耗費(fèi)被抓網(wǎng)站的帶寬造成訪問壓力,如果程度過大將直接影響被抓網(wǎng)站的正常用戶訪問行為。因此,在抓取過程中就要進(jìn)行一定的抓取壓力控制,達(dá)到既不影響網(wǎng)站的正常用戶訪問又能盡量多的抓取到有價值資源的目的。
通常情況下,最基本的是基于ip的壓力控制。這是因?yàn)槿绻谟蛎赡艽嬖谝粋€域名對多個ip(很多大網(wǎng)站)或多個域名對應(yīng)同一個ip(小網(wǎng)站共享ip)的問題。實(shí)際中,往往根據(jù)ip及域名的多種條件進(jìn)行壓力調(diào)配控制。同時,站長平臺也推出了壓力反饋工具,站長可以人工調(diào)配對自己網(wǎng)站的抓取壓力,這時百度spider將優(yōu)先按照站長的要求進(jìn)行抓取壓力控制。
對同一個站點(diǎn)的抓取速度控制一般分為兩類:其一,一段時間內(nèi)的抓取頻率;其二,一段時間內(nèi)的抓取流量。同一站點(diǎn)不同的時間抓取速度也會不同,例如夜深人靜月黑風(fēng)高時候抓取的可能就會快一些,也視具體站點(diǎn)類型而定,主要思想是錯開正常用戶訪問高峰,不斷的調(diào)整。對于不同站點(diǎn),也需要不同的抓取速度。
2、常用抓取返回碼示意
簡單介紹幾種百度支持的返回碼:
1)最常見的404代表“NOT FOUND”,認(rèn)為網(wǎng)頁已經(jīng)失效,通常將在庫中刪除,同時短期內(nèi)如果spider再次發(fā)現(xiàn)這條url也不會抓??;
2)503代表“Service Unavailable”,認(rèn)為網(wǎng)頁臨時不可訪問,通常網(wǎng)站臨時關(guān)閉,帶寬有限等會產(chǎn)生這種情況。對于網(wǎng)頁返回503狀態(tài)碼,百度spider不會把這條url直接刪除,同時短期內(nèi)將會反復(fù)訪問幾次,如果網(wǎng)頁已恢復(fù),則正常抓取;如果繼續(xù)返回503,那么這條url仍會被認(rèn)為是失效鏈接,從庫中刪除。
3)403代表“Forbidden”,認(rèn)為網(wǎng)頁目前禁止訪問。如果是新url,spider暫時不抓取,短期內(nèi)同樣會反復(fù)訪問幾次;如果是已收錄url,不會直接刪除,短期內(nèi)同樣反復(fù)訪問幾次。如果網(wǎng)頁正常訪問,則正常抓??;如果仍然禁止訪問,那么這條url也會被認(rèn)為是失效鏈接,從庫中刪除。
4)301代表是“Moved Permanently”,認(rèn)為網(wǎng)頁重定向至新url。當(dāng)遇到站點(diǎn)遷移、域名更換、站點(diǎn)改版的情況時,我們推薦使用301返回碼,同時使用站長平臺網(wǎng)站改版工具,以減少改版對網(wǎng)站流量造成的損失。
3、多種url重定向的識別
互聯(lián)網(wǎng)中一部分網(wǎng)頁因?yàn)楦鞣N各樣的原因存在url重定向狀態(tài),為了對這部分資源正常抓取,就要求spider對url重定向進(jìn)行識別判斷,同時防止作弊行為。重定向可分為三類:http 30x重定向、meta refresh重定向和js重定向。另外,百度也支持Canonical標(biāo)簽,在效果上可以認(rèn)為也是一種間接的重定向。
4、抓取優(yōu)先級調(diào)配
由于互聯(lián)網(wǎng)資源規(guī)模的巨大以及迅速的變化,對于搜索引擎來說全部抓取到并合理的更新保持一致性幾乎是不可能的事情,因此這就要求抓取系統(tǒng)設(shè)計(jì)一套合理的抓取優(yōu)先級調(diào)配策略。主要包括:深度優(yōu)先遍歷策略、寬度優(yōu)先遍歷策略、pr優(yōu)先策略、反鏈策略、社會化分享指導(dǎo)策略等等。每個策略各有優(yōu)劣,在實(shí)際情況中往往是多種策略結(jié)合使用以達(dá)到最優(yōu)的抓取效果。
5、重復(fù)url的過濾
spider在抓取過程中需要判斷一個頁面是否已經(jīng)抓取過了,如果還沒有抓取再進(jìn)行抓取網(wǎng)頁的行為并放在已抓取網(wǎng)址集合中。判斷是否已經(jīng)抓取其中涉及到最核心的是快速查找并對比,同時涉及到url歸一化識別,例如一個url中包含大量無效參數(shù)而實(shí)際是同一個頁面,這將視為同一個url來對待。
6、暗網(wǎng)數(shù)據(jù)的獲取
互聯(lián)網(wǎng)中存在著大量的搜索引擎暫時無法抓取到的數(shù)據(jù),被稱為暗網(wǎng)數(shù)據(jù)。一方面,很多網(wǎng)站的大量數(shù)據(jù)是存在于網(wǎng)絡(luò)數(shù)據(jù)庫中,spider難以采用抓取網(wǎng)頁的方式獲得完整內(nèi)容;另一方面,由于網(wǎng)絡(luò)環(huán)境、網(wǎng)站本身不符合規(guī)范、孤島等等問題,也會造成搜索引擎無法抓取。目前來說,對于暗網(wǎng)數(shù)據(jù)的獲取主要思路仍然是通過開放平臺采用數(shù)據(jù)提交的方式來解決,例如“百度站長平臺”“百度開放平臺”等等。
7、抓取反作弊
spider在抓取過程中往往會遇到所謂抓取黑洞或者面臨大量低質(zhì)量頁面的困擾,這就要求抓取系統(tǒng)中同樣需要設(shè)計(jì)一套完善的抓取反作弊系統(tǒng)。例如分析url特征、分析頁面大小及內(nèi)容、分析站點(diǎn)規(guī)模對應(yīng)抓取規(guī)模等等。
評論(0人參與,0條評論)
發(fā)布評論
最新評論