當前位置:法律諮詢服務網 - 企業資訊 - 機器人協議——“小偷也有辦法”

機器人協議——“小偷也有辦法”

根據協議,站長可以在網站的域名根中放壹個文本文件robots.txt,可以指定不同網絡爬蟲可以訪問的頁面和禁止訪問的頁面,指定的頁面用正則表達式表示。網絡爬蟲在收集這個網站之前,先獲取這個文件,然後分析其中的規則,再根據規則收集網站的數據。

註意,該協議的存在更多的是依賴於網絡爬蟲的合規性,而不具備防範爬蟲的功能。

互聯網上的網頁通過超鏈接相互關聯,從而形成網頁的Web結構。爬蟲的工作方式就像蜘蛛沿著互聯網上的鏈接爬行壹樣。最基本的過程可以簡化如下:

知道了上面的流程,我們就可以發現,網站對爬蟲是很被動的,只有老老實實爬上來的。

因此,對於網站管理者來說,有這樣壹個需求:

有些路徑用於個人隱私或網站管理,不希望被搜索引擎抓取,比如日系愛情動作片;

我不喜歡壹個搜索引擎,不想被他抓取。最著名的就是淘寶之前不想被百度抓取。

小網站使用公共虛擬主機,流量有限或者需要付費,希望搜索引擎溫柔壹些;

有些網頁是動態生成的,沒有直接鏈接,但是他們希望內容被搜索引擎抓取和索引。

網站內容的所有者是站長,搜索引擎應該尊重所有者的意願。為了滿足以上,有必要為網站提供壹個與爬蟲溝通的途徑,給站長壹個表達意願的機會。哪裏有需求,哪裏就有供應,機器人協議就這樣誕生了。

JD.COM的機器人協議

/robots.txt

百度的機器人協議

上圖,*代表全部,/代表根目錄。

既然網絡爬蟲在抓取壹個網站之前必須獲取文件,然後分析其中的規則,那麽機器人就必須有壹套通用的語法規則。

最簡單的robots.txt只有兩條規則:

用戶代理:指定哪些爬蟲將生效。

不允許:指定要阻止的URL。

我們來談談用戶代理。爬蟲爬行時會聲明自己的身份。這就是User-agent,沒錯,就是/culture。...

站點地圖:/hostedn...

順便說壹句,考慮到壹個網站有很多頁面,手工維護sitemap不太靠譜。google提供了自動生成站點地圖的工具。

元標簽

其實嚴格來說,這部分不屬於robots.txt。

robots.txt的初衷是讓站長管理可以出現在搜索引擎中的網站內容。但是,即使使用robots.txt文件使得爬蟲無法抓取這些內容,搜索引擎也可以通過其他方式找到這些頁面,並將它們添加到索引中。例如,其他網站可能仍然鏈接到此網站。因此,網站地址和其他公共信息(如相關網站鏈接中的定位文本或開放目錄管理系統中的標題)可能會出現在引擎搜索結果中。如果妳想完全不被搜索引擎發現怎麽辦?答案是:meta標簽,也就是元標簽。

例如,要完全阻止某個網頁的內容被列在搜索引擎索引中(即使其他網站鏈接到該網頁),可以使用noindex meta標記。只要搜索引擎查看網頁,就會看到noindex meta標簽,阻止網頁在索引中顯示。請註意,noindex meta標記提供了壹種方法來控制對網站的逐頁訪問。

要防止所有搜索引擎索引網站中的頁面,請添加:

此處name的值可以設置為搜索引擎的用戶代理,以指定應該阻止搜索引擎。

除了noindex之外,還有其他的meta標簽,比如nofollow,它禁止爬蟲跟蹤這個頁面的鏈接。詳情請參考Google支持的meta標簽。在這裏,我想提壹下,在HTML4.01規範中描述了noindex和nofollow,但是其他標簽在不同的引擎中有不同程度的支持。請自行參考各發動機的說明文檔。

爬行延遲

robots.txt除了控制什麽能抓什麽不能抓,還可以用來控制爬蟲的爬行速度。怎麽做?通過設置爬網程序在兩次爬網之間等待的秒數。這個操作可以減輕服務器的壓力。

意思是這次抓取之後下壹次抓取之前需要等待5秒。

註意:google不再支持這種方式,在站長工具中提供了壹個功能,可以更直觀的控制抓取速度。

題外話,幾年前有壹段時間robots.txt也支持復雜參數:visit-time,爬蟲只能在Visit-time指定的時間段內訪問;Request-rate:用於限制URL的讀取頻率,控制不同時間段不同的抓取速率。後來估計支持的人太少了,也就逐漸廢除了。目前google和百度已經不支持這個規則了,其他小引擎公司似乎也從來不支持。

網絡爬蟲:

自動或手動識別robots.txt,然後抓取內容。

綁定:

Robots協議是建議性的但不具有約束力,網絡爬蟲可以不遵守,但存在法律風險。

原理:類人行為不能引用機器人協議。

機器人協議不是技術壁壘,而是相互尊重的協議。比如私家花園門口掛著“閑人勿入”,尊重的人可以繞道走,不尊重的人仍然可以推門而入。目前,Robots協議在實際使用中還存在壹些問題。

隱藏物

Robots.txt本身也需要抓取。為了效率,壹般爬蟲在抓取壹個網站頁面之前,不會每次都抓取robots.txt。另外robots.txt更新不頻繁,內容需要解析。通常爬蟲爬壹次,解析壹次,緩存壹次,需要很長時間。假設站長更新了robots.txt,修改了壹些規則,但是對於爬蟲來說不會立即生效。只有爬蟲下次抓取robots.txt時,才能看到最新的內容。不好意思,下次爬蟲爬robots.txt不受站長控制。當然,也有壹些搜索引擎提供了web工具,允許站長通知搜索引擎網址發生了變化,建議重新抓取。註意,這是壹個建議。即使通知了搜索引擎,搜索引擎什麽時候搶還是不確定,但總比根本不通知好。至於好多少,就看搜索引擎的良心和技術能力了。

忽視

不知道是無意還是有意。反正有些爬蟲不關註或者完全忽略robots.txt,不排除開發者能力的問題,比如根本不了解robots.txt。另外,robots.txt本身並不是強制措施。如果網站有需要保密的數據,必須采取技術措施,如用戶認證、加密、ip攔截、訪問頻率控制等。

惡意爬行動物

在互聯網世界裏,每天都有無數的爬蟲夜以繼日的爬行,惡意爬蟲的數量甚至高於非惡意爬蟲。遵守Robots協議的爬蟲是好爬蟲,但不是每個爬蟲都會主動遵守Robots協議。

惡意爬蟲會帶來很多潛在的威脅。比如電商網站的商品信息,在被抓取的時候可能會被競爭對手利用。爬蟲太多也會占用帶寬資源,甚至導致網站宕機。

妳學會了~ ~ ~?

點個贊!!!

  • 上一篇:爭做“四有”好教師和五篇範文活動小結
  • 下一篇:山東省煙臺市個體工商戶公示怎麽填
  • copyright 2024法律諮詢服務網