SEO教程提供SEO基礎入門教程
微笑SEO優化教程網:關注本站讓你的SEO不斷進步!

搜索引擎spider爬蟲(蜘蛛)原理

您現在的位置:SEO教程 > SEO優化教程 > 時間:2018-06-08 10:42:42 > 作者:smiseo
做SEO的人應該要對搜索引擎的基本原理有一些了解,從搜索引擎發現網址到該頁面擁有排名,以及后續更新整個過程中,搜索引擎到底是怎么工作的?你都需要了解。

對于專業的算法不必進行深入的研究,但是對于搜索引擎工作中的生命力和算法原理要有個簡單的認知,這樣才能更有效地開展SEO工作,知其然也要知其所以然;

當然也有一些朋友不懂這些,照樣做昨有聲有色,但是有對搜索引擎工作原理,懂總比不懂好一點。

以往的SEO書藉中對這內容講解都比較簡單,希望在些能夠嘗試結合SEO實際工作和現象,更進一步剖析一下搜索引擎的工作原理,

其實當你了解了搜索引擎的工作流程、策略和基本算法后,就可以在一定程序上避免因為不當操作而帶來的不必要處罰,

同也可以快速分析出很多搜索引擎搜索結果異常的原因。有搜索行為的地方就有搜索引擎,站內搜索、全網搜索、垂直搜索等都用到搜索引擎;

接下來,本文會根據從業認知,討論一下全文搜索引擎的基本架構。

百度、谷歌等綜合搜索巨頭肯定有著更為復雜的架構和檢索技術,但宏觀上基本原理都差不多的。
搜索引擎spider爬蟲(蜘蛛)原理

搜索引擎的大概架構如圖2-1所示。可以分成虛線左右兩個部分:一部分是主動抓取網頁進行一系列處理后建立索引,等待用戶搜索;

另一部分是分析用戶搜索意圖,展現用戶所需要的搜索結果。

搜索引擎的大概架構

 搜索引擎主動抓取網頁,并進行內容處理、索引部分的流程和機制一般如下:
1.派出spider按照一定策略把網頁抓回到搜索引擎服務器;

2.對抓回的網頁進行鏈接抽離、內容處理,削除噪聲、提取該頁主題文本內容等;

3.對網頁的文本內容進行中文分詞、去除停止詞等;

4.對網頁內容進行分詞后判斷該頁面內容與已索引網頁是否有重復,剔除重復頁,對剩余網頁進行倒排索引,然后等待用戶的檢索。

 當有用戶進行查詢后,搜索引擎工作的流程機制一般如下:
1.先對用戶所查詢的關鍵詞進行分詞處理,并根據用戶的地理位置和歷史檢索特征進行用戶需求分析,以便使用地域性搜索結果和個性化搜索結果展示用戶最需要的內容;

2.查找緩存中是否有該關鍵詞的查詢結果,如果有,有為最快地呈現查詢,搜索引擎會根據當下用戶的各種信息判斷其真正需求,對緩存中的結果進行微調或直接呈現給用戶;

3.如果用戶所查詢的關鍵詞在緩存中不存在,那么就在索引庫中的網頁進行調取排名呈現,并將該關鍵詞和對應的搜索結果加入到緩存中;

4.網頁排名是用戶的搜索詞和搜索需求,對索引庫中網頁進行相關性、重要性(鏈接權重分析)和用戶體驗的高低進行分析所得出的。用戶在搜索結果中的點擊和重復搜索行為,也可以告訴搜索引擎,用戶對搜索結果頁的使用體驗。這塊兒是近來作弊最多的部分,所以這部分會伴隨著搜索引擎的反作弊算法干預,有時甚至還會進行人工干預。

搜索引擎原理之spider(蜘蛛如何抓取網頁)
spider也就是大家常說的爬蟲、蜘蛛或者機器人,是處于整個搜索引擎最上游的一模塊,只有spider抓回的頁面或URL才會被索引和有機會參考排名。需要注意的是:中要是spider抓到的URL都可能會參考排名,但參考網頁并不一定就被spider抓取到了內容,比如有些網站屏弊搜索引擎spider后,雖然spider不能抓取網頁內容,但是也會有一些域名級別的URL在搜索引擎中參考了排名(例如天貓上的很多獨立域名的店鋪);根據搜索引擎的類型不同,spider也會有不同的分類。大型搜索引擎的spider一般都會有以下所需要解決的問題,也是和SEO密切相關的問題。

