搜尋引擎蜘蛛的基本原理及工作流程

2020-12-16 西安網站建設古月建站

搜尋引擎用來爬行和訪問頁面的程序被稱為蜘蛛(spider),也叫機器人(bot)。搜尋引擎蜘蛛訪問網站頁面時類似於普通用戶使用瀏覽器,蜘蛛程序發出頁面訪問請求後,伺服器返回HTML代碼,蜘蛛程序把收到的代碼存入原始頁面資料庫,搜尋引擎為了提高爬行和抓取的速度,都使用多個蜘蛛分布爬行。

蜘蛛訪問網站時,首先會訪問網站根目錄下的robots.txt文件,如果robots.txt文件禁止搜尋引擎抓取某些網頁或者內容,再或者網站,蜘蛛將遵循協議,不對其進行抓取(具體可查看古月建站博客《robots協議文件的寫法及語法屬性解釋》的相關介紹)。

蜘蛛也是有自己的代理名稱的,在站長日誌中可以看出蜘蛛爬行的痕跡,這也就是為什麼這麼多站長解答問題的時候,都會說先查看網站日誌(作為一個出色的SEO你必須具備不藉助任何軟體查看網站日誌的能力,並且要非常熟悉其代碼的意思)。

一、搜尋引擎蜘蛛的基本原理

搜尋引擎蜘蛛即Spider,是一個很形象的名字,把網際網路比喻成一個蜘蛛網,那麼Spider就是在網上爬來爬去的蜘蛛。

網絡蜘蛛是通過網頁的連結地址來尋找網頁,從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它連結地址,然後通過這些連結地址尋找下一個網頁,這樣一直循環下去,直到把這個網站所有的網頁都抓取完為止。

如果把整個網際網路當成一個網站,那麼網絡蜘蛛就可以用這個原理把網際網路上所有的網頁都抓取下來。

對於搜尋引擎來說,要抓取網際網路上所有的網頁幾乎是不可能的,從目前公布的數據來看,容量最大的搜尋引擎也不過是抓取了整個網頁數量的百分之四十左右。

這其中的原因一方面是抓取技術的瓶頸,100億網頁的容量是100×2000G字節,即使能夠存儲,下載也存在問題(按照一臺機器每秒下載20K計算,需要340臺機器不停的下載一年時間,才能把所有網頁下載完畢),同時,由於數據量太大,在提供搜索時也會有效率方面的影響。

因此,許多搜尋引擎的網絡蜘蛛只是抓取那些重要的網頁(每個搜尋引擎的蜘蛛抓取的原則也都不同,具體可對照一下古月建站博客的《解讀IIS日誌中搜尋引擎蜘蛛名稱代碼及爬尋返回代碼》相關介紹來查詢一下你的網站日誌),而在抓取的時候評價重要性主要的依據是某個網頁的連結深度。

由於不可能抓取所有的網頁,有些網絡蜘蛛對一些不太重要的網站,設置了訪問的層數,例如,下圖中所示:

A為起始網頁,屬於0層,B、C、D、E、F屬於第1 層,G、H屬於第2層,I屬於第3層,如果網絡蜘蛛設置的訪問層數為2的話,網頁I是不會被訪問到的,這也讓有些網站上一部分網頁能夠在搜尋引擎上搜索到,另外一部分不能被搜索到。

對於網站設計者來說,扁平化的網站結構設計有助於搜尋引擎抓取其更多的網頁。

網絡蜘蛛在訪問網站網頁的時候,經常會遇到加密數據和網頁權限的問題,有些網頁是需要會員權限才能訪問。

當然,網站的所有者可以通過協議讓網絡蜘蛛不去抓取,但對於一些出售報告的網站,他們希望搜尋引擎能搜索到他們的報告,但又不能完全免費的讓搜索者查看,這樣就需要給網絡蜘蛛提供相應的用戶名和密碼。

網絡蜘蛛可以通過所給的權限對這些網頁進行網頁抓取,從而提供搜索,而當搜索者點擊查看該網頁的時候,同樣需要搜索者提供相應的權限驗證。

