網路爬蟲或蜘蛛,是典型由類似 Google 和 Bing 等搜尋引擎所執行的機器人。它們旨在製作網際網路上所有網站的內容索引,好讓搜尋引擎結果能顯示這些網站。
閱讀本文後,您將能夠:
複製文章連結
網路爬蟲、蜘蛛,或搜尋引擎傀儡程式下載網際網路上所有的內容並製作相關索引。此類傀儡程式旨在學習網站 (幾乎) 每個網頁,以便有必要時擷取資訊。稱此應用程式為「網路爬蟲」是因為「爬行」是技術名詞,指的是自動存取網站,以及透過軟體程式取得資料。
這些傀儡程式幾乎往往都是由搜尋引擎操作。透過將搜尋運算法套用至網路爬蟲收集而得的資料,搜尋引擎可按照使用者查詢,提供相關連結,或使用者在 Google 或 Bing (或其他搜尋引擎) 內鍵入搜尋後,建立網頁清單。
網路爬蟲傀儡程式就好像有人走進書籍沒有好好整理的圖書館,接著再閱讀和編列卡片目錄,好讓任何造訪圖書館的人都能快速輕鬆尋找所需資訊。為了要按照主題分類和整理圖書館藏書,整理者將閱讀每本書的標題、摘要,以及部份內容文字,了解它們的主題。
然而,有別於圖書館,網際網路未內含實際的書籍,因此更難以確認是否已妥善製作所有必要資訊的索引,或忽略了大部份的內容。為了尋找網際網路可提供的所有相關資訊,網路爬蟲傀儡程式將開始搜尋特定的已知網頁組合,然後再跟隨該等網頁的超連結,存取其他網頁、接著再跟隨其他網頁的超連結,存取更多網頁,據此不斷進行此作業。
我們不知道搜尋引擎傀儡程式實際上已爬行了多少公開的網際網路。某些資料來源估計只有 40-70% 的網際網路已製作了搜尋索引,也就是數十億的網頁。
搜尋索引如同為網際網路製作圖書館卡片型錄,好讓搜尋引擎知道,一旦有人在網際網路搜尋資訊,該往何處取得答案。此外,也可將資訊與書籍背面的索引進行比較,當中列示書中提到特定主題或短句的位置。
索引主要強調頁面顯示的文字,以及使用者看不到的頁面中繼資料*。大部份搜尋引擎製作頁面索引時,它們會新增頁面所有文字至索引,而 Google 的做法是排除「a」、「an」和「the」的字眼。使用者搜尋這些字時,搜尋引擎將瀏覽這些字詞出現的所有頁面索引,再選擇最相關的頁面。
*在搜尋索引中,中繼資料指的是向搜尋引擎說明網頁內容的資料。有別於使用者看得見的網頁,中繼標題和中繼說明將顯示在搜尋引擎的結果頁。
網際網路不斷改變和擴展。由於我們不可能知道網際網路上到底有多少網頁,網路爬蟲傀儡程式先從種子,或已知 URL 清單開始。它們先爬行 URL 上的網頁,也同步尋找連結至其他 URL 的超連結,以及新增它們至頁面清單,供後續爬行。
由於網際網路上有大量網頁需要製作搜尋索引,這個流程幾乎會一直持續下去。然而,網路爬蟲會遵行特定政策,讓它更能選擇應爬行哪些頁面、順序、頻率,以及重返爬行,以檢查內容更新。
每個頁面的相關重要性:大部份網路爬蟲不會爬行全面公開的網際網路,且未企圖這樣做。它們反而是根據連結至特定網頁的其他網頁數量、該網頁的訪客數量,以及其他意味著頁面內含重要資訊的可能性等其他要素,決定先爬行哪個頁面。
此舉意指:特定網頁經由許多其他網頁引述,以及曾有許多訪客造訪,就很可能內含高品質的權威性資訊,因此,就如同圖書館會多存放許多人會借的書一樣,搜尋引擎要為此等網頁製作搜尋索引,就變得特別重要。
再造訪網頁:網站內容持續更新、移除或移轉至新位置。網站爬蟲將定期再造訪網頁,確定已製作最新版內容的索引。網路爬蟲將定期再造訪網頁,確定已製作最新版內容的索引。
Robots.txt 條件要求:網路爬蟲也根據 robots.txt 通訊協定 (又名網路爬蟲排除通訊協定),決定爬行哪些網頁。爬行網頁前,它們將檢查由該網頁的網頁伺服器所代管的 robots.txt 檔案。robots.txt 是指定任何機器人存取代管網站或應用程式規則的文字檔。這些規則定義機器人可爬行的網頁,以及可跟隨的連結。例如:檢查 Cloudflare.com robots.txt 檔案。
所有這些因素於其專屬運算內都有不同的比重,而每個搜尋引擎也據此在其蜘蛛傀儡程式中建立。儘管最終目標一致,也就是:從網頁下載內容,並製作索引,但不同搜尋引擎的網路爬蟲有著略為不同的行為。
網際網路,或至少是大部份使用者存取的部份,又名全球資訊網 (World Wide Web),也就是大部份網址以「www」作為起頭的原因。把搜尋引擎傀儡程式稱為「蜘蛛」其實是很正常的事,因為程式在網路四處搜尋,就如同蜘蛛在蜘蛛網上爬行一樣。
應由 Web 資產決定,且需視幾個元素而定。網路爬蟲要求伺服器資源,以便製作內容索引。它們提出伺服器需回應的查詢,就如同使用者造訪網站,或其他傀儡程式存取網站一樣。視每頁的內容數量,或網站的頁面數量而定,網站管理員可權衡爬蟲對網站的最佳利益,不允許搜尋索引太常造訪,因為太多索引可能會對伺服器帶來過重負擔、增加頻寬成本,或同時出現這兩個問題。
此外,除非已向使用者提供頁面連結 (而無需將頁面放在付款牆或登入之後),開發人員或公司也許不希望某些頁面可被搜尋。舉例來說:某企業建立專屬的行銷活動登錄頁,但不希望不是活動的目標對象存取頁面。這樣做可確切制訂相關訊息,或確切評量頁面的效能。在此等情況下,企業可在登錄頁新增「不必索引」 (no index) 標記,就不會顯示在搜尋引擎的結果內。它們也可以在網頁或 robots.txt 檔案新增「不允許」 (disallow) 標籤,那麼搜尋引擎蜘蛛就絕對不會爬行到該網頁。
網站持有人可能會基於許多其他理由,不希望網路爬蟲傀儡程式爬到其部份或全部網站。例如:某些網站允許使用者在其站內進行搜尋,也許希望封鎖搜尋結果頁,因為這樣做對大部份使用者都沒有用處。其他自動建立的網頁只會對一位使用者或少數特定使用者有用,因此也應封鎖。
網站剽竊、資料剽竊,或內容剽竊指的是傀儡程式未經網站允許就下載相關內容,往往旨在用相關內容以達成惡意目的。
網站剽竊的目標對象,通常比網路爬行顯著精準。網站剽竊也許只想存取特定頁面或網站,而網站爬蟲則跟隨連結,並持續爬行網頁。
此外,網站剽竊傀儡程式也許會無視對網頁伺服器帶來的壓力,而網路爬蟲,特別是來自主要搜尋引擎的應用程式,將遵循 robots.txt 檔案並限制其查詢,不對網頁伺服器帶來過重的負擔。
SEO 是搜尋引擎最佳化的英文縮寫,指的是為內容做好準備的準則,以便進行搜尋索引,好讓網站的排名能儘量超前於搜尋引擎結果中。
若蜘蛛傀儡程式不爬行特定網站,它就沒有搜尋索引,也就是無法顯示在搜尋結果中。因此,若網站持有人想要取得來自搜尋結果的有機流量,不封鎖網路爬蟲傀儡程式至關重要。
來自主要搜尋引擎的傀儡程式:
還有許多其他網路爬蟲機器人,當中有些沒有任何相關的搜尋引擎。
惡意機器人能造成許多損害,涵蓋糟糕使用者體驗、伺服器故障、資料竊盜等等。然而,封鎖惡意機器人時,重要的是仍允許網路爬蟲之類的善意機器人存取 web 資產。Cloudflare 機器人管理允許善意機器人持續存取網站,同時緩解惡意的機器人流量。產品持續自動更新善意機器人允許清單 (如網路爬蟲),以確保不會封鎖此類機器人。小型組織可以透過 Cloudflare Pro 和 Business 方案中提供的超級機器人抵禦模式,獲得對機器人流量類似級別的可見度和控制。