首先spider想要抓取網頁,要有發現網頁抓取的入口,沒有抓取入口也就沒有辦法繼續工作,所以首先要給spider一些網頁入口,然后spider順著這些入口進行爬行抓取,這里就涉及抓取生命力的問題。抓取策略的選擇會直接影響spider所需要的資源、spider所抓取網頁占全網網頁的比例,以及spider的工作效率。那么spider一般會采用什么的生命力抓取網頁呢?

其次,網頁內容也是有時效性的,所以spider對不同網頁的抓取頻率也要有一定的策略性,否則可能索引庫中的內容都很陳舊,或者該更新的沒更新,不該更新的卻浪費資源更新,甚至還會出現網頁已經被刪除了,但是該頁面還存在于結果中的情況。那么spider一般會使用什么樣的再次抓取和更新策略呢?

再次互聯網中的網頁總有一部分是沒有外部鏈接導入的,也就是常說的“暗網”,并且這上部分網頁也是需要呈現給廣大網民瀏覽的,此時spider就要想辦法針對處于暗網中的網頁進行抓取,當下百度是如何來解決這個暗網問題的?

最后大型搜索引擎的spider不可能只有一個,為了節省資源,要多個spider同時作業且抓取頁面不重利又由于各地區數據中心分配問題,搜索引擎一般不會把spider服務器放置在一個地區,會多個地區同時作業,這兩方面就涉及分布式抓取的策略問題。那么一般搜索引擎的spider會采用什么樣的分布抓取策略呢?

接下來逐一介紹一般的搜索引擎spider在面臨以上問題時采用的是什么策略,并詳細地了解一下整個搜索引擎最上游的spider到底是如何工作的,以及一個優秀的spider程序應該有哪些特點。

spider有哪些分類:
按照現在網絡上所有spider的作用及表現出來的特征,可以將其分為三類:指型spider、增量型spider、垂直型spider。

1.批量型spider:一般具有明顯的抓取范圍和目標,設置抓取時間的限制、抓取數據量的限制,或抓取固定范圍內頁面的等;當spider的作業達到預先的目標就會停止。普通站長和SEO人員使用采集工具或程序,所派出的spider大都屬于批量型spider,一般只抓取固定網站的固定內容,或者設置對某一資源的固定目標數據量,當抓取的數據或者時間達到設置限制后就會自動停止,這種spider就是伊麗莎白 批量型spider。

2.增量型spider:增量型spider也可以稱之為通用爬蟲,一般可以稱為搜索引擎的網站或程序,使用的都是增量型spider,但是站內搜索引擎除外,看碟有站內搜索引擎一般不需要spider的,增量型spider和批量型spider不同,沒有固定目標、范圍和時間限制,一般會無休止地抓取下去,直到把全網的數據抓完為止。增量型spider不僅僅抓取盡可能全的頁面,還要對已經抓取到的網頁進行相應的再次抓取和更新。因為整個互聯網是在不斷變化的,單個網頁上的內容可能會隨著時間的變化不斷更新,甚至在一定時間之后該頁面會被刪除,優秀的增量型spider需要及發現這種變化,并反映給搜索引擎后續的處理系統,對該網頁進行重新處理,當下百度,谷歌網頁搜索等全文搜索引擎的spider一般都是增量型spider。

3.垂直型spider:垂直型spider也可以稱之為聚焦爬蟲,只對特定主題、特定內容或特定行業的網頁進行抓取,一般都會聚焦在某一個范圍內進行增量型的抓取。此類型的spider不像增量型spider一樣追求大而廣的覆蓋面,而是在增量型spider上增加一個抓取網頁的限制,根據需求抓取含有目標內容的網頁,不符合要求的網頁會直接被放棄抓取。對于網頁級別純文本內容方面的識別,現在的搜索引擎spider還不能百分之百地進行準確分類,并且垂直型spider也不能像增量型spider那樣進行全互聯網爬取,因為那樣太浪費資源。所以現在的垂直搜索引擎如果有附性的增量型spider,那么就會利用增量型spider以站點為單位進行內容分類,然后再派出垂直型spider抓取符合自己內容要求的站點;沒有增量型spider作為基礎的垂直搜索引擎,一般會采用人工添加抓取站點的方式來引導垂直型spider作業。當然在同一個站點內也會存在不同的內容,此時垂直型spider也需要進行內容判斷,但是工作量相對來說已經縮減優化了很多,現在一淘網,優酷下的搜庫、百度和谷歌等大型搜索引擎下的垂直接索使用的都垂直型spider。雖然現在使用比較廣泛的垂直型spider對網頁的識別度已經很高,但是總會有些不足,這也使得垂直類搜索引擎上的SEO有了很大空間。