二、追蹤連結

由於搜尋引擎蜘蛛為了能夠抓取網上儘量多的頁面,它會追蹤網頁上的連結,從一個頁面爬到下一個頁面,就好像是蜘蛛在蜘蛛網上爬行那樣,這就是搜尋引擎蜘蛛這個名稱的來因。

整個網際網路網站都是相互連結組成的,也就是說,搜尋引擎蜘蛛從任何一個頁面出發最終都會爬完所有頁面。

當然網站和頁面連結結構太過於複雜,所以蜘蛛只有採用一定的方法才能夠爬完所有頁面,據古月建站了解最簡單的爬行策略有3種:

1、最佳優先

最佳優先搜索策略按照一定的網頁分析算法,預測候選URL與目標網頁的相似度,或與主題的相關性,並選取評價最好的一個或幾個URL進行抓取,它只訪問經過網頁分析算法預測為「有用」的網頁。

存在的一個問題是,在爬蟲抓取路徑上的很多相關網頁可能被忽略,因為最佳優先策略是一種局部最優搜索算法,因此需要將最佳優先結合具體的應用進行改進,以跳出局部最優點,據古月建站博客的研究發現,這樣的閉環調整可以將無關網頁數量降低30%~90%。

2、深度優先

深度優先是指蜘蛛沿著發現的連結一直向前爬行,直到前面再也沒有其他連結,然後返回到第一個頁面,沿著另一個連結再一直往前爬行。

3、廣度優先

廣度優先是指蜘蛛在一個頁面發現多個連結時,不是順著一個連結一直向前,而是把頁面上所有連結都爬一遍,然後再進入第二層頁面沿著第二層上發現的連結爬向第三層頁面。

從理論上說,無論是深度優先還是廣度優先,只要給蜘蛛足夠的時間,都能爬完整個網際網路。

在實際工作中,蜘蛛的帶寬資源、時間都不是無限的,也不能爬完所有頁面,實際上最大的搜尋引擎也只是爬行和收錄了網際網路的一小部分,當然也並不是搜尋引擎蜘蛛爬取的越多越好,這點我曾在古月建站博客的《抓取網站的搜尋引擎蜘蛛是不是越多越好》一文中跟大家做過詳細的介紹。

因此,為了儘量多的抓取用戶信息,深度優先和廣度優先通常是混合使用的,這樣既可以照顧到儘量多的網站,也能照顧到一部分網站的內頁。

三、搜尋引擎蜘蛛工作中的信息收集

信息收集模塊包括「蜘蛛控制」和「網絡蜘蛛」兩部分,「蜘蛛」這個稱呼形象的描述出了信息收集模塊在網絡數據形成的「Web」上進行信息獲取的功能。

總體而言,網絡蜘蛛從種子網頁出發,通過反覆下載網頁並從文檔中尋找未曾見過的URL,達到訪問其他網頁得以遍歷Web的目的。

而其工作策略一般則可以分為累積式抓取(cumulative crawling)和增量式抓取(incremental crawling)兩種。

1、累積式抓取

累積式抓取是指從某一個時間點開始,通過遍歷的方式抓取系統所能允許存儲和處理的所有網頁。在理想的軟硬體環境下,經過足夠的運行時間,累積式抓取的策略可以保證抓取到相當規模的網頁集合。

但在古月建站看來由於Web數據的動態特性,集合中網頁的被抓取時間點是不同的,頁面被更新的情況也不同,因此累積式抓取到的網頁集合事實上並無法與真實環境中的網絡數據保持一致。

2、增量式抓取

與累積式抓取不同,增量式抓取是指在具有一定量規模的網絡頁面集合的基礎上,採用更新數據的方式選取已有集合中的過時網頁進行抓取,以保證所抓取到的數據與真實網絡數據足夠接近。

進行增量式抓取的前提是,系統已經抓取了足夠數量的網絡頁面,並具有這些頁面被抓取的時間信息。面向實際應用環境的網絡蜘蛛設計中,通常既包括累積式抓取,也包括增量式抓取的策略。

