技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營

贊助商

分類目錄

贊助商

最新文章

搜索

robots.txt 語法詳解:*、$、?等字符的含義及用法

作者:admin    時間:2017-6-17 11:19:19    瀏覽:

創(chuàng)建 robots.txt 文件很簡單,您可以在任何文本編輯器中創(chuàng)建一個 robots.txt 文件,它是ASCII編碼的文本文件,而不是HTML文件。本文將詳細(xì)介紹 robots.txt 的語法及用法,以及各種注意問題。

 robots.txt

robots.txt

robots.txt 語法

  • User-Agent: 以下規(guī)則適用的機(jī)器人(例如“Googlebot”等)
  • Disallow: 您希望阻止機(jī)器人訪問的頁面(根據(jù)需要,禁止多行)
  • Allow: 不需要阻止機(jī)器人訪問的頁面
  • Noindex: 您希望搜索引擎阻止和不要索引的頁面(或者如果先前已建立索引,則將其解除索引)。支持Google,不支持雅虎和實(shí)時搜索(Live Search),其他搜索未知。
  • 每個 User-Agent / Disallow 組應(yīng)該用空行分隔; 然而,組內(nèi)不應(yīng)存在空行(在User-agent行和最后一個Disallow之間)。
  • 井號(#)可用于 robots.txt 文件中的注釋,其中該行上#后的所有內(nèi)容都將被忽略。可能用于整行或末行。
  • 目錄和文件名區(qū)分大小寫:“my”,“My”和“MY”對于搜索引擎來說都是不同的。

我們來看一個例子的robots.txt文件。下面的例子包括:

  • 對“Googlebot”機(jī)器人沒有任何不允許
  • 對“msnbot”機(jī)器人整站關(guān)閉
  • 所有機(jī)器人(Googlebot除外)不應(yīng)訪問 /tmp/ 目錄或名為 /logs 的目錄或文件,如注釋所述,例如tmp.htm,/logs或logs.php

User-agent: Googlebot
Disallow:

User-agent: msnbot
Disallow: /

# /tmp/ 目錄或名為 /logs 的目錄或文件阻止所有機(jī)器人
User-agent: *
Disallow: /tmp/
Disallow: /logs # 稱為 logs 的目錄或文件

應(yīng)該在User-Agent行上列出什么?User-agent 是特定搜索引擎機(jī)器人的名稱。您可以設(shè)置一個條目以應(yīng)用于特定的機(jī)器人(通過列出名稱),或者您可以將其設(shè)置為適用于所有機(jī)器人(通過列出作為通配符的星號)。適用于所有機(jī)器人的條目如下所示:

User-Agent: *

主要機(jī)器人包括:Baiduspider(baidu),360spider(360搜索),Sosospider(騰訊搜索),Sogou web spider(搜狗),Googlebot(Google),Slurp(Yahoo!)等,各大搜索引擎機(jī)器人可參考《百度蜘蛛最新UA及各大搜索引擎蜘蛛爬蟲UA匯總》。

請注意,Googlebot的 User-agent 指定的一組指令將被Googlebot遵守; 但Googlebot不會遵守*(所有機(jī)器人)的 User-agent 的指令。

在Disallow行應(yīng)該列出什么?列出您要阻止的頁面。您可以列出特定的URL或模式。該條目應(yīng)以正斜杠(/)開始。

例子:

  • 阻止整個網(wǎng)站: Disallow: /
  • 阻止一個目錄及其中的一切: Disallow: /private_directory/
  • 阻止頁面: Disallow: /private_file.html
  • 要阻止一個頁面和(或)一個名為private的目錄: Disallow: /private

如果您通過http和https提供內(nèi)容,則需要為每個協(xié)議單獨(dú)使用一個robots.txt文件。例如,為了允許機(jī)器人對所有http頁面進(jìn)行索引,但沒有https頁面,您可以按照http協(xié)議使用robots.txt文件:

User-agent: *
Disallow:

而對于https協(xié)議:

User-agent: *
Disallow: /

每當(dāng)他們訪問網(wǎng)站時,都會檢查robots.txt文件。一旦將robots.txt文件的規(guī)則上傳到站點(diǎn)的根目錄并且機(jī)器人進(jìn)入站點(diǎn),則robots.txt文件中的規(guī)則將會生效。訪問的頻率根據(jù)流行度,權(quán)限以及內(nèi)容更新頻率的不同,機(jī)器人蜘蛛網(wǎng)的頻率有所不同。有些網(wǎng)站每天可能會被抓取多次,而其他網(wǎng)站可能每周只能爬行幾次。

一些先進(jìn)的技術(shù)

主要的搜索引擎已經(jīng)開始合作來推進(jìn)robots.txt文件的功能。如上所述,主要搜索引擎已經(jīng)采用了一些功能,而不一定是所有主要的引擎,可以更好地控制爬行。由于這些可能會受到限制,請務(wù)必謹(jǐn)慎使用。

抓取延遲:

某些網(wǎng)站可能會遇到大量流量,并希望將搜索引擎蜘蛛減慢,以允許更多的服務(wù)器資源來滿足常規(guī)流量的需求。抓取延遲是Yahoo,Live Search和Ask所認(rèn)可的特殊指令,指示抓取工具在抓取頁面之間等待的秒數(shù):

User-agent: msnbot
Crawl-delay: 5

◆ 模式匹配

模式匹配現(xiàn)在似乎可用于:Google,Yahoo和Live Search。模式匹配的價值相當(dāng)可觀。讓我們先看一下最基本的模式匹配,使用星號通配符。阻止訪問以“private”開頭的所有子目錄:

User-agent: Googlebot
Disallow: /private*/

您可以使用美元符號($)匹配字符串的末尾。例如,阻止以.asp結(jié)尾的URL:

User-agent: Googlebot
Disallow: /*.asp$

與在Perl和其他地方的正則表達(dá)式中發(fā)現(xiàn)的更先進(jìn)的模式匹配不同,問號沒有特殊的權(quán)力。所以,阻止對包含問號(?)的所有URL的訪問,只需使用問號(不需要“轉(zhuǎn)義”或者使用反斜杠):

User-agent: *
Disallow: /*?*

阻止機(jī)器人抓取特定文件類型的所有文件(例如.gif):

User-agent: *
Disallow: /*.gif$

這是一個比較復(fù)雜的例子。假設(shè)您的站點(diǎn)僅使用查詢字符串部分的URL(“?”),僅用于會話ID,并且您要排除包含動態(tài)參數(shù)的所有URL,以確保機(jī)器人不會抓取重復(fù)的頁面。但是您可能希望包含以“?”結(jié)尾的任何URL。以下是如何實(shí)現(xiàn)的:

User-agent: Slurp
Disallow: /*? # 阻止包含 a 的URL
Allow: /*?$ # 允許所有以 a 結(jié)尾的URL

允許指令:

就像聽起來一樣,它與Disallow指令相反,它提供了專門調(diào)用可能被抓取的目錄或頁面的能力。這在大部分或整個場地被禁止之后可能是有益的。

要允許Googlebot只進(jìn)入“google”目錄:

User-agent: Googlebot
Disallow: /
Allow: /google/

Noindex指令:

該指令提供了從搜索結(jié)果中消除無代號無標(biāo)題列表的優(yōu)點(diǎn),但僅限于Google。它的語法恰好反映了Disallow。用Matt Cutts的話說:

Google允許在robots.txt中使用NOINDEX指令,它將完全從Google刪除所有匹配的站點(diǎn)URL。(這種行為可能會根據(jù)這個政策討論而改變,當(dāng)然這也是為什么我們還沒有談?wù)撨^這個問題。)

網(wǎng)站地圖:

XML網(wǎng)站地圖文件可以告訴搜索引擎您網(wǎng)站上的所有頁面,并且可選地提供有關(guān)這些頁面的信息,例如哪些是最重要的以及更改頻率。它充當(dāng)一個自動發(fā)現(xiàn)機(jī)制,讓蜘蛛找到XML站點(diǎn)地圖文件。您可以通過在robots.txt文件中添加以下行來告訴Google和其他搜索引擎您的Sitemap:

Sitemap: sitemap_location

sitemap_location是Sitemap的完整網(wǎng)址。此指令與 User-agent 行無關(guān),因此放在任何地方并不重要,不過一般是放在最后。所有主要的搜索引擎都支持Auto-Discovery Sitemap協(xié)議,包括Google,Yahoo,Live Search和Ask。

雖然 Auto-Discovery 提供了一種通知搜索引擎關(guān)于sitemap.xml文件的方法,但也值得通過其每個網(wǎng)站管理員控制臺(Google網(wǎng)站管理員中心,雅虎網(wǎng)站瀏覽器,實(shí)時搜索網(wǎng)站管理員中心)直接驗(yàn)證和提交站點(diǎn)地圖到搜索引擎 。

標(biāo)簽: 爬蟲  百度蜘蛛  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */