搜索引擎通過爬蟲(Spider)程序自動抓取互聯網網頁信息,以構建索引庫。為保護網站內容的隱私性或避免敏感信息被公開,網站管理員可通過技術手段限制搜索引擎的收錄范圍。其中,robots.txt文件與HTML元標記是兩種核心控制方式,前者針對整體網站的抓取規則,后者則可細化到頁面或鏈接級別的限制。
robots.txt是網站根目錄下的純文本文件,作為搜索引擎爬蟲訪問網站的“指令清單”。當爬蟲首次訪問一個網站時,會優先檢查其根目錄是否存在該文件(如http://www.example.com/robots.txt),并根據文件內容確定抓取范圍。該文件通過聲明不希望被收錄的目錄或頁面路徑,實現選擇性抓取。值得注意的是,若網站內容均希望被收錄,則無需創建robots.txt文件,避免不必要的限制。
該文件的放置位置具有嚴格規范,必須位于網站根目錄下。例如,對于域名http://www.w3.org,其robots.txt的實際路徑為http://www.w3.org/robots.txt。爬蟲通過該路徑獲取指令,若文件不存在或為空,則默認允許抓取所有內容。
部分用戶設置robots.txt后,仍發現禁止收錄的頁面出現在搜索結果中,這通常源于外部鏈接的影響。若其他網站鏈接了robots.txt中聲明的禁止收錄頁面,搜索引擎可能根據外部鏈接的錨文本信息生成摘要,但不會抓取頁面實際內容。此時,頁面雖在搜索結果中顯示,但內容不會被索引,僅展示外部描述。
除robots.txt外,HTML元標記可實現更細粒度的收錄管理。若需禁止搜索引擎跟蹤頁面鏈接且不傳遞權重,可在頁面``部分添加``;針對特定鏈接,可直接在``標簽中添加`rel="nofollow"`屬性(如`sign in`)。若僅需限制百度爬蟲,可使用``實現差異化控制。
若需禁止搜索引擎顯示網頁快照但允許索引,可使用``;針對百度快照,則可設置為``。需注意,該指令僅禁止快照顯示,頁面仍會被索引并顯示摘要。
針對百度圖片搜索的收錄需求,可通過robots.txt精準控制。例如,禁止Baiduspider抓取所有圖片,可設置`Disallow:/.jpg$`、`Disallow:/.jpeg$`等;僅允許特定格式圖片(如gif),則可結合`Allow`與`Disallow`指令實現。
robots.txt文件由一條或多條記錄組成,記錄間以空行分隔,每條記錄包含`User-agent`、`Disallow`、`Allow`三個核心字段:
- User-agent:指定受指令約束的爬蟲名稱,值為``時表示對所有爬蟲生效,一條記錄中僅能出現一次。
- Disallow:聲明禁止抓取的URL路徑,可為完整路徑或前綴(如`Disallow:/help`禁止/help及/help/下的所有頁面)。若值為空,則允許所有訪問。
- Allow:聲明允許抓取的URL路徑,常與`Disallow`配合使用,實現“允許部分、禁止其余”的效果。
指令順序至關重要,爬蟲按第一條匹配的`Allow`或`Disallow`規則執行。支持通配符``(匹配任意字符)和`$`(匹配行尾),如`Disallow:/cgi-bin/.htm`禁止訪問/cgi-bin/目錄下所有.htm文件。
- 禁止所有搜索引擎訪問:`User-agent: Disallow: /`
- 僅允許Baiduspider訪問:`User-agent: Baiduspider Disallow: User-agent: Disallow: /`
- 禁止抓取動態頁面:`User-agent: Disallow: /?`
通過合理配置robots.txt與元標記,網站可有效管理搜索引擎的收錄行為,平衡內容曝光與隱私保護需求。