本站主要討論網頁搜索的SEO,所以討論的內容以增量型spider為主,也會簡單涉及垂直型spider方面的內容,其實垂直型spider完全可以看作是做了抓取限制的增量型spider。

spider的抓取策略

在大型搜索引擎spider的抓取過程中會有很多策略,有時也可能是多種策略綜合使用,這里簡單介紹一下比較簡單的spider抓取策略,以輔助大家對spider工作流程的理解,spider抓取網頁,在爭取抓取盡可能多網頁的前提下,首先要注意的就是避免重復抓取,為此spider程序一般建立已抓取URL列表和持抓取URL列表(實際中是由哈希表來記錄URL的兩個狀態);在抓取到一個新頁面時,提取該頁面上的鏈接,并把提取到的鏈接和已經抓取URL列表中的鏈接進行逐一對比,如果發現該鏈接已經抓取過,就會直接丟棄,如果發現該鏈接還未抓取,就會把該鏈接放到待抓取URL隊列的末尾等待抓取。

spider眼中的互聯網網頁可以分為以下四類,如圖2-2所示:

spider眼中的互聯網網頁可以分為以下四類

1.已經抓取過的頁面,即spider已經抓取過的頁面;
2.待抓取頁面,也就是這些頁面的URL已經被spider加入到了待抓取URL隊列中,只是還沒有進行抓取。
3.可抓取頁面,spider根據互聯網上的鏈接關系最終是可以找到這些頁面的,也就是說當下可能還不知道這些頁面的存在,但是隨著spider增量型的抓取,最終會發現這些頁面的存在;
4.暗網中的頁面,這些網頁和表層網絡上的網頁是脫鉤的,可能這些頁面中有鏈接指向以上三類網頁,但是通過以上三類網頁并不能找到這些頁面,比如,網站內需要手動提交查詢才能獲得的網頁,就屬于暗網中的網頁,據估計暗網要比非暗網大幾個數量級。

全文搜索引擎的spider一直致力于抓取全網的數據,現在spider對于非暗網網頁已經具備大量高效的抓取策略。對于暗網的抓取,各個搜索引擎都在努力研究自己不同的暗網spider抓取策略,百度對比推了“阿拉丁”計劃,鼓勵有優質資源的網站把站內資源直接以XML文件的形式提交給百度,百度會直接進行抓取和優先排名顯示。這里主要討論spider針對非暗網中網頁的抓取策略。

當spider從一個入口網頁開始抓取時,會獲得這個頁面上所有的導出鏈接,當spider隨機抓取其中的一個鏈接時,同樣又會收集到很多新的鏈接。此時spider面臨一個抓取方式的選擇:

1.先沿著一條鏈接一層一層地抓取下去,直到這個鏈接抓到盡,再返回來按照同樣的規則抓取其他鏈接,也就是深度優化抓取策略。

2.還是先把入口頁面中的鏈接抓取一遍,把新發現的URL依次進行入庫排列,依次抓取下去,也就是廣度優化先抓取策略。

一.深度優化策略:深度優先策略即一條道走到黑,當沿著一個路徑走到無路可走時,再返回來走另一條路。

如圖2-3所示為深度優先抓取策略的示意圖,所設A頁面為spider的入口,spider在A頁面上發現了1、7、11三個頁面的鏈接,然后spider會按照圖中數字所標示的順序依次進行抓取。當第一條路徑抓到3頁面時到頭了,就會返回2頁面抓取第二條路徑中的4頁面,在4頁面也抓到頭了,就會返回1頁面抓取第三條路徑中的5頁面,并順著一路抓下去,抓到頭后會按照之前的規則沿一條一條路徑抓下去。

 

深度優先抓取策略

 二.廣度優先:廣度優先策略即spider在一個頁面上發現多個鏈接時,并不是一條道路走到黑的,順著一個鏈接繼續抓下去,而是先把這些頁面抓一遍,然后再抓從這些頁面中提取下來的鏈接,如圖2-4所示廣度優先抓取策略的示意圖,假設A頁面為spider的入口,spider在A頁面上發現了1、2、3三個頁面。當抓完1網頁時,只是把1網頁中4和5網頁的鏈接放入待抓取URL列表,并不繼續抓1頁面中的其他鏈接,而是抓2頁面。當B級頁面抓取完成時,才會抓取從B級頁面中提取到C級頁面中的4、5、6、7、8、9六個頁面,等C級頁面抓取完成后,再抓取從C級頁面中提取到D級新頁面,依次持續抓取下去。
 廣度優先抓取策略
 理論上spider不論采用深度優先策略還是廣度優先策略,只是時間足夠,都可以把整個互聯網上的網頁抓取一遍。但是搜索引擎本身的資源有是有限的,快帶抓取全互網有價值的頁面只是一種奢望罷了,所以搜索引擎的spider不是只使用一種策略無限地抓取新頁面,而是采用兩種策略相結合的方式來進行抓取。一般spider可以在域名級別的頁面使用方式優先抓取策略,盡可能地收集更多的網站。在網站內頁級別一般會根據網站的權重綜合使用廣度和深底優先抓取策略,也就是說網站的權重越高,抓取量也會越大,剛上線的網站可能只會被抓一個首頁,這也是很多新網站在一定時間內,在搜索引擎中只被索引首頁的原因之一。
 
