What is a web crawler? | How web spiders work

A web crawler, or spider, is a type of bot that is typically operated by search engines like Google and Bing. Their purpose is to index the content of websites all across the Internet so that those websites can appear in search engine results.

學習目標

閱讀本文後,您將能夠:

  • 了解何謂網路爬蟲傀儡程式(或蜘蛛)
  • 了解網路爬蟲如何選擇要爬行的網頁
  • 說明網路爬行和網頁抓取的差別
  • 探討特定網頁是否應允許網路爬行

複製文章連結

何謂網路爬蟲傀儡程式?

網路爬蟲、蜘蛛,或搜尋引擎傀儡程式下載網際網路上所有的內容並製作相關索引。此類傀儡程式旨在學習網站 (幾乎) 每個網頁,以便有必要時擷取資訊。稱此應用程式為「網路爬蟲」是因為「爬行」是技術名詞,指的是自動存取網站,以及透過軟體程式取得資料。

這些傀儡程式幾乎往往都是由搜尋引擎操作。透過將搜尋運算法套用至網路爬蟲收集而得的資料,搜尋引擎可按照使用者查詢,提供相關連結,或使用者在 Google 或 Bing (或其他搜尋引擎) 內鍵入搜尋後,建立網頁清單。

網路爬蟲傀儡程式就好像有人走進書籍沒有好好整理的圖書館,接著再閱讀和編列卡片目錄,好讓任何造訪圖書館的人都能快速輕鬆尋找所需資訊。為了要按照主題分類和整理圖書館藏書,整理者將閱讀每本書的標題、摘要,以及部份內容文字,了解它們的主題。

Web crawler bot organizing information

然而,有別於圖書館,網際網路未內含實際的書籍,因此更難以確認是否已妥善製作所有必要資訊的索引,或忽略了大部份的內容。為了尋找網際網路可提供的所有相關資訊,網路爬蟲傀儡程式將開始搜尋特定的已知網頁組合,然後再跟隨該等網頁的超連結,存取其他網頁、接著再跟隨其他網頁的超連結,存取更多網頁,據此不斷進行此作業。

我們不知道搜尋引擎傀儡程式實際上已爬行了多少公開的網際網路。某些資料來源估計只有 40-70% 的網際網路已製作了搜尋索引,也就是數十億的網頁。

何謂搜尋索引?

搜尋索引如同為網際網路製作圖書館卡片型錄,好讓搜尋引擎知道,一旦有人在網際網路搜尋資訊,該往何處取得答案。此外,也可將資訊與書籍背面的索引進行比較,當中列示書中提到特定主題或短句的位置。

索引主要強調頁面顯示的文字,以及使用者看不到的頁面中繼資料*。大部份搜尋引擎製作頁面索引時,它們會新增頁面所有文字至索引,而 Google 的做法是排除「a」、「an」和「the」的字眼。使用者搜尋這些字時,搜尋引擎將瀏覽這些字詞出現的所有頁面索引,再選擇最相關的頁面。

*在搜尋索引中,中繼資料指的是向搜尋引擎說明網頁內容的資料。有別於使用者看得見的網頁,中繼標題和中繼說明將顯示在搜尋引擎的結果頁。

網路爬蟲如何運作?

網際網路不斷改變和擴展。由於我們不可能知道網際網路上到底有多少網頁,網路爬蟲傀儡程式先從種子,或已知 URL 清單開始。它們先爬行 URL 上的網頁,也同步尋找連結至其他 URL 的超連結,以及新增它們至頁面清單,供後續爬行。

由於網際網路上有大量網頁需要製作搜尋索引,這個流程幾乎會一直持續下去。然而,網路爬蟲會遵行特定政策,讓它更能選擇應爬行哪些頁面、順序、頻率,以及重返爬行,以檢查內容更新。

每個頁面的相關重要性:大部份網路爬蟲不會爬行全面公開的網際網路,且未企圖這樣做。它們反而是根據連結至特定網頁的其他網頁數量、該網頁的訪客數量,以及其他意味著頁面內含重要資訊的可能性等其他要素,決定先爬行哪個頁面。

此舉意指:特定網頁經由許多其他網頁引述,以及曾有許多訪客造訪,就很可能內含高品質的權威性資訊,因此,就如同圖書館會多存放許多人會借的書一樣,搜尋引擎要為此等網頁製作搜尋索引,就變得特別重要。

再造訪網頁:網站內容持續更新、移除或移轉至新位置。網站爬蟲將定期再造訪網頁,確定已製作最新版內容的索引。網路爬蟲將定期再造訪網頁,確定已製作最新版內容的索引。

Robots.txt requirements: Web crawlers also decide which pages to crawl based on the robots.txt protocol (also known as the robots exclusion protocol). Before crawling a webpage, they will check the robots.txt file hosted by that page's web server. A robots.txt file is a text file that specifies the rules for any bots accessing the hosted website or application. These rules define which pages the bots can crawl, and which links they can follow. As an example, check out the Cloudflare.com robots.txt file.

