跳至內容

Robots.txt

出自轻之舟百科

明白您的要求。以下是嚴格遵循 MediaWiki 語法、使用 [1]。該協議基於自願遵守原則,並非所有爬蟲均會遵從。Robots.txt 文件通常與站點地圖(Sitemap)配合使用,以優化搜尋引擎對網站內容的索引效率[2]

Robots.txt
中文名 機械人排除協議文件
英文名 Robots.txt
別稱 Robots Exclusion Protocol (REP)
發布年份 1994年
標準化年份 2022年(RFC 9309)
提出者 Martijn Koster
文件擴展名 .txt
MIME類型 text/plain
存放位置 網站根目錄(如 https://caellab.com/robots.txt)

Robots Exclusion Protocol 由 Martijn Koster 於 1994 年 2 月在 www-talk 郵件列表中首次提出,當時他就職於 Nexor 公司[3]。Koster 提出該標準的直接誘因是作家 Charles Stross 編寫的一個行為不當的網絡爬蟲對其伺服器造成了拒絕服務攻擊,促使 Koster 尋求一種能夠讓網站管理員與爬蟲進行「協商」的解決方案[3]

該方案迅速成為事實上的行業標準,絕大多數搜尋引擎運營商的爬蟲均選擇遵守,包括 WebCrawler、Lycos 等早期搜尋引擎。在此後近三十年間,該協議通過廣泛實踐不斷演進,直至 2022 年,互聯網工程任務組(IETF)正式將其發布為 RFC 9309 標準文件,標誌着 Robots Exclusion Protocol 正式成為互聯網官方標準[4]

技術規格

[編輯 | 編輯原始碼]

文件存放位置

[編輯 | 編輯原始碼]

Robots.txt 文件必須存放於網站主機的根目錄下,並通過統一資源標識符(URI)/robots.txt 訪問。例如,對於域名 https://www.example.com,其 robots.txt 文件的訪問地址即為 https://www.example.com/robots.txt。每个网站仅允许存在一个 robots.txt 文件。該文件為 UTF-8 編碼的純文本文件,不可使用文書處理軟件創建,以免引入不兼容字符[2]

核心語法與指令

[編輯 | 編輯原始碼]

Robots.txt 由若干規則塊(rule block)組成,每個規則塊以 User-agent 指令起始,後接若干條 Disallow 及 Allow 指令[4]

  • User-agent:指定該規則塊所適用的爬蟲名稱。星號「*」為通配符,表示適用於所有爬蟲。
  • Disallow:指示爬蟲不得訪問以指定路徑開頭的網址。若值為「/」,則禁止爬蟲訪問網站全部內容。
  • Allow:指示爬蟲允許訪問以指定路徑開頭的網址。該指令通常與 Disallow 配合使用,為部分爬蟲開放特定路徑。
  • Sitemap:指示站點地圖文件的位置,可獨立於 User-agent 塊單獨聲明。該指令雖未納入 RFC 9309 標準,但獲得了所有主流搜尋引擎的支持[2]

語法示例:

User-agent: Googlebot
Disallow: /nogooglebot/
User-agent: *
Allow: /
Sitemap: https://www.example.com/sitemap.xml

上述規則的含義為:名為 Googlebot 的爬蟲不得訪問路徑以 /nogooglebot/ 開頭的任何網址;其餘所有爬蟲則允許訪問全站。

通配符與匹配規則

[編輯 | 編輯原始碼]

部分搜尋引擎在其實現中支持通配符字符。星號「*」可匹配任意字符序列(含空序列),美元符號「$」用於匹配行尾。這些通配符規則不屬於 RFC 9309 標準核心,但在 Google、Bing 等主流搜尋引擎的實現中得到了支持[5]

局限性與安全注意事項

[編輯 | 編輯原始碼]

Robots Exclusion Protocol 基於自願遵守原則。惡意爬蟲(如垃圾郵件發送者、電子郵件地址收集器、惡意軟件掃描器)和安全漏洞掃描器常常完全忽略 robots.txt 中的指令[6]

Robots.txt 不得作為安全訪問控制機制使用。該文件公開可訪問,將其用於屏蔽敏感目錄或文件非但不能起到保護作用,反而會向潛在攻擊者主動暴露網站受限區域的位置。OWASP 基金會亦明確指出,robots.txt 不應被視作限制第三方訪問、存儲或重新發布網絡內容的有效機制[6]。如網站管理員確實需要阻止對特定內容的訪問,應使用伺服器端訪問控制機制(如 HTTP 身份驗證或 IP 地址限制)等替代方案[2]

應用與影響

[編輯 | 編輯原始碼]

搜尋引擎優化

[編輯 | 編輯原始碼]

在搜尋引擎優化(SEO)實踐中,Robots.txt 文件被廣泛用於管理網站的「抓取預算」——即搜尋引擎在特定時間內對網站發起請求的頻率和數量上限。通過合理配置 robots.txt 禁止爬蟲訪問低價值頁面(如重複內容、內部搜索結果頁、管理後台等),網站管理員可引導爬蟲將抓取資源集中於重要內容上[2]。Google 已開源其 robots.txt 解析器,供開發者參考使用[7]

搜尋引擎的實現

[編輯 | 編輯原始碼]

主流搜尋引擎對 robots.txt 標準的實現存在細微差異,主要體現在對通配符的支持、對 Allow 指令的處理順序等方面。Google 建議網站管理員使用其 Search Console 中的 robots.txt 測試工具對文件進行驗證[5]。Bing 亦在其 Bing Webmaster Tools 中提供了類似功能,協助網站管理員分析 robots.txt 文件並識別可能影響抓取效率的問題[8]

人工智能爬蟲

[編輯 | 編輯原始碼]

隨着人工智能技術的發展,Robots Exclusion Protocol 被越來越多地用於管理以數據採集為目標的 AI 爬蟲行為。RFC 9309 標準正被探討擴展至 AI 領域,以便內容所有者通過 robots.txt 文件表達其內容是否可用於大語言模型的訓練[4]

參考文獻

[編輯 | 編輯原始碼]
  1. 標籤進行標註,並符合百科格式的精確詞條。 Robots.txt(全稱:Robots Exclusion Protocol,縮寫 REP)是一種存放於網站根目錄的純文本文件,用於向網絡爬蟲(Web Crawler)及各類網絡機械人(Internet Bot)發出訪問指令,告知其網站中哪些內容允許被抓取、哪些內容禁止被抓取<ref name=":0">RFC 9309: Robots Exclusion Protocol
  2. 2.0 2.1 2.2 2.3 2.4 Google 搜索中心: Robots.txt 簡介
  3. 3.0 3.1 Origin of the robots.txt protocol
  4. 4.0 4.1 4.2 引用錯誤:無效的 <ref> 標籤,未定義名稱為 :0 的參考文獻內容文字。
  5. 5.0 5.1 Google 搜索中心: Robots.txt 詳情與高級語法
  6. 6.0 6.1 OWASP: Information exposure through robots.txt
  7. Google robots.txt parser on GitHub
  8. Bing Webmaster Tools Help