上面討論的兩個策略是站在spider只是單純想抓取全互聯網數據的基礎上,所需要選擇的策略。實際在搜索引擎中,雖然spider在盡力保證抓取頁面的全面性,但是由于自身資源有限,所以在盡力抓取全網的同時,還要考慮對重要頁面的優先抓取。這個“重要頁面”的定義應該是指在互聯網中比較的頁面,該頁面內容應該具有影響力比較大、需要了解該內容的網民比較多或時效傳播性比較強的特點。體現到抓取策略上,就是這個頁面的導入鏈接很多,或者是權重高的大站中的網頁。總結來說,就是兩個策略:重要網頁優先抓取策略和大站鏈接優先抓取策略。
1.重要頁面優先抓取策略:一般認為頁面的重要性,除了受寄主站本身的質量和權重影響以外,就看導入鏈接的多少和導入鏈接的質量了。spider抓取層面上的“重要頁面”一般由導入的鏈接來決定。在前面所討論的抓取策略中,spider一般都會把新發現的未抓取過的URL依次放到待抓取URL隊列的尾端,等待spider按順序抓取。在重要頁面優先抓取的策略中就不是這樣的了,這個待抓取URL隊列的順序是在不斷變化的。排序的依據一般是:頁面獲得的已抓取頁面鏈接是多少的鏈接權重的高低。

2.大站優先策略:大站優先策略這人思路很笑意。被搜索引擎認定為“大站”的網站,一定有著穩定的服務器、良好的網站結構、優秀的用戶體驗、及時的資訊內容、權威的相關資料、豐富的內容類型和龐大的網頁數量等先生 ,當然也會相應地擁有大量的高質量外鏈。也就是在這一定程序上可以認定這些網站的內容就可以滿足相當比例網民的搜索需求,搜索引擎為了在有限的資源內盡最大的努力滿足大部分普通用戶的搜索需求,一般就會對大站進行“特殊照顧”。因此大家可以看到新浪、網易這些網站上自主發布內容幾乎都會百度秒收,因為百度搜索的spider在這些網站上是7*24小時不間斷抓取的。如果有新站的鏈接出現在這些網站的重要頁面上,也會相應地被快速抓取和收錄。曾經有朋友試驗新站秒收的策略:把新站的鏈接推到一些大站的首頁,或掛到大站首頁所推薦的頁面中,效果還是很不錯的。

這兩個策略與前面所討論的廣度優先策略和深度優先策略相結合的抓取方式是有共通點的。比如,從另一個角度來看,如果spider按照前兩策略抓取,一個頁面獲得的導入鏈接越多,被提交抓到的幾率就越大,也就是和重要頁面優先抓取是趨同的;在spider資源有限的情況下廣度優先策略和深度優先策略的結合分配本身就會以站點的大小進行區別對待,大網站的頁面有著先天的高重要程序,往往也就容易獲得更的鏈接支持。所以宏觀來看,這幾個策略在抓取表現上有相近之處,在實際的抓取過程中相輔相成。

相對于整個互聯網的網頁來說,spider的資源再充足也是有限的,所以優秀的spider程序應該首先保證對重要網頁的抓取,然后才是盡力抓取盡可能全的互聯網網頁信息民。由此也可以看出依靠外部鏈接來引導spider和提升網站權重,以及依靠內容長期運營網站權重的重要性。

spider并不會爬:spider抓取一個網頁后會優先把網頁中的URL提取出來,同時記錄和計算URL的形式、位置、錨文本、當前頁所賦予的權值等信息,然后把這些URL合并到抓取隊列中,并根據每個URL所附有的總權值等信息進行抓取隊列內排序。spider就是根據這個不斷變化順序的URL隊列來抓取網頁內容的,并不是從一個頁面沿一著鏈接爬到另一個頁面的抓取過程。因此嚴格來說spider是不會“爬”的,站長在網站日志中也可以看到spider對網站的訪問并沒有REFER,都是直接訪問。
 
