西安力洋網站建設

西安力洋網絡
  • 百度搜索引擎工作原理

  • 發布者:本站 發布時間:2018/8/21 9:38:58
  • Spider 抓取系統的基本框架

    互聯網信息爆發式增長,如何有效的獲取并利用這些信息是搜索引擎工作中的首要環節。數據抓取系統作為整個搜索系統中的上游,主要負責互聯網信息的搜集、保存、更新環節,它像蜘蛛一樣在網絡間爬來爬去,因此通常會被叫做 “spider”。例如我們常用的幾家通用搜索引擎蜘蛛被稱為:Baiduspdier、Googlebot、Sogou Web Spider 等。

    Spider 抓取系統是搜索引擎數據來源的重要保證,如果把 web 理解為一個有向圖,那么 spider 的工作過程可以認為是對這個有向圖的遍歷。從一些重要的種子 URL 開始,通過頁面上的超鏈接關系,不斷的發現新 URL 并抓取,盡最大可能抓取到更多的有價值網頁。對于類似百度這樣的大型 spider 系統,因為每時 每刻都存在網頁被修改、刪除或出現新的超鏈接的可能,因此,還要對 spider 過去抓取過的頁面保持更新,維護一個 URL 庫和頁面庫。

    下圖為 spider 抓取系統的基本框架圖,其中包括鏈接存儲系統、鏈接選取系統、dns 解析服務系統、抓取調度系統、網頁分析系統、鏈接提取系統、鏈接分析系統、網頁存儲系統。Baiduspider 即是通過這種系統的通力合作完成對互聯網頁面的抓取工作。

    Baiduspider 主要抓取策略類型

    上圖看似簡單,但其實 Baiduspider 在抓取過程中面對的是一個超級復雜的網絡環境,為了使系統可以抓取到盡可能多的有價值資源并保持系統及實際環境中頁面的一致性同時不給網站體驗造成壓力,會設計多種復雜的抓取策略。以下做簡單介紹:

    1. 抓取友好性

    互聯網資源龐大的數量級,這就要求抓取系統盡可能的高效利用帶寬,在有限的硬件和帶寬資源下盡可能多的抓取到有價值資源。這就造成了另一個問題,耗費被抓網站的帶寬造成訪問壓力,如果程度過大將直接影響被抓網站的正常用戶訪問行為。因此,在抓取過程中就要進行一定的抓取壓力控制,達到既不影響網站的正常用戶訪問又能盡量多的抓取到有價值資源的目的。

    通常情況下,最基本的是基于 ip 的壓力控制。這是因為如果基于域名,可能存在一個域名對多個 ip(很多大網站)或多個域名對應同一個 ip(小網站共享 ip)的問題。實際中,往往根據 ip 及域名的多種條件進行壓力調配控制。同時,站長平臺也推出了壓力反饋工具,站長可以人工調配對自己網站的抓取壓力,這時百度 spider 將優先按照站長的要求進行抓取壓力控制。

    對同一個站點的抓取速度控制一般分為兩類:其一,一段時間內的抓取頻率;其二,一段時間內的抓取流量。同一站點不同的時間抓取速度也會不同,例如夜深人靜月黑風高時候抓取的可能就會快一些,也視具體站點類型而定,主要思想是錯開正常用戶訪問高峰,不斷的調整。對于不同站點,也需要不同的抓取速度。

    2. 常用抓取返回碼示意

    簡單介紹幾種百度支持的返回碼:

    3. 多種 url 重定向的識別

    互聯網中一部分網頁因為各種各樣的原因存在 url 重定向狀態,為了對這部分資源正常抓取,就要求 spider 對 url 重定向進行識別判斷,同時防止作弊行為。重定向可分為三類:http 30x 重定向、meta refresh 重定向和 js 重定向。另外,百度也支持 Canonical 標簽,在效果上可以認為也是一種間接的重定向。

    4. 抓取優先級調配

    由于互聯網資源規模的巨大以及迅速的變化,對于搜索引擎來說全部抓取到并合理的更新保持一致性幾乎是不可能的事情,因此這就要求抓取系統設計一套合理的抓取優先級調配策略。主要包括:深度優先遍歷策略、寬度優先遍歷策略、pr 優先策略、反鏈策略、社會化分享指導策略等等。每個策略各有優劣,在實際情況中往往是多種策略結合使用以達到最優的抓取效果。

    5. 重復 url 的過濾

    spider 在抓取過程中需要判斷一個頁面是否已經抓取過了,如果還沒有抓取再進行抓取網頁的行為并放在已抓取網址集合中。判斷是否已經抓取其中涉及到最核心的是快速查找并對比,同時涉及到 url 歸一化識別,例如一個 url 中包含大量無效參數而實際是同一個頁面,這將視為同一個 url 來對待。

    6. 暗網數據的獲取

    互聯網中存在著大量的搜索引擎暫時無法抓取到的數據,被稱為暗網數據。一方面,很多網站的大量數據是存在于網絡數據庫中,spider 難以采用抓取網頁的方式獲得完整內容;另一方面,由于網絡環境、網站本身不符合規范、孤島等等問題,也會造成搜索引擎無法抓取。目前來說,對于暗網數據的獲取主要思路仍然是通過開放平臺采用數據提交的方式來解決,例如 “百度站長平臺”“百度開放平臺” 等等。

    7. 抓取反作弊

    spider 在抓取過程中往往會遇到所謂抓取黑洞或者面臨大量低質量頁面的困擾,這就要求抓取系統中同樣需要設計一套完善的抓取反作弊系統。例如分析 url 特征、分析頁面大小及內容、分析站點規模對應抓取規模等等。

    Baiduspider 抓取過程中涉及的網絡協議

    剛才提到百度搜索引擎會設計復雜的抓取策略,其實搜索引擎與資源提供者之間存在相互依賴的關系,其中搜索引擎需要站長為其提供資源,否則搜索引擎就無法滿足用戶檢索需求;而站長需要通過搜索引擎將自己的 內容推廣出去獲取更多的受眾。spider 抓取系統直接涉及互聯網資源提供者的利益,為了使搜素引擎與站長能夠達到雙贏,在抓取過程中雙方必須遵守一定的 規范,以便于雙方的數據處理及對接。這種過程中遵守的規范也就是日常中我們所說的一些網絡協議。

    以下簡單列舉:

    Baiduspider 抓取頻次原則及調整方法

    Baiduspider 根據上述網站設置的協議對站點頁面進行抓取,但是不可能做到對所有站點一視同仁,會綜合考慮站點實際情況確定一個抓取配額,每天定量抓取站點內容,即我們常說的抓取頻次。那么百度搜索引擎是根據什么指標來確定對一個網站的抓取頻次的呢,主要指標有四個:

    1. 網站更新頻率:更新快多來,更新慢少來,直接影響 Baiduspider 的來訪頻率
    2. 網站更新質量:更新頻率提高了,僅僅是吸引了 Baiduspier 的注意,Baiduspider 對質量是有嚴格要求的,如果網站每天更新出的大量內容都被 Baiduspider 判定為低質頁面,依然沒有意義。
    3. 連通度:網站應該安全穩定、對 Baiduspider 保持暢通,經常給 Baiduspider 吃閉門羹可不是好事情
    4. 站點評價:百度搜索引擎對每個站點都會有一個評價,且這個評價會根據站點情況不斷變化,是百度搜索引擎對站點的一個基礎打分(絕非外界所說的百度權重),是百度內部一個非常機密的數據。站點評級從不獨立使用,會配合其它因子和閾值一起共同影響對網站的抓取和排序。

    抓取頻次間接決定著網站有多少頁面有可能被建庫收錄,如此重要的數值如果不符合站長預期該如何調整呢?百度站長平臺提供了抓取頻次工具(http://zhanzhang.baidu.com/pressure/index),并已完成多次升級。該工具除了提供抓取統計數據外,還提供 “頻次調整” 功能,站長根據實際情況向百度站長平臺提出希望 Baiduspider 增加來訪或減少來訪的請求,工具會根據站長的意愿和實際情況進行調整。

    造成 Baiduspider 抓取異常的原因

    有一些網頁,內容優質,用戶也可以正常訪問,但是 Baiduspider 卻無法正常訪問并抓取,造成搜索結果覆蓋率缺失,對百度搜索引擎對站點都是一種損失,百度把這種情況叫 “抓取異常”。對于大量內容無法正常抓取的網站,百度搜索引擎會認為網站存在用戶體驗上的缺陷,并降低對網站的評價,在抓取、索引、排序上都會受到一定程度的負面影響,最終影響到網站從百度獲取的流量。

    下面向站長介紹一些常見的抓取異常原因:

    1. 服務器連接異常

    服務器連接異常會有兩種情況:一種是站點不穩定,Baiduspider 嘗試連接您網站的服務器時出現暫時無法連接的情況;一種是 Baiduspider 一直無法連接上您網站的服務器。
    造成服務器連接異常的原因通常是您的網站服務器過大,超負荷運轉。也有可能是您的網站運行不正常,請檢查網站的 web 服務器(如 apache、iis)是否安裝且正常運行,并使用瀏覽器檢查主要頁面能否正常訪問。您的網站和主機還可能阻止了 Baiduspider 的訪問,您需要檢查網站和主機的防火墻。

    2. 網絡運營商異常

    網絡運營商分電信和聯通兩種,Baiduspider 通過電信或網通無法訪問您的網站。如果出現這種情況,您需要與網絡服務運營商進行聯系,或者購買擁有雙線服務的空間或者購買 cdn 服務。

    3. DNS 異常

    當 Baiduspider 無法解析您網站的 IP 時,會出現 DNS 異常。可能是您的網站 IP 地址錯誤,或者域名服務商把 Baiduspider 封禁。請使用 WHOIS 或者 host 查詢自己網站 IP 地址是否正確且可解析,如果不正確或無法解析,請與域名注冊商聯系,更新您的 IP 地址。

    4. IP 封禁

    IP 封禁為:限制網絡的出口 IP 地址,禁止該 IP 段的使用者進行內容訪問,在這里特指封禁了 BaiduspiderIP。當您的網站不希望 Baiduspider 訪問時,才需要該設置,如果您希望 Baiduspider 訪問您的網站,請檢查相關設置中是否誤添加了 BaiduspiderIP。也有可能是您網站所在的空間服務商把百度 IP 進行了封禁,這時您需要聯系服務商更改設置。

    5. UA 封禁

    UA 即為用戶代理(User-Agent),服務器通過 UA 識別訪問者的身份。當網站針對指定 UA 的訪問,返回異常頁面(如 403,500)或跳轉到其他頁面的情況,即為 UA 封禁。當您的網站不希望 Baiduspider 訪問時,才需要該設置,如果您希望 Baiduspider 訪問您的網站,useragent 相關的設置中是否有 Baiduspider UA,并及時修改。

    6. 死鏈

    頁面已經無效,無法對用戶提供任何有價值信息的頁面就是死鏈接,包括協議死鏈和內容死鏈兩種形式:

    7. 異常跳轉

    將網絡請求重新指向其他位置即為跳轉。異常跳轉指的是以下幾種情況:

    新鏈接重要程度判斷

    好啦,上面我們說了影響 Baiduspider 正常抓取的原因,下面就要說說 Baiduspider 的一些判斷原則了。在建庫環節前,Baiduspider 會對頁面進行初步內容分析和鏈接分析,通過內容分析決定該網頁是否需要建索引庫,通過鏈接分析發現更多網頁,再對更多網頁進行抓取——分析——是否建庫 & 發現新鏈接的流程。理論上,Baiduspider 會將新頁面上所有能 “看到” 的鏈接都抓取回來,那么面對眾多新鏈接,Baiduspider 根據什么判斷哪個更重要呢?兩方面:

    第一,對用戶的價值

    1. 內容獨特,百度搜索引擎喜歡 unique 的內容
    2. 主體突出,切不要出現網頁主體內容不突出而被搜索引擎誤判為空短頁面不抓取
    3. 內容豐富
    4. 廣告適當

    第二,鏈接重要程度

    1. 目錄層級——淺層優先
    2. 鏈接在站內的受歡迎程度

    百度優先建重要庫的原則

    Baiduspider 抓了多少頁面并不是最重要的,重要的是有多少頁面被建索引庫,即我們常說的 “建庫”。眾所周知,搜索引擎的索引庫是分層級的,優質的網頁會被分配到重要索引庫,普通網頁會待在普通庫,再差一些的網頁會被分配到低級庫去當補充材料。目前 60% 的檢索需求只調用重要索引庫即可滿足,這也就解釋了為什么有些網站的收錄量超高流量卻一直不理想。

    那么,哪些網頁可以進入優質索引庫呢。其實總的原則就是一個:對用戶的價值。包括卻不僅于:

    1. 有時效性且有價值的頁面:在這里,時效性和價值是并列關系,缺一不可。有些站點為了產生時效性內容頁面做了大量采集工作,產生了一堆無價值面頁,也是百度不愿看到的 .
    2. 內容優質的專題頁面:專題頁面的內容不一定完全是原創的,即可以很好地把各方內容整合在一起,或者增加一些新鮮的內容,比如觀點和評論,給用戶更豐富全面的內容。
    3. 高價值原創內容頁面:百度把原創定義為花費一定成本、大量經驗積累提取后形成的文章。千萬不要再問我們偽原創是不是原創。
    4. 重要個人頁面:這里僅舉一個例子,科比在新浪微博開戶了,即使他不經常更新,但對于百度來說,它仍然是一個極重要的頁面。

    哪些網頁無法建入索引庫

    上述優質網頁進了索引庫,那其實互聯網上大部分網站根本沒有被百度收錄。并非是百度沒有發現他們,而是在建庫前的篩選環節被過濾掉了。那怎樣的網頁在最初環節就被過濾掉了呢:

    1. 重復內容的網頁:互聯網上已有的內容,百度必然沒有必要再收錄。
    2. 主體內容空短的網頁
      • 有些內容使用了百度 spider 無法解析的技術,如 JS、AJAX 等,雖然用戶訪問能看到豐富的內容,依然會被搜索引擎拋棄
      • 加載速度過慢的網頁,也有可能被當作空短頁面處理,注意廣告加載時間算在網頁整體加載時間內。
      • 很多主體不突出的網頁即使被抓取回來也會在這個環節被拋棄。
    3. 部分作弊網頁

    搜索引擎索引系統概述

    眾所周知,搜索引擎的主要工作過程包括:抓取、存儲、頁面分析、索引、檢索等幾個主要過程。上一章我們主要介紹了部分抓取存儲環節中的內容,此章簡要介紹一下索引系統。

    在以億為單位的網頁庫中查找特定的某些關鍵詞猶如大海里面撈針,也許一定的時間內可以完成查找,但是用戶等不起,從用戶體驗角度我們必須在毫秒級別給予用戶滿意的結果,否則用戶只能流失。怎樣才能達到這種要求呢?

    如果能知道用戶查找的關鍵詞(query切詞后)都出現在哪些頁面中,那么用戶檢索的處理過程即可以想象為包含了query中切詞后不同部分的頁面集合求交的過程,而檢索即變成了頁面名稱之間的比較、求交。這樣,在毫秒內以億為單位的檢索成為了可能。這就是通常所說的倒排索引及求交檢索的過程。如下為建立倒排索引的基本過程:

    1. 頁面分析的過程實際上是將原始頁面的不同部分進行識別并標記,例如:title、keywords、content、link、anchor、評論、其他非重要區域等等;
    2. 分詞的過程實際上包括了切詞分詞同義詞轉換同義詞替換等等,以對某頁面title分詞為例,得到的將是這樣的數據:term文本、termid、詞類、詞性等等;
    3. 之前的準備工作完成后,接下來即是建立倒排索引,形成{termàdoc},下圖即是索引系統中的倒排索引過程。

      倒排索引是搜索引擎實現毫秒級檢索非常重要的一個環節,下面我們要重要介紹一下索引系統建立倒排索引的重要過程——入庫寫庫。

    倒排索引的重要過程——入庫寫庫

    索引系統在建立倒排索引的最后還需要有一個入庫寫庫的過程,而為了提高效率這個過程還需要將全部term以及偏移量保存在文件頭部,并且對數據進行壓縮,這涉及到的過于技術化在此就不多提了。在此簡要給大家介紹一下索引之后的檢索系統。

    檢索系統主要包含了五個部分,如下圖所示:

    影響搜索結果排序的因素

    上面的內容好象有些深奧,因為涉及大量技術細節,我們只能說到這兒了。那下面我們說說大家最感興趣的排序問題吧。用戶輸入關鍵詞進行檢索,百度搜索引擎在排序環節要做兩方面的事情,第一是把相關的網頁從索引庫中提取出來,第二是把提取出來的網頁按照不同維度的得分進行綜合排序。“不同維度”包括:

    以上便是百度搜索引擎決定搜索結果排序時考慮的六大原則,那么六大原則的側重點是怎樣的呢?哪個原則在實際應用時占比最大呢?其實在這里沒有一個確切的答案。在百度搜索引擎早期,這些閾值的確是相對固定的,比如“相關性”在整體排序中的重量可以占到七成。但隨著互聯網的不斷發展,檢索技術的進步,網頁數量的爆發式增長,相關性已經不是難題。于是百度搜索引擎引入了機器學習機制,讓程序自動產出計算公式,推進排序策略更加合理。

    低質網頁狙擊策略——石榴算法

    我們理解網站生存發展需要資金支持,從來不反對網站添加各種合法廣告,不要再問我們“我們網站加了XX聯盟的廣告會不會被處罰”這類問題。有些站點好不容易在百度有了比較好的排位,卻在頁面上放置大量有損訪問用戶體驗的廣告,已經嚴重影響到百度搜索引擎用戶的使用感受。為此,百度質量團隊2013年5月17日發布公告:針對低質量網頁推出了石榴算法,旨在打擊含有大量妨礙用戶正常瀏覽的惡劣廣告的頁面,尤其是彈出大量低質廣告、存在混淆頁面主體內容的垃圾廣告的頁面。

    如以下網頁截圖,用戶要花很長時間去尋找真正的下載地址,是百度無法接受容忍的。

    百度質量團隊希望站長能夠多從用戶角度出發,朝著長遠發展考慮,在不影響用戶體驗的前提下合理地放置廣告,贏得用戶的長期青睞才是一個網站發展壯大的基礎。

    外鏈的作用(2014版)

    曾經,“內容為王超鏈為皇”的說法流行了很多年,通過超鏈計算得分來體現網頁的相關性和重要性,的確曾經是搜索引擎用來評估網頁的重要參考因素之一,會直接參與搜索結果排序計算。但隨著該技術被越來越多的SEO人員了解,超鏈已經逐漸失去作為投票的重要意義,無論是谷歌還是百度,對超鏈數據的依賴程度都越來越低。那么,在現在,超鏈在發揮著怎樣的作用?

    1. 吸引蜘蛛抓取:雖然百度在挖掘新好站點方面下了很大工夫,開放了多個數據提交入口,開避了社會化發現渠道,但超鏈依然是發現收錄鏈接的最重要入口。

    2. 向搜索引擎傳遞相關性信息:百度除了通過TITLE、頁面關鍵詞、H標簽等對網頁內容進行判斷外,還會通過錨文本進行鋪助判斷。使用圖片作為點擊入口的超鏈,也可以通過alt屬性和title標簽向百度傳情達意。

    3. 提升排名:百度搜索引擎雖然降低了對超鏈的依賴,但對超鏈的識別力度從未下降,制定出更加嚴格的優質鏈接、正常鏈接、垃圾鏈接和作弊鏈接標準。對于作弊鏈接,除了對鏈接進行過濾清理外,也對鏈接的受益站進行一定程度的懲罰。相應的,對優質鏈接,百度依然持歡迎的態度。

    4. 內容分享,獲取口碑:優質內容被廣泛傳播,網站借此獲得的流量可能并不多,但如果內容做得足夠,也可以樹立自己的品牌效應。 嚴格來講,這并不屬于超鏈的作用。在百度眼里,網站的品牌比超鏈要重要得多。

    切斷買賣超鏈的利刃——綠蘿算法1.0&2.0

    百度質量團隊2013年2月19日發布公告推出綠蘿算法,針對買賣鏈接行為再次強調:買賣鏈接行為一方面影響用戶體驗,干擾搜索引擎算法;另一方面讓投機建站者得利、超鏈中介者得利,真正勤勤懇懇做好站的站長在這種惡劣的互聯網超鏈環境中無法獲得應有的回報。因此針對買賣鏈接行為在清除外鏈計算的基礎上,以下三個類型的網站將會受到不同程度的影響:

    1. 超鏈中介:超鏈本應是互聯網上相對優質的推薦,是普通用戶及網站之間對頁面內容、網站價值的肯定,但是現在種種超鏈作弊行為使得真實的肯定變成了一些人謀取利益的墊腳石,用戶無法根據鏈接的推薦找到需要的優質資源,并且嚴重干擾搜索引擎對網站的評價。超鏈中介便是這畸形的超鏈市場下形成的惡之花,我們有義務維護超鏈的純凈維護用戶利益,也有責任引導站長朋友們不再支出無謂的花銷,所以超鏈中介將在我們的目標范圍內。

    2. 出賣鏈接的網站:一個站點有許多種盈利方式,利用優質的原創內容吸引固定用戶,引進優質廣告資源,甚至舉辦線下活動,這些盈利方式都是我們樂于見到的,是一個網站的真正價值所在。但是一些網站內容基本采集自網絡,以出賣超鏈位置為生;一些機構類網站或被鏈接中介所租用進行鏈接位置出售,使得超鏈市場泡沫越吹越多。此次的調整對這類站點同樣將有所影響。

    3. 購買鏈接的網站:一直以來,百度對優質站點都會加以保護和扶植,這是從用戶需求以及創業站長的角度出發的必然結果。而部分站長不將精力用在提升網站質量上,而選擇鉆營取巧,以金錢換取超鏈,欺騙搜索引擎進而欺騙用戶。對于沒有太多資源和金錢用于此類開銷的創業站長來說,也是一種無形的傷害,如果不進行遏制,劣幣驅逐良幣,勢必導致互聯網環境愈加惡劣。此次調整這類站點本身也將受到影響。

    以上即百度質量團隊首次推出綠蘿算法時的具體情況,后來被稱為綠蘿算法1.0。事隔5個月之后,百度質量團隊再次推出綠蘿算法2.0,針對明顯的推廣性軟文進行更大范圍更加嚴格的處理。

    懲罰的對象重點是發布軟文的新聞站點,同時包括軟文交易平臺、軟文收益站點。懲罰方式包括:

    1. 針對軟文交易平臺,將被直接屏蔽;
    2. 針對軟文發布站,將視不同程度而進行處理。例如一個新聞網站,存在發布軟文的現象但情節不嚴重,該網站在搜索系統中將被降低評價;利用子域大量發布軟文的,該子域將被直接屏蔽,并且清理出百度新聞源;更有甚者創建大量子域用于發布軟文,此種情況整個主域將被屏蔽。
    3. 針對軟文受益站,一個網站的外鏈中存在少量的軟文外鏈,那么此時該外鏈將被過濾清除出權重計算體系,該受益站點將被觀察一段時間后視情況而進一步處理;一個網站的外鏈中存在大量的軟文外鏈,那么此時該受益站點將被降低評價或直接屏蔽。

    結構化數據——助力站點獲得更多點擊

    網頁經歷了抓取建庫,參與了排序計算,最終展現在搜索引擎用戶面前。目前在百度搜索左側結果展現形式很多,如:鳳巢、品牌專區、自然結果等,一條自然結果怎樣才能獲得更多的點擊,是站長要考慮的重要一環。

    目前自然結果里又分為兩類,見下圖,第一個,即結構化展現,形式比較多樣。目前覆蓋80%的搜索需求,即80%的關鍵詞下會出現這種復雜展現樣式;第二個即一段摘要式展現,最原始的展現方式,只有一個標題、兩行摘要、部分鏈接。

    很明顯,結構化展現能夠向用戶明確傳遞信息,直擊用戶需求痛點,獲得更好的點擊自然不在話下。目前結構化展現有幾個樣式:

    那么站長可以通過什么途徑獲得結果化展現呢:

    轉載自:http://zhanzhang.baidu.com/college/courseinfo?id=144

  • 返回列表
    相關閱讀
    更多
    深度挖掘網站的商用價值,化繁為簡的設計,為企業找到直接有效的解決方案
    +86 (029) 88765320
    +86 15829904657
    地址:西安市未央區文景路11號
    星舍大廈5F P.C:7100001
    boss@178365.net
    在線咨詢: 985224206
    中國互聯網協會成員單位
    西安力洋之星網絡技術有限公司 | 版權所有
    Copyright 2008-2020 Liyang.Inc All Rights Reserved.
    Liyang.Inc
    中文字幕第1页面