累積式抓取一般用於數據集合的整體建立或大規模更新階段,而增量式抓取則主要針對數據集合的日常維護與即時更新。

在確定了抓取策略之後,如何從充分利用網絡帶寬,合理確定網頁數據更新的時間點就成了網絡蜘蛛運行策略中的核心問題。

總體而言,在合理利用軟硬體資源進行針對網絡數據的即時抓取方面,已經形成了相對比較成熟的技術和實用性解決方案,古月建站覺得在這方面目前所需解決的主要問題是如何更好的處理動態網絡數據問題(如數量越來越龐大的Web2.0數據等),以及更好的根據網頁質量修正抓取策略的問題。

四、資料庫

為了避免重複爬行和抓取網址,搜尋引擎會建立一個資料庫,記錄已被發現還沒有抓取的頁面和已經被抓取的頁面,那麼資料庫中的URL是怎麼來的呢?

1、人工錄入種子網站

這個簡單的來說,就是我們建好一個新站後,向百度、Google或360提交的網址收錄。

2、蜘蛛抓取頁面

如果搜尋引擎蜘蛛在爬取的過程中,發現了新連接URL,資料庫中沒有,就會存入待訪問資料庫(網站觀察期)。

蜘蛛按重要性從待訪問資料庫中提取URL,訪問並抓取頁面,然後把這個URL從待訪問地址庫中刪除,放進已訪問地址庫中,所以古月建站建議各位站長在網站觀察期的時候儘量有規律的更新網站是必要的。

3、站長提交網站

一般來說,提交網站只是把網站存入待訪問資料庫,如果網站持久不更新蜘蛛也不會光顧,搜尋引擎收錄的頁面都是蜘蛛自己追蹤連結得到的。

所以你提交給搜尋引擎其實用處不大,還是要根據後期你網站更新程度來考慮,搜尋引擎更喜歡自己沿著連結發現新頁面,當然如果說你的SEO技術夠老練,並且有這能力,可以試一下,說不定會有意想不到的效果,不過,對於一般在站長來說,古月建站還是建議讓蜘蛛自然的爬行和抓取到新站頁面。

五、吸引蜘蛛

雖然理論上說蜘蛛可以爬行和抓取所有頁面,但實際上是不可能完成的,那麼SEO人員想要收錄更多的頁面就只有想辦法引誘蜘蛛抓取。

既然抓不了所有頁面,那麼我們就要讓它抓取重要頁面,因為重要頁面在索引中起到重要決定,直接影響排名的因素,哪麼那些頁面算是比較重要的呢?對此,古月建站也特意整理了以下幾個我認為比較重要頁面,具體有這麼幾個特點:

1、網站和頁面權重

質量高、年齡老的網站被給予很高的權重,這種網站上的頁面蜘蛛爬行的深度比較高,所以會有更多的內頁被收錄。

2、頁面更新度

蜘蛛每次爬行都會把頁面數據儲存起來,如果第二次爬行時發現此頁面與第一次收錄的內容完全一樣,說明頁面沒有更新,蜘蛛也沒必要經常再來爬行和抓取。

如果頁面內容經常更新,蜘蛛就會頻繁的爬行和抓取,那麼,頁面上的新連結自然的會被蜘蛛更快的追蹤和抓取,這也就是為什麼需要每天更新文章(具體可查看古月建站博客的《百度收錄網站文章的現狀及原則依據》相關介紹)。

3、導入連結

無論是外部連結還是同一個網站的內部連結,要被蜘蛛抓取,就必須有導入連結進入頁面,否則蜘蛛根本不知道頁面的存在。此時的URL連結起著非常重要的作用,內鏈的重要性發揮出來了。

另外,古月建站覺得高質量的導入連結也經常使頁面上的導出連結被爬行的深度增加。

這也就是為什麼大多數站長或SEO都要高質量友情連結,因為蜘蛛從對方網站爬行到你網站之次數多,深度也高。

4、與首頁點擊距離

一般來說網站首頁權重最高,大部分外部連結都指向首頁,蜘蛛訪問最頻繁的也是首頁,離首頁點擊距離越近,頁面權重越高,被蜘蛛爬行的機會也就越大。