以往一般會把spider抓取網頁的過程形象地描述為搜索引擎放出的spider,然后這個spider就沿產豐鏈接不斷地抓取網頁,這只是一種形象的比喻而已。比如以前描述類似萬年歷的“蜘蛛陷阱”時,會有這樣的描述“蜘蛛進入到蜘蛛陷阱后會一層一層地無限抓取下去、蜘蛛進去就出不來了、把蜘蛛永遠留在站內了”,這類描述給大家傳達的意思都是spider沿著鏈接從一個網頁到另一個網頁的爬行過程。其實按照實際的spider設計,“蜘蛛陷阱”并不是把spider留在了站內“出不去了”,而是如果不加控制的話,spider會在“蜘蛛陷阱”的網頁集合中收集到無數無意義的URL并放放抓取隊列中,這些URL對應的網頁并沒有實際有意義的內容,從而會造成spider抓取資源的浪費。所謂的“把蜘蛛強制留在站內”對應實際的spider抓取機制,應該是如果spider不加限制地收集URL,就需要無限制地抓取“蜘蛛陷阱”內的URL,然而“蜘蛛陷阱”內的URL可能是無限的,并不是“一個蜘蛛掉陷阱里出不來了”。
也就是說,spider對網頁的抓取是單次訪問抓取,每訪問一個頁面都會把頁面上的信息抓取回來,而不是把一個“小蜘蛛”派到網站上,然后沿著網站鏈接爬行抓取大量的頁面之后再返回給服務器。

spider再次抓取更新策略

Spider把網頁抓取到本地,該網頁被分析索引并參與了排名,并不意味著Spider針對該網

頁的工作已經結束了。現在互聯網網頁內容多是動態變化的,甚至有時網頁會被管理者刪除。

搜索引擎所抓取到的本地頁面,可以看做是對已經抓取并索引過的網頁做了一個鏡像,也就是說理論上搜索引擎應該保證,本地“鏡像”頁面和對應互聯網上的網頁內容實時一致。但是由于搜索引擎的Spider資源有限,現階段做不到也沒有必要做到實時監測全部已索引網頁的所有變化。搜索引擎只需要為Spider設置一個再次抓取和更新頁面的策略,以保證當部分頁面呈現到用戶面前時,搜索引擎的本地索引和該網頁當時的內容并沒有太大的差異就可以了,這部分頁面應該包含大部分網民所需要檢索的內容,并且也可以滿足絕大多數搜索用戶的搜索請求。

如上所述,在有限資源的情況下,搜索引擎首先要保證部分網頁索引的更新,這部分網頁擁有大部分用戶所需要的內容;也要保證所有索引頁面都有一個更新機制,在該網頁需要相應的新的內容索引時,Spider要進行再次抓取并更新該網頁索引。站在Spider的角度,一般會根據以下四個方面來確定對已索引網頁的再次抓取頻率:用戶體驗、歷史更新頻率、網頁類型和網頁權重。

1.用戶體驗

整個互聯網的網頁數量是巨大的,已被百度抓取并索引的中文網頁應該也是千億級別的了,但是用戶所需要的信息只有一小部分。當用戶在搜索引擎提交查詢后,不論返回結果有多少,大部分用戶都會在前三頁找到自己所需要的信息,很少有用戶會瀏覽第四頁或者更靠后的搜索結果。本著優先更新大部分用戶所需要內容的原則,所有用戶提交查詢結果的前幾頁,都是值得保證索引及時更新的。所以一般搜索引擎會搜集所有用戶的搜索請求,然后統計所有搜索結果中用戶可能看到的網頁,繼而進行優先再次抓取和更新。理論上,這些網頁被搜索到的次數越多,再次被抓取的頻率就會越高。

2.歷史更新頻率

搜索引擎會嘗試發現某一個網頁中內容的更新頻率,因為Spider的再次抓取就是為了發現己經被索引網頁是否有變化,如果某個網頁持續沒有變化,可能搜索引擎就會降低對其抓取的頻率,甚至不再對其進行再次抓取。這個策略的實施是建立在搜索引擎已經發現網頁的更新頻率的基礎上的,所以理論上當Spider發現一個新URL抓取并索引后,會很快進行二次抓取。如果沒有發現內容變動,就會降低抓取頻率,這樣慢慢地發現網頁的更新頻率,以調整到最佳的抓取頻率。同時Spider注重的變化應該是網頁的主體內容部分,一般會忽略主體內容周圍的廣告模塊、導航模塊及推薦鏈接模塊的更新變動。

