什么是 Web 爬網程序機器人?
Web 爬網程序、網絡蜘蛛或者搜索引擎機器人會從整個 Internet 下載內容并建立索引。這種機器人的目標是學習 Web 上(幾乎)每個網頁的內容,以便需要時檢索到相關信息。這些機器人被稱作“Web 爬網程序”是因為爬取是一個技術術語,用以形容通過軟件程序自動訪問網站或者獲取數據。
這些機器人幾乎總是由搜索引擎操作。通過對爬網程序收集的數據執(zhí)行搜索算法,搜索引擎可以響應用戶搜索查詢提供相關鏈接,在用戶將搜索輸入谷歌或Bing(或其他搜索引擎)生成顯示網頁列表。
爬網程序機器人就像是一個人,會瀏覽圖書館中雜亂無章的所有書籍,并整理卡片目錄,以便訪問圖書館的任何人都可以快速、輕松地找到所需的信息。為了幫助按主題對圖書館的書籍進行分類和組織,組織者將瀏覽書名、摘要和每本書的一些內部文本,以了解其概要。
但是,與圖書館不同,互聯網不是由大量的書籍組成的,這使得很難判斷所有必要的信息是否已正確索引,或者是否忽略了其中的大量信息。為了試圖查找到互聯網所能提供的所有相關信息,爬網程序機器人將從一組已知網頁開始,然后從這些頁面的超鏈接導到其他頁面,再從這些頁面的超鏈接進一步導到其他頁面,以此類推。
搜索引擎機器人迄今實際爬行了多少公共可用的互聯網仍是未知之數。一些消息來源估計,只有40%到70%的互聯網被編入搜索索引,大概是數十億個網頁。
什么是搜索索引?
搜索索引就像為互聯網創(chuàng)建圖書館目錄卡,以便搜索引擎在人們搜索互聯網時知道在互聯網上何處提取信息。也可以將其與一本書的索引進行類比,該索引列出了書中提到某個主題或短語所在位置。
索引主要關注頁面上顯示的文本,以及用戶看不到的有關頁面的元數據*。當大多數搜索引擎將頁面編入索引時,它們會將頁面上的所有單詞添加到索引中 – 在谷歌中,冠詞除外。當用戶搜索這些單詞時,搜索引擎會搜索這些單詞出現的所有頁面索引,并選擇最相關的頁面。
*在搜索索引中,元數據是告知搜索引擎網頁內容的數據。通常,元標題和元描述將出現在搜索引擎結果頁面上,與用戶可見的網頁內容相反。
爬網程序如何工作?
互聯網在不斷變化和擴展。由于無法知道互聯網上總共有多少個網頁,因此爬網程序機器人從種子或已知URL列表開始。他們首先在那些URL上爬行網頁。當他們爬網這些網頁時,他們會找到指向其他URL的超鏈接,并將它們添加到要爬行的頁面列表中。
鑒于互聯網上的大量網頁都可以被索引以進行搜索,因此該過程幾乎可以無限期地進行下去。但是,爬網程序將遵循某些策略,從而使其在選擇要爬網的頁面、以什么順序進行爬網以及應該多久重新爬網一次以檢查內容更新的時候能更加靈活。
每個網頁的相對重要性:大多數網頁爬網程序不會也不旨在爬網整個公開可用的互聯網;取而代之的是,他們根據其他頁面鏈接到該頁面的數量、該頁面吸引的訪問者數量以及其他表示該頁面包含重要信息的可能性等多重因素,來決定是否首先爬取該網頁。
這個原理是如果一個網頁被許多其他網頁引用并吸引了大量訪問者,那么它可能包含高質量的權威信息,因此,搜索引擎對其進行索引就會變得重要且必須,就像一本書如果被很多人借出,那圖書館可能需要確保有很多該書的副本。
重新訪問網頁:Web 內容不斷被更新、刪除或者移動到新的位置。Web 爬網程序需定期重新訪問頁面,確保索引的內容為最新版本。
Robots.txt要求::Web 爬網程序還根據 robots.txt 協議(也稱為機器人排除協議)決定爬取哪些頁面。爬網程序會在爬取網頁之前查看該頁面所在 Web 服務器托管的 robots.txt 文件。robots.txt 文件是一種文本文件,其中就機器人訪問托管網站或者應用程序詳細說明了相應規(guī)則。這些規(guī)則界定機器人能夠爬取哪些頁面,以及可以跟蹤哪些鏈接。示例請查看 Cloudflare.com 上的 robots.txt 文件。
所有這些因素在每個搜索引擎內置于其蜘蛛機器人的專有算法中的權重都不同。盡管最終目標都是一樣——從網頁下載內容并為其編制索引——但來自不同搜索引擎的網頁爬網程序的行為會略有不同。
為什么爬網程序稱為“蜘蛛”?
互聯網,或者至少是大多數用戶訪問的部分,也被稱為萬維網–實際上,這是大多數網站URL的"www"部分的來源。因此很自然將搜索引擎機器人稱為"蜘蛛”,因為他們爬遍了網絡,就如同真正的蜘蛛在蜘蛛網上爬行。
是否應始終允許爬網程序機器人訪問Web屬性?
這取決于網絡媒體資源,取決于許多因素。爬網程序需要服務器資源才能為內容建立索引–它們發(fā)出服務器需要響應的請求,就像訪問網站的用戶或其他訪問網站的機器人一樣。取決于每個頁面上的內容量或網站上的頁面數量,不宜過于頻繁地進行搜索索引可能比較符合網站運營商的最大利益,因為過多的索引可能會使服務器負擔過多或增加帶寬成本,或者兩者都有。
另外,除非用戶已獲得指向該頁面的鏈接(而無需將該頁面置于付費專區(qū)或登錄名后),否則開發(fā)人員或公司可能不希望某些網頁被發(fā)現。對于企業(yè)來說,這種情況的一個例子是,他們?yōu)闋I銷活動創(chuàng)建專用的登錄頁面,但是他們不希望任何非目標受眾訪問該頁面。這樣,他們可以定制消息內容或更精確衡量頁面的成效。在這種情況下,企業(yè)可以在目標網頁上添加" no index "標簽,這樣就不會顯示在搜索引擎結果中。他們還可以在頁面或robots.txt文件中添加"disallow"(不允許)標記,搜索引擎蜘蛛程序將根本不會抓取該標記。
網站所有者也可能出于各種其他原因,不希望爬網程序機器人爬取其部分或全部站點。例如,為用戶提供網站內搜索功能的網站可能希望阻止搜索結果頁面,因為這些頁面對大多數用戶沒有用。其他自動生成的僅對一個用戶或幾個特定用戶有用的頁面也應被阻止。
Web 爬取與 Web 抓取二者有何區(qū)別?
網頁抓取、數據抓取或內容抓取是指機器人在未經許可的情況下載網站內容的行為,通常是出于惡意目的使用該內容。
網頁抓取通常比網頁爬行更具針對性。網頁抓取的目標可能只是特定頁面或特定網站,而網頁爬取將繼續(xù)跟蹤鏈接并連續(xù)爬取頁面。
此外,網絡抓取機器人可能會無視它們對網絡服務器造成的壓力,而網絡爬蟲(尤其是來自主要搜索引擎的網絡爬蟲)將服從robots.txt文件并限制其請求,以免使網絡服務器負擔過多。
Web 爬網程序對 SEO 有何影響?
SEO代表搜索引擎優(yōu)化,它是為搜索索引準備內容的準則,以便網站在搜索引擎結果中顯示在更高的位置。
如果蜘蛛機器人沒有爬取網站,則無法將其編入索引,并且不會在搜索結果中顯示。因此,如果網站所有者希望從搜索結果中獲得有機流量,那么請不要阻止網絡爬蟲程序機器人,這一點非常重要。
Internet 上活躍的 Web 爬網程序機器人有哪些?
來自主要搜索引擎的機器人被稱為:
谷歌:Googlebot(實際上是兩個抓取工具,Googlebot Desktop和Googlebot Mobile,用于桌面和移動設備搜索)
Bing:Bingbot
Yandex(俄羅斯搜索引擎):Yandex Bot
百度(中國搜索引擎):百度蜘蛛
還有許多比較不常見的 Web 爬網程序機器人,其中一些與任何搜索引擎都無關聯。
在機器人管理中需將 Web 爬取考慮在內,這點為什么如此重要?
惡意機器人會造成巨大損失,從用戶體驗差、服務器崩潰到數據盜竊,逐步升級。但在阻止惡意機器人的過程中,仍要允許 Web 爬網程序等善意機器人訪問 Web 屬性,這點很重要。Cloudflare 機器人管理允許善意機器人繼續(xù)訪問網站,同時還能減少惡意機器人流量。該產品自動更新 Web 爬網程序等善意機器人白名單,確保其運行暢通無阻。