所有這些因素於其專屬運算內都有不同的比重,而每個搜尋引擎也據此在其蜘蛛傀儡程式中建立。儘管最終目標一致,也就是:從網頁下載內容,並製作索引,但不同搜尋引擎的網路爬蟲有著略為不同的行為。

為什麼網路爬蟲又被稱為「蜘蛛」?

網際網路,或至少是大部份使用者存取的部份,又名全球資訊網 (World Wide Web),也就是大部份網址以「www」作為起頭的原因。把搜尋引擎傀儡程式稱為「蜘蛛」其實是很正常的事,因為程式在網路四處搜尋,就如同蜘蛛在蜘蛛網上爬行一樣。

應經常允許網路爬蟲傀儡程式存取 Web 資產嗎?

應由 Web 資產決定,且需視幾個元素而定。網路爬蟲要求伺服器資源,以便製作內容索引。它們提出伺服器需回應的查詢,就如同使用者造訪網站,或其他傀儡程式存取網站一樣。視每頁的內容數量,或網站的頁面數量而定,網站管理員可權衡爬蟲對網站的最佳利益,不允許搜尋索引太常造訪,因為太多索引可能會對伺服器帶來過重負擔、增加頻寬成本,或同時出現這兩個問題。

此外,除非已向使用者提供頁面連結 (而無需將頁面放在付款牆或登入之後),開發人員或公司也許不希望某些頁面可被搜尋。舉例來說:某企業建立專屬的行銷活動登錄頁,但不希望不是活動的目標對象存取頁面。這樣做可確切制訂相關訊息,或確切評量頁面的效能。在此等情況下,企業可在登錄頁新增「不必索引」 (no index) 標記,就不會顯示在搜尋引擎的結果內。它們也可以在網頁或 robots.txt 檔案新增「不允許」 (disallow) 標籤,那麼搜尋引擎蜘蛛就絕對不會爬行到該網頁。

網站持有人可能會基於許多其他理由,不希望網路爬蟲傀儡程式爬到其部份或全部網站。例如:某些網站允許使用者在其站內進行搜尋,也許希望封鎖搜尋結果頁,因為這樣做對大部份使用者都沒有用處。其他自動建立的網頁只會對一位使用者或少數特定使用者有用,因此也應封鎖。

網路爬行和網站剽竊有何不同?

網站剽竊、資料剽竊,或內容剽竊指的是傀儡程式未經網站允許就下載相關內容,往往旨在用相關內容以達成惡意目的。

網站剽竊的目標對象,通常比網路爬行顯著精準。網站剽竊也許只想存取特定頁面或網站,而網站爬蟲則跟隨連結,並持續爬行網頁。

此外,網站剽竊傀儡程式也許會無視對網頁伺服器帶來的壓力,而網路爬蟲,特別是來自主要搜尋引擎的應用程式,將遵循 robots.txt 檔案並限制其查詢,不對網頁伺服器帶來過重的負擔。

網路爬蟲如何影響搜尋引擎最佳化作業 (SEO)?

SEO 是搜尋引擎最佳化的英文縮寫,指的是為內容做好準備的準則,以便進行搜尋索引,好讓網站的排名能儘量超前於搜尋引擎結果中。

若蜘蛛傀儡程式不爬行特定網站,它就沒有搜尋索引,也就是無法顯示在搜尋結果中。因此,若網站持有人想要取得來自搜尋結果的有機流量,不封鎖網路爬蟲傀儡程式至關重要。

目前在網際上很活躍的網路爬蟲傀儡程式有哪些?

來自主要搜尋引擎的傀儡程式:

  • Google:Googlebot (實際上有兩個網路爬蟲,分別是:Googlebot Desktop 和 Googlebot Mobile,分別適用於電腦版和行動版搜尋)
  • Bing:Bingbot
  • Yandex (俄語搜尋引擎):Yandex 傀儡程式
  • 百度 (Baidu) (簡體中文搜尋引擎):Baidu 蜘蛛

還有許多較不常見的網路爬蟲傀儡程式,當中有些沒有任何相關的搜尋引擎。

為什麼傀儡程式管理要考量網路爬蟲是如此的重要?

Bad bots can cause a lot of damage, from poor user experiences to server crashes to data theft. However, in blocking bad bots, it's important to still allow good bots, such as web crawlers, to access web properties. Cloudflare Bot Management allows good bots to keep accessing websites while still mitigating malicious bot traffic. The product maintains an automatically updated allowlist of good bots, like web crawlers, to ensure they aren't blocked. Smaller organizations can gain a similar level of visibility and control over their bot traffic with Super Bot Fight Mode, available on Cloudflare Pro and Business plans.