3.網頁類型

不同的網頁類型有不同的更新頻率。在同一個站點內網站首頁、目錄頁、專題頁和文章頁的更新頻率肯定是不同的。所以對于同一站點內的網頁,Spider對不同類型的網頁抓取頻率是不同的。首頁和目錄頁是Spider經常光顧的頁面;根據專題頁面的時效性或者其他特征,Spider可能會在某一時間段內進行頻繁抓取,時效性過期后就會降低對其的抓取頻率;對于文章頁,Spider很有可能第一次來過之后就不再來了。雖然整個互聯網中網頁很多,但是網頁類型并不多,每個類型的網頁都會有自己的布局和更新規律,搜索引擎有足夠的能力發現網頁的類型并設置合理的再次抓取頻率。網頁類型歸類和網頁歷史更新頻率是被綜合使用最多的,一般在同一站點內同類網頁會有相同的更新頻率,這也會方便Spider對網頁更新頻率的判斷。

4.網頁權重

除了以上再次抓取策略外,網頁權重也是決定抓取頻率的重要因素。用戶體驗策略在一定程度上也反映了網頁權重的影響。在網頁類型相同、歷史更新頻率也差不多的情況下,肯定是權重越高的頁面被抓取的頻率越高。比如百度首頁、好123首頁、chinaz站長工具首頁和普通企業站首頁都可以簡單歸為網站首頁,并且前三個“首頁”長期都不會有什么更新,普通企業站首頁可能偶爾還會有更新,但是前三個“首頁”的百度快照一般都是最新的,而普通企業站的首頁快照可能是一周前甚至一個月前的。這就反映出了網頁權重在抓取頻率中的作用。

在搜索引擎Spider的實際作業中,不會單獨使用某一種再次抓取策略,而是會綜合參考網頁的用戶體驗、更新頻率、網頁類型和網頁權重。并且對于不同類型的頁面,著重參考的更新內容主體也是不同的。比如,列表頁只有一篇新的文章進入可能就算更新了;文章頁主體內容沒有變,主體內容周圍的所有推薦鏈接、廣告、內容都變了,可能也不會算是有更新。

在SEO工作中為了提高某一網站的抓取頻率,一般會重點為該頁面的導入鏈接提高權重,努力加大該頁面的更新頻率。其實在用戶體驗和網頁類型方面也是有工作可做的,用標題和描述吸引點擊不僅可以提升排名,也能夠間接增加頁面被Spider抓取的頻率;同時對于不同定位的關鍵詞可以使用不同的網頁類型(列表頁、專題頁、內容頁等),這在設計頁面內容和網站架構時就應該仔細地考慮,并且網頁類型這部分有很多工作值得做。比如,有不少網站把整站都做成了列表頁,全站沒有普通意義上的內容頁,內容頁主體內容下方或周圍也有大量和主題相關的文本內容,一般是類列表形式。不過這種手法有效時間不長,或者損害用戶體驗后會降低被抓取的頻率。不論怎樣,優秀的網站架構設計應該合理地利用Spider抓取策略的各種特性。

以上討論的是Spider正常的抓取策略。有抓取并不代表一定有更新,當頁面內容的變化值得搜索引擎更新索引時才會更新,比如,上面提到的文章頁主體內容不變但是推薦鏈接全變了,一般搜索引擎也不會浪費資源做無意義的更新。當Spider發現己經索引的頁面突然被刪除,也就是服務器突然返回404狀態碼時,也會在短時間內增加對該頁面的抓取頻率。有的SEO人員就利用這一點增加Spider對自己網站的抓取,并做一些其他的“手腳”,不過這是一個走鋼絲的小聰明行為,不見得長期有效,不值得冒險使用。

另外,有不少門戶網站習慣對即時新聞先發布一個標題,然后再讓編輯補充內容,甚至還會修改標題。但是這種網頁一般都是文章頁,不論從用戶體驗、更新頻率、網頁類型和網站權重哪方面來看都不會得到比較高的抓取頻率,也就造成這些網站不斷在報怨百度不更新如此操作的新聞網頁。百度搜索官方已經表示希望以后通過百度站長平臺來解決一下這個問題,但是作為SEO人員不能只是指望搜索引擎官方做出什么樣的動作。仔細研究Spider的抓取和更新策略,雖然或許不能將問題解決得那么完美,但是一般都會找到比較適合自己的方法。當然最終還是期望百度官方盡快推出相應的機制或工具來解決這個問題。