這也就是為什麼要求網站框架建設點擊三次就能查看完整個網站的意思。

六、蜘蛛爬行時的複製內容檢測

一般都知道在搜尋引擎索引環節中中會進行去重處理,其實在蜘蛛爬行的時候已經在進行檢測,當蜘蛛爬行和抓取文件時會進行一定程度的複製內容檢測,遇到權重低的網站上大量轉載或抄襲內容時,很可能不再繼續爬行。

所以對於新站來說切莫採集和抄襲,這也就是為什麼很多站長查看日誌的時候發現了蜘蛛,但是頁面從來沒有被抓取的原因,因為爬行發現是重複內容那麼它講放棄抓取也就只停留在爬行過的階段。

古月建站博客點評:

雖說蜘蛛的作用就是讓搜尋引擎對有效連結進行搜尋,但並不意味著蜘蛛越多越好,有時過多的蜘蛛來網站抓取會造成一定的負面效果,會影響伺服器的運行,導致網頁打開緩慢。

相關焦點

  • 什麼是搜尋引擎蜘蛛?工作原理是什麼?
    通過昨天的分享,我們知道了如何發布文章更容易被搜尋引擎收錄,我們同時提到了「蜘蛛」這個程序,今天帶大家認識一下搜尋引擎蜘蛛。1、搜尋引擎蜘蛛介紹網絡爬蟲,是一種負責收集網絡信息的程序,每個搜尋引擎都配有蜘蛛程序。
  • 三種基本的搜尋引擎蜘蛛類型
    看了幾篇有關於搜尋引擎蜘蛛分類的文章,基本都是一樣的內容,內容來源也都基本是痞子瑞的那本書,內容改動的部分不超過5%,真的是替搜尋引擎的蜘蛛感到不值得啊,辛辛苦苦抓來的竟然都是這種「垃圾頁面」。本文同樣介紹三種基本的搜尋引擎蜘蛛類型,也就是批量型蜘蛛、增量型蜘蛛以及垂直型蜘蛛,至於是不是垃圾內容,您看完再進行評判。為了大家能夠更好的理解,我們把搜尋引擎比作一個擁有無限果樹的果園老闆,蜘蛛比作是摘果子的工人。蜘蛛抓取頁面的過程就是工人摘果子的過程。我們帶著這個比喻來理解搜尋引擎蜘蛛的三種類型。
  • 通過了解搜尋引擎基本工作原理掌握SEO優化技巧
    而隨著SEO工作的不斷深入,你也就會慢慢的發現充分利用好網絡給予你的一針一線的重要性。了解搜尋引擎的工作原理,其意義自然不在話下。搜尋引擎爬行和抓取原理通過蜘蛛程序,各搜尋引擎在訪問網站時都會先去抓取網站根目錄下的robots.txt文件,從而獲取網站中被禁止爬取網址的信息。對於被禁止抓取部分的網址,不會被搜尋引擎收錄。
  • 搜尋引擎工作原理——排名
    圖片來源網絡經過搜尋引擎蜘蛛抓取頁面,索引程序計算得到倒排索引後,搜尋引擎就準備好可以隨時處理用戶搜索了。這只是為了簡化的說明原理而已,實際上還是可以看到只包含一部分關鍵詞的搜索結果。另外用戶輸入的查詢詞中還可能包含一些高級搜索指令(以後文章裡會提及),如加號。減號等。搜尋引擎都需要做出相應識別和相應處理。(4)、拼寫錯誤矯正。用戶如果輸入了明顯錯誤的字或英文單詞拼錯,搜尋引擎會提示用戶正確的用字和拼法。
  • 搜尋引擎(百度)的工作原理:第一爬行和抓取
    搜尋引擎的工作過程一般分為三個階段。爬行和抓取:通過搜尋引擎蜘蛛跟蹤連結和訪問頁面,抓取內容,存入資料庫。搜尋引擎蜘蛛訪問網站是和普通用戶基本是一致的,蜘蛛程序訪問頁面以後,伺服器會返回HTML代碼,蜘蛛程序會把代碼,出入原始頁面資料庫,搜尋引擎會同時使用很多蜘蛛程序提高抓取數據的效率。情報員多了,自然信息收集的就會更多,工作效率也就更高了。
  • 網站SEO優化,爬蟲如何抓取數據,搜尋引擎的工作原理
    什麼是搜尋引擎搜尋引擎是一個幫助用戶搜索他們需要內容的電腦程式。換一種說法,搜尋引擎把計算機中存儲的信息與用戶的信息需求(information need)相匹配,並把匹配的結果展示出來。搞懂了搜尋引擎的工作原理之後,可以解決優化當中很多問題,如網站網站蜘蛛有沒有來網站,網站為什麼沒有收錄,網站為什麼有收錄,沒有排名。搜尋引擎為想要抓取網際網路站的頁面,不可能手動去完成,那麼百度、google他們的工程師就編寫了一個程序,他們給這個自動抓取的程序起了一個名字,爬蟲(也可以叫做「蜘蛛」)。
  • 搜尋引擎工作原理:內容處理的步驟
    搜尋引擎工作原理中內容處理部分在相關seo書籍和網絡文章中已經分析得很透徹,其實這部分內容中有不少東西值得研究思考,並能運用到日常的seo工作中。不論是白帽還是黑帽seo,在這部分都有很大技術和邏輯上的操作空間。
  • 2018年最新搜尋引擎蜘蛛大全
    今天冬鏡SEO講的是2018年最新各大搜尋引擎蜘蛛名稱整理分享各大seo搜尋引擎的蜘蛛會不斷地訪問抓取我們站點的內容,也會消耗一定的站點流量有時候就需要屏蔽某些蜘蛛訪問我們的站點,文章尾部會講解決辦法了解各大搜尋引擎蜘蛛爬蟲
  • 關於SEO搜尋引擎蜘蛛的幾個知識點
    關於SEO搜尋引擎蜘蛛的幾個知識點一、搜尋引擎地址庫為了避免重複爬行和抓取網址,搜尋引擎會建立一個地址庫,記錄已經被發現、但是還沒有抓取的頁面,以及已經被抓取的頁面。蜘蛛在頁面上發現連結後並不是馬上就去訪問,而是將URL存入地址庫,然後統一安排抓取。二、地址庫中的URL有幾個來源:1、人工錄入的種子網站。2、蜘蛛抓取頁面後,從html中解析出新的連結URL,與地址庫中的數據進行對比,如果是地址庫中沒有的網址,就存入待訪問地址庫。
  • 搜尋引擎蜘蛛智能到什麼程度?
    關於搜尋引擎蜘蛛的蜘蛛的算法有多強大?今天我們在這裡介紹一下:大家應該有聽過網站降權、K站、不收錄、沒排名等等情況把?首先我們要先知道搜尋引擎蜘蛛是什麼?又稱為網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取全球資訊網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
  • 搜尋引擎蜘蛛如何判斷文章原創度?
    seo優化人員有一個很重要的工作就是每天更新網站文章,文章原創度越高,對搜尋引擎越友好。那麼搜尋引擎是怎麼判斷文章是否是原創?星若傳媒小編總結了幾點:1.百度蜘蛛最先在哪裡看到這個內容一般那些權重高的平臺,搜尋引擎蜘蛛抓取網站比較頻繁,那些從這些平臺複製粘貼的內容,百度蜘蛛是可以辨別出來哪個是原創。
  • 你其實並不了解的搜尋引擎蜘蛛分類
    本章主要介紹一下搜尋引擎蜘蛛都有哪些類型。了解類型之前要先知道什麼是搜尋引擎蜘蛛。百度百科上有相關解釋,天鴻用一個形象的表述重新說一下。以百度為例,大家要為什麼能在百度上搜到各類網站網頁的內容,是因為百度派出去的小弟—百度蜘蛛(baiduspider)跑到各大網站上去抓取網頁,經過層層過濾將百度認為有價值的網頁抓回自己的資料庫並進行相關性的排名,最後當用戶搜索的時候再呈現出來。但是網站極多,質量也參差不齊,對所有網站花費一樣的資源去抓取肯定也是不現實的,於是百度就搞出不同類型的蜘蛛對不同網站進行不同程度,不同廣度的抓取。
  • SEO搜尋引擎優化代運營,教育類網站如何優化?
    網站搜索排名是指網站內關鍵詞在百度、360、搜狗、Google、uc神馬等搜尋引擎上的搜索排名,要想做好網站搜索排名,必須先了解基本的搜索工作要領。 搜尋引擎優化型的網站如何優化? 第一步:關鍵詞選擇 關鍵詞選擇錯了,後面做的工作等於零,所以進行網站優化前,先要鎖定自己網站的關鍵詞。
  • 按照搜尋引擎蜘蛛抓取規則定期更新文章,穩定首頁排名不在話下
    為了保持網站持續穩定的更新習慣,發現這一規律,實現百度蜘蛛的定期抓取,需要定期發布新內容。作為百度秒數收集的一個關鍵因素,定期定量發布對SEO友情非常有利,所以每天保持相同數量的新發布。今天放棄一篇文章,明天放棄十篇文章。
  • 解析變壓器基本工作原理
    變壓器利用電磁感應原理製成的電器設備。工作原理簡化分析,假設:1.一次繞組和二次繞組完全耦合,及鏈過一次和二次繞組的磁通為同一磁通2.貼心磁路的磁阻為零,鐵芯損耗也等於零3.一次和二次繞組的電阻都是等於零
  • 百度搜尋引擎工作原理
    關於百度以及其它搜尋引擎的工作原理,其實大家已經討論過很多,但隨著科技的進步、網際網路業的發展,各家搜尋引擎都發生著巨大的變化,並且這些變化都是飛快的。我們設計這個章節的目的,除了從官方的角度發出一些聲音、糾正一些之前的誤讀外,還希望通過不斷更新內容,與百度搜尋引擎發展保持同步,給各位站長帶來最新的、與百度高相關的信息。
  • 「數字世界」基本的工作原理
    導讀:重磅系列文章《數字孿生——一半是火焰,一半是海水》第三篇之「數字世界」基本的工作原理。首先回顧並評述了數據孿生概念的起源,其次回顧並評述了各大工業軟體巨頭是如何定義和使用數字孿生的,之後從「數字世界」基本的工作原理角度重新審視了數字孿生,在前述工作的基礎上給出了個人關於數字孿生的觀點,並對想進入該領域的後來者給出了本人的忠告。本系列文章的寫作,得到了e-works數位化企業網總編黃培博士的鼓勵,並給出了寶貴的意見,在此表示衷心的感謝!。
  • 迴轉式機械格柵安裝水位基本工作原理
    迴轉式機械格柵安裝水位基本工作原理 ,「1580304」   宜興益芳環保設備有限公司專業生產迴轉式機械格柵安裝,安全耐用,適用範圍廣,廠家直品,歡迎廣大用戶選購!
  • SEO技巧:如何搞定搜狗搜尋引擎的收錄
    做SEO最先解決的問題,就是收錄,然後才是排名,在搜尋引擎裡,最難解決收錄的,是公認的搜狗搜尋引擎,那有沒有辦法解決搜狗的收錄呢?張智偉SEO博客搜狗收錄截圖先看上圖,是本人博客的的搜狗收錄截圖,解決搜狗搜尋引擎收錄的方法具體操作如下:1、解決網站首頁收錄的問題,這個相對簡單
  • 網站建設-怎樣建設對搜尋引擎友好的站點
    雖然百度蜘蛛的確有一個IP池,真實IP在這個IP池內切換,但是我們無法保證這個IP池整體不會發生變化。所以,我們建議站長勤看日誌,發現惡意蜘蛛後放入黑名單,以保證百度的正常抓取。  同時,我們再次強調,通過IP來分辨百度蜘蛛的屬性是非常可笑的事情,所謂的「沙盒蜘蛛」「降權蜘蛛」等等是從來都不存在的。