百度“阿拉丁”解決暗網抓取

前面已經介紹過暗網,這些網頁和“非暗網”網頁是脫鉤的,也就是說Spider通過普通的抓取機制永遠都不可能抓取到這些頁面。用戶瀏覽這些暗網頁面一般都是通過提交條件查詢或者文本框主動搜索,當然還有很多其他情況產生的暗網網頁,但是普通搜索引擎的Spider考慮到很多因素是不會直接這樣來操作的。由于暗網頁面的數量巨大,價值也遠高于非暗網頁面,所以大型搜索引擎都把對暗網的抓取當成了重要研究課題,各自也有著各自的抓取策略。這里來介紹一下百度的“阿拉丁計劃”。

百度的“阿拉丁計劃”誕生的初衷就是挖掘出更多存在于暗網之中有價值的信息,讓更多人從中受益。通過加入阿拉丁平臺,可以指定關鍵詞,把自己網站的內容更精準地呈獻給目標用戶;可以指定展現樣式,使用更豐富、更適合資源本身的樣式,而不再局限于文字;指定更新頻率,也就是直接告訴百度自己資源的更新頻率,以保證百度搜索結果數據和實際數據的實時同步。

由于是站長自己提交資源,所以百度可以很容易地解決一部分暗網抓取問題。這個平臺對于有著獨特資源的網站來說絕對是個福利,不僅使得更多使用百度搜索的網民受益,自己的網站也獲得了更多的流量,重要的是非商業內容網站加入阿拉丁平臺完全是免費的。不過對于大部分無獨特資源的中小站長來說,這個平臺會減少自己網站的展示機會。在一定角度上來說也是在鼓勵站長發掘自己獨有的內容和資源。當然如果網站資源比較不錯,也可以通過付費的方式加入到百度阿拉丁平臺,不過付費阿拉丁對資源應該有特別的要求。現在阿拉丁中的商業內容基本上都是付費的,比如房產、汽車等。

即使不能進入阿拉丁,站長自己也可以輔助百度抓取自己站內處于“暗網”中的頁面。比如商城和房產類網站,把希望百度收錄的交叉查詢的鏈接全部呈現出來(如圖2-5所示),或者把自己希望百度收錄的頁面制作成HTML和XML地圖以供百度Spider抓取和收錄,并且百度站長平臺開通了sitemap提交功能,有比較優質資源的站長可以通過此工具提交自己網站“暗網”中的頁面。百度在對暗網抓取方面比較依靠站長自己的主動配合,而沒有暴力查詢網站的數據庫。

安居客房源交叉查詢模塊

分布式Spider和“降權蜘蛛”

由于Spider所要抓取的網頁太多,如果只有單一的一個Spider進行抓取作業,那么將需要非常巨大的計算能力,同時也會消耗更多的抓取時間。這里就引入了分布式計算的概念,把龐大的抓取作業任務分割成很多較小的部分,使用大量合理計算能力的服務器來承載這個任務,以完成對全互聯網網頁的快速抓取。現在大型搜索引擎都會使用分布式計算,同樣Spider也會使用分布式計算,可以稱這種Spider為分布式Spider,它遵循了分布式計算的主要規則,根據這些規則也可以解釋現在站長和SEO人員關心的“降權蜘蛛”問題。

分布式計算有很多種計算方式,這里簡單介紹Spider應有的分布式抓取策略。涉及分布式計算,也就涉及任務分發機制。整個分布式Spider系統需要保證所有Spider之間不會有重復抓取的情況發生,也就是要為各個Spider分配好抓取范圍。當一個Spider發現一個新的URL時,會判斷該URL是否在自己的抓取范圍之內,如果在自己的抓取范圍之內,就會把該URL放到自己待抓取URL隊列中;如果不在自己的抓取范圍之內,就會把該URL提交給上級服務器,由上級服務器分發給相應的Spider,并加入到該Spider的待抓取URL列表中。

要確保所有Spider的作業不重復,就要求每個Spider都有自己的抓取范圍,也就是說每個Spider都會只抓取指定類型的網頁。這里就要看搜索引擎是如何對網頁進行分類的了,常規網頁的分類方法有三種,第一種是按照優秀站點、普通站點、垃圾站點、降權站點和屏蔽(被K)站點等站點質量等級分類;第二種是按照網站首頁、網站目錄頁、網站內容頁、網站專題頁、視頻、圖片、新聞、行業資料、其他類型的網絡文件(PDF, Word, Excel等)等網頁類型分類;第三種是按照站點或網頁內容所在行業分類。在真正的Spider系統設計中,為了減少搜索引擎和被抓取站點服務器之間的握手次數(影響抓取效率的重要因素),站點級別相關的分類應該是被優先使用的。

Spider會嚴格按照自己的作業任務進行作業,由以上分類可以看出,對于大部分中小網站一般都會有一個固定的Spider進行抓取,所以很多站長和SEO人員在分析網站日志時所發現的百度Spider經常都是同一IP段的,但是不同網站之間發現的Spider的IP段并不同。理論上,如果參與研究的站點比較多,類型比較豐富,就可以比較容易地分辨出百度Spider的任務分發模式,這樣通過分析日志中百度來訪Spider的IP就可以判斷出自己的站點在百度搜索眼中是什么樣的。

針對第一種分類方式,就可能出現某一IP段的Spider只抓取權重高的網站,某一IP段的Spider只抓取已被搜索引擎降權或者屏蔽的網站。如果真的是采用這種任務分發方式,那么網絡上所傳的“降權蜘蛛”就可能存在。不過并不是因為這個Spider的到來使得網站降權或者屏蔽,而是因為該網站己經被百度降權或者屏蔽,百度服務器才會把對該站點的抓取任務分發給這個Spider。如果百度使用這種分布式的Spider,那么網絡上對百度Spider各IP段特性的總結也是比較有意義的,不過不可全信,因為百度不可能只使用一種任務分發模式。這也可以成為站長和SEO人員的研究方向,即使可能最終一無所獲。因為搜索引擎對網站和網頁的分類有太多緯度了,新抓取和再次抓取所使用的緯度就可能不同,很可能各個緯度都是綜合使用的。

如圖2-6所示為某網友對百度Spider所使用的IP的分析,有興趣的朋友可以百度搜索一下“百度蜘蛛IP段詳解”,有不少類似的總結,看看就好,不可以絕對當真。

網絡對百度spider的分析

Spider和普通用戶的區別

所有的全文搜索引擎都表示自己的Spider對網站的抓取行為和普通用戶的訪問行為沒有太大區別。站在普通用戶的角度這句話的確沒有問題,但是站在站長和SEO的角度這句話就不太對了。網頁上有很多東西普通用戶看不到也分辨不清,但是Spider可以;網頁上也有很多東西普通用戶可以看到并分辨清楚,但是Spider不可以。可以說Spider是一個既聰明又弱智的普通用戶,Spider有著普通用戶訪問行為的大部分特性,但是也有不少差異。

Spider可以分辨出網頁中是否有隱藏內容,是否被掛了黑鏈等,但是不能完全了解網頁中圖片的內容,更不能讀取JavaScript, Iframe,勾ax和Flash中的內容,普通用戶卻是恰恰相反;

Spider沒有Referer,對網站的抓取全部都是直接訪問,而普通用戶中除了直接訪問的用戶外一般都是有Referer的;Spider對網站的訪問沒有Cookie,但是普通用戶是有的;

Spider不會主動注冊登入網站,但是普通用戶是可以的;原則上Spider不會抓取和分析網站robots中已經屏蔽的內容,但是普通用戶是可以正常訪問的;

Spider對于有多個動態參數網站的抓取,可能會陷入死循環,但是普通用戶是不會的;

Spider對于列表中前幾頁的新內容抓取可能不好,但是感興趣的普通用戶會依次瀏覽;

Spider暫時還不能真正判斷文章是不是原創,但是普通用戶可以通過多種方式來確定文章是原創還是采集轉載等。

Spider畢竟是人為技術驅動的程序,與普通用戶還是有著非常大的區別的,因此給了站長和SEO人員很大的操作空間。站長和SEO人員在充分了解到 Spider和普通用戶的區別后,可以更方便地優化網站,使得網站內容被充分抓取,網站整體在搜索引擎中有個良好的表現;同時也可以利用兩者的區別,使得在不影響搜索引擎抓取和排名的情況下,給普通用戶更友好的用戶體驗,比如,判斷用戶Referer給用戶推薦內容等;當然,不排除有些站長和SEO人員會利用這些區別,采用很多極端的技術作弊手法,在普通用戶感覺不到的地方,誤導Spider對網站內容的判斷,而惡意搶奪很多本不應該得到的搜索流量,這是不可取的。無論如何,都有必要深入了解兩者的差異。

 

本文出自微笑SEO優化教程網,未經允許不得轉載:搜索引擎spider爬蟲(蜘蛛)原理 http://www.za9bao.com/seoyhjc/233.html
? 撸片av在线观看