複製鏈接
請複製以下鏈接發送給好友

robots

鎖定
robots是網站跟爬蟲間的協議,用簡單直接的txt格式文本方式告訴對應的爬蟲被允許的權限,也就是説robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的範圍;如果該文件不存在,所有的搜索蜘蛛將能夠訪問網站上所有沒有被口令保護的頁面。
外文名
robots
主要作用
網站跟爬蟲間的協議
別    名
spider
功    能
自動訪問互聯網上的網頁並獲取網頁信息
使用對象
搜索引擎
類    型
文本文檔

robotsrobots簡介

搜索引擎通過一種程序robot(又稱spider),自動訪問互聯網上的網頁並獲取網頁信息。
您可以在您的網站中創建一個純文本文件robots.txt,在這個文件中聲明該網站中不想被robot訪問的部分,這樣,該網站的部分或全部內容就可以不被搜索引擎收錄了,或者指定搜索引擎只收錄指定的內容。
robots.txt(統一小寫)是一種存放於網站根目錄下的ASCII編碼的文本文件,它通常告訴網絡搜索引擎的漫遊器(又稱網絡蜘蛛),此網站中的哪些內容是不能被搜索引擎的漫遊器獲取的,哪些是可以被(漫遊器)獲取的。 因為一些系統中的URL是大小寫敏感的,所以robots.txt的文件名應統一為小寫。robots.txt應放置於網站的根目錄下。如果想單獨定義搜索引擎的漫遊器訪問子目錄時的行為,那麼可以將自定的設置合併到根目錄下的robots.txt,或者使用robots元數據
Robots.txt協議並不是一個規範,而只是約定俗成的,所以並不能保證網站的隱私。注意Robots.txt是用字符串比較來確定是否獲取URL,所以目錄末尾有和沒有斜槓“/”這兩種表示是不同的URL,也不能用"Disallow: *.gif"這樣的通配符。
其他的影響搜索引擎的行為的方法包括使用robots元數據:
<meta name="robots" content="noindex,nofollow" />
這個協議也不是一個規範,而只是約定俗成的,通常搜索引擎會識別這個元數據,不索引這個頁面,以及這個頁面的鏈出頁面
robots.txt文件放在哪裏? [1] 
robots.txt文件應該放在網站根目錄下。舉例來説,當robots訪問一個網站時,首先會檢查該網站中是否存在這個文件,如果機器人找到這個文件,它就會根據這個文件的內容,來確定它訪問權限的範圍。

robots使用誤區

誤區一:我的網站上的所有文件都需要蜘蛛抓取,那我就沒必要在添加robots.txt文件了。反正如果該文件不存在,所有的搜索蜘蛛將默認能夠訪問網站上所有沒有被口令保護的頁面。
每當用户試圖訪問某個不存在的URL時,服務器都會在日誌中記錄404錯誤(無法找到文件)。每當搜索蜘蛛來尋找並不存在的robots.txt文件時,服務器也將在日誌中記錄一條404錯誤,所以你應該做網站中添加一個robots.txt。
誤區二:在robots.txt文件中設置所有的文件都可以被搜索蜘蛛抓取,這樣可以增加網站的收錄率
網站中的程序腳本、樣式表等文件即使被蜘蛛收錄,也不會增加網站的收錄率,還只會浪費服務器資源。因此必須在robots.txt文件裏設置不要讓搜索蜘蛛索引這些文件。
具體哪些文件需要排除, 在robots.txt使用技巧一文中有詳細介紹。
誤區三:搜索蜘蛛抓取網頁太浪費服務器資源,在robots.txt文件設置所有的搜索蜘蛛都不能抓取全部的網頁。
如果這樣的話,會導致整個網站不能被搜索引擎收錄

robots使用技巧

1. 每當用户試圖訪問某個不存在的URL時,服務器都會在日誌中記錄404錯誤(無法找到文件)。每當搜索蜘蛛來尋找並不存在的robots.txt文件時,服務器也將在日誌中記錄一條404錯誤,所以你應該在網站中添加一個robots.txt。
2. 網站管理員必須使蜘蛛程序遠離某些服務器上的目錄——保證服務器性能。比如:大多數網站服務器都有程序儲存在“cgi-bin”目錄下,因此在robots.txt文件中加入“Disallow: /cgi-bin”是個好主意,這樣能夠避免將所有程序文件被蜘蛛索引,可以節省服務器資源。一般網站中不需要蜘蛛抓取的文件有:後台管理文件、程序腳本、附件、數據庫文件、編碼文件、樣式表文件、模板文件、導航圖片和背景圖片等等。
下面是VeryCMS裏的robots.txt文件:
User-agent: *
Disallow: /admin/ 後台管理文件
Disallow: /require/ 程序文件
Disallow: /attachment/ 附件
Disallow: /images/ 圖片
Disallow: /data/ 數據庫文件
Disallow: /template/ 模板文件
Disallow: /css/ 樣式表文件
Disallow: /lang/ 編碼文件
Disallow: /script/ 腳本文件
3. 如果你的網站動態網頁,並且你為這些動態網頁創建了靜態副本,以供搜索蜘蛛更容易抓取。那麼你需要在robots.txt文件裏設置避免動態網頁被蜘蛛索引,以保證這些網頁不會被視為含重複內容
4. robots.txt文件裏還可以直接包括在sitemap文件的鏈接。就像這樣:
Sitemap: http://www.***.com/sitemap.xml
對此表示支持的搜索引擎公司有Google, Yahoo, Ask and MSN。而中文搜索引擎公司,顯然不在這個圈子內。這樣做的好處就是,站長不用到每個搜索引擎的站長工具或者相似的站長部分,去提交自己的sitemap文件,搜索引擎的蜘蛛自己就會抓取robots.txt文件,讀取其中的sitemap路徑,接着抓取其中相鏈接的網頁。
5. 合理使用robots.txt文件還能避免訪問時出錯。比如,不能讓搜索者直接進入購物車頁面。因為沒有理由使購物車被收錄,所以你可以在robots.txt文件裏設置來阻止搜索者直接進入購物車頁面。

robotsrobots.txt文件的格式

"robots.txt"文件包含一條或更多的記錄,這些記錄通過空行分開(以CR,CR/NL, or NL作為結束符),每一條記錄的格式如下所示:
"<field>:<optionalspace><value><optionalspace>"。
在該文件中可以使用#進行註解,具體使用方法和UNIX中的慣例一樣。該文件中的記錄通常以一行或多行User-agent開始,後面加上若干Disallow行,詳細情況如下:
User-agent:
該項的值用於描述搜索引擎robot的名字,在"robots.txt"文件中,如果有多條User-agent記錄説明有多個robot會受到該協議的限制,對該文件來説,至少要有一條User-agent記錄。如果該項的值設為*,則該協議對任何機器人均有效,在"robots.txt"文件中,"User-agent:*"這樣的記錄只能有一條。
Disallow:
該項的值用於描述不希望被訪問到的一個URL,這個URL可以是一條完整的路徑,也可以是部分的,任何以Disallow開頭的URL均不會被robot訪問到。例如"Disallow:/help"對/help.html 和/help/index.html都不允許搜索引擎訪問,而"Disallow:/help/"則允許robot訪問/help.html,而不能訪問/help/index.html。任何一條Disallow記錄為空,説明該網站的所有部分都允許被訪問,在"/robots.txt"文件中,至少要有一條Disallow記錄。如果"/robots.txt"是一個空文件,則對於所有的搜索引擎robot,該網站都是開放的。
Allow:
該項的值用於描述希望被訪問的一組URL,與Disallow項相似,這個值可以是一條完整的路徑,也可以是路徑的前綴,以Allow項的值開頭的URL是允許robot訪問的。例如"Allow:/hibaidu"允許robot訪問/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一個網站的所有URL默認是Allow的,所以Allow通常與Disallow搭配使用,實現允許訪問一部分網頁同時禁止訪問其它所有URL的功能。
需要特別注意的是Disallow與Allow行的順序是有意義的,robot會根據第一個匹配成功的Allow或Disallow行確定是否訪問某個URL。
使用"*"和"$":
robots支持使用通配符"*"和"$"來模糊匹配url
"$" 匹配行結束符。
"*" 匹配0或多個任意字符。

robotsrobots.txt語法教程

用幾個最常見的情況,直接舉例説明 [2] 
1. 允許所有SE收錄本站:robots.txt為空就可以,什麼都不要寫。
2. 禁止所有SE收錄網站的某些目錄:
User-agent: *
Disallow: /目錄名1/
Disallow: /目錄名2/
Disallow: /目錄名3/
3. 禁止某個SE收錄本站,例如禁止百度:
User-agent: Baiduspider
Disallow: /
4. 禁止所有SE收錄本站:
User-agent: *
Disallow: /
5. 加入sitemap.xml路徑,例如:

robotsrobot.txt在SEO中的作用

鑑於網絡安全與隱私的考慮,搜索引擎遵循robots.txt協議。通過根目錄中創建的純文本文件robots.txt,網站可以聲明不想被robots訪問的部分。每個網站都可以自主控制網站是否願意被搜索引擎收錄,或者指定搜索引擎只收錄指定的內容。當一個搜索引擎的爬蟲訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果該文件不存在,那麼爬蟲就沿着鏈接抓取,如果存在,爬蟲就會按照該文件中的內容來確定訪問的範圍。
robots.txt必須放置在一個站點的根目錄下,而且文件名必須全部小寫。robots.txt文件的格式
User-agent: 定義搜索引擎的類型
Disallow: 定義禁止搜索引擎收錄的地址
Allow: 定義允許搜索引擎收錄的地址
我們常用的搜索引擎類型有:
google蜘蛛:googlebot
百度蜘蛛:baiduspider
yahoo蜘蛛:slurp
alexa蜘蛛:ia_archiver
msn蜘蛛:msnbot
altavista蜘蛛:scooter
lycos蜘蛛:lycos_spider_(t-rex)
alltheweb蜘蛛:fast-webcrawler
inktomi蜘蛛: slurprobots.txt文件的寫法
User-agent: * 這裏的*代表的所有的搜索引擎種類,*是一個通配符
Disallow: /admin/ 這裏定義是禁止爬尋admin目錄下面的目錄
Disallow: /require/ 這裏定義是禁止爬尋require目錄下面的目錄
Disallow: /ABC 這裏定義是禁止爬尋ABC整個目錄
Disallow: /cgi-bin/*.htm 禁止訪問/cgi-bin/目錄下的所有以".htm"為後綴的URL(包含子目錄)。
Disallow: /*?* 禁止訪問網站中所有的動態頁面
Disallow: .jpg$ 禁止抓取網頁所有的.jpg格式的圖片
Disallow:/ab/adc.html 禁止爬去ab文件夾下面的adc.html所有文件
User-agent: * 這裏的*代表的所有的搜索引擎種類,*是一個通配符
Allow: /cgi-bin/ 這裏定義是允許爬尋cgi-bin目錄下面的目錄
Allow: /tmp 這裏定義是允許爬尋tmp的整個目錄
Allow: .htm$ 僅允許訪問以".htm"為後綴的URL。
Allow: .gif$ 允許抓取網頁和gif格式圖片robots.txt文件用法舉例
例1. 禁止所有搜索引擎訪問網站的任何部分
User-agent: *
Disallow: /
實例分析:淘寶網的 Robots.txt文件
User-agent: Baiduspider
Disallow: /
很顯然淘寶不允許百度的機器人訪問其網站下其所有的目錄。
例2. 允許所有的robot訪問 (或者也可以建一個空文件 “/robots.txt” file)
User-agent: *
Disallow:
例3. 禁止某個搜索引擎的訪問
User-agent: BadBot
Disallow: /
例4. 允許某個搜索引擎的訪問
User-agent: baiduspider
Disallow: User-agent: *Disallow: /
例5.一個簡單例子
在這個例子中,該網站有三個目錄對搜索引擎的訪問做了限制,即搜索引擎不會訪問這三個目錄。
需要注意的是對每一個目錄必須分開聲明,而不要寫成 “Disallow: /cgi-bin/ /tmp/”。
User-agent:後的*具有特殊的含義,代表“any robot”,所以在該文件中不能有“Disallow: /tmp/*” or “Disallow:*.gif”這樣的記錄出現。
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
Robot特殊參數:
允許 Googlebot
如果您要攔截除 Googlebot 以外的所有漫遊器訪問您的網頁,可以使用下列語法:
User-agent:
Disallow:/
User-agent:Googlebot
Disallow:
Googlebot 跟隨指向它自己的行,而不是指向所有漫遊器的行。
“Allow”擴展名:
Googlebot 可識別稱為“Allow”的 robots.txt 標準擴展名。其他搜索引擎的漫遊器可能無法識別此擴展名,因此請使用您感興趣的其他搜索引擎進行查找。“Allow”行的作用原理完全與“Disallow”行一樣。只需列出您要允許的目錄或頁面即可。
您也可以同時使用“Disallow”和“Allow”。例如,要攔截子目錄中某個頁面之外的其他所有頁面,可以使用下列條目:
User-Agent:Googlebot
Disallow:/folder1/
Allow:/folder1/myfile.html
這些條目將攔截 folder1 目錄內除 myfile.html 之外的所有頁面。
如果您要攔截 Googlebot 並允許 Google 的另一個漫遊器(如 Googlebot-Mobile),可使用”Allow”規則允許該漫遊器的訪問。例如:
User-agent:Googlebot
Disallow:/
User-agent:Googlebot-Mobile
Allow:
使用 * 號匹配字符序列:
您可使用星號 (*) 來匹配字符序列。例如,要攔截對所有以 private 開頭的子目錄的訪問,可使用下列條目:
User-Agent:Googlebot
Disallow:/private*/
要攔截對所有包含問號 (?) 的網址的訪問,可使用下列條目:
User-agent:*
Disallow:/*?*
使用 $ 匹配網址的結束字符
您可使用 $ 字符指定與網址的結束字符進行匹配。例如,要攔截以 .asp 結尾的網址,可使用下列條目:
User-Agent:Googlebot
Disallow:/*.asp$
您可將此模式匹配與 Allow 指令配合使用。例如,如果 ? 表示一個會話 ID,您可排除所有包含該 ID 的網址,確保 Googlebot 不會抓取重複的網頁。但是,以 ? 結尾的網址可能是您要包含的網頁版本。在此情況下,可對 robots.txt 文件進行如下設置:
User-agent:*
Allow:/*?$
Disallow:/*?
Disallow:/ *?
一行將攔截包含 ? 的網址(具體而言,它將攔截所有以您的域名開頭、後接任意字符串,然後是問號 (?),而後又是任意字符串的網址)。
Allow: /*?$ 一行將允許包含任何以 ? 結尾的網址(具體而言,它將允許包含所有以您的域名開頭、後接任意字符串,然後是問號 (?),問號之後沒有任何字符的網址)。Robots Meta標籤
Robots.txt文件主要是限制整個站點或者目錄的搜索引擎訪問情況,而Robots Meta標籤則主要是針對一個個具體的頁面。和其他的META標籤(如使用的語言、頁面的描述、關鍵詞等)一樣,Robots Meta標籤也是放在頁面的中,專門用來告訴搜索引擎ROBOTS如何抓取該頁的內容。
Robots Meta標籤中沒有大小寫之分,name=”Robots”表示所有的搜索引擎,可以針對某個具體搜索引擎寫為name=”BaiduSpider”。content部分有四個指令選項:index、noindex、follow、nofollow,指令間以“,”分隔。
index指令告訴搜索機器人抓取該頁面;
follow指令表示搜索機器人可以沿着該頁面上的鏈接繼續抓取下去;
Robots Meta標籤的缺省值是index和follow,只有inktomi除外,對於它,缺省值是index、nofollow。
需要注意的是:上述的robots.txt和Robots Meta標籤限制搜索引擎機器人(ROBOTS)抓取站點內容的辦法只是一種規則,需要搜索引擎機器人的配合才行,並不是每個ROBOTS都遵守的。
絕大多數的搜索引擎機器人都遵守robots.txt的規則,而對於RobotsMETA標籤,目前支持的並不多,但是正在逐漸增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE還增加了一個指令“archive”,可以限制GOOGLE是否保留網頁快照

robots非標準擴展協議

Crawl-delay 指令:幾大抓取工具支持Crawl-delay參數,設置為多少秒,以等待同服務器之間連續請求,如:
User-agent:
*Crawl-delay:10

robots常見Robots名字

名稱 搜索引擎
google蜘蛛: googlebot
百度蜘蛛:baiduspider
yahoo蜘蛛:slurp
alexa蜘蛛:ia_archiver
msn蜘蛛:msnbot
altavista蜘蛛:scooter
lycos蜘蛛: lycos_spider_(t-rex)
alltheweb蜘蛛: fast-webcrawler/
inktomi蜘蛛: slurp
一個在線寫robots.txt的工具。
最後需要注意,robots.txt文件名必須是小寫,而且放在網站根目錄

robotsRobots META標籤的寫法

Robots META標籤中沒有大小寫之分,name=”Robots”表示所有的搜索引擎,可以針對某個具體搜索引擎寫為name=”BaiduSpider”。 content部分有四個指令選項:index、noindex、follow、nofollow,指令間以“,”分隔。
INDEX 指令告訴搜索機器人抓取該頁面;
FOLLOW 指令表示搜索機器人可以沿着該頁面上的鏈接繼續抓取下去;
Robots Meta標籤的缺省值是INDEX和FOLLOW,只有inktomi除外,對於它,缺省值是INDEX,NOFOLLOW。
這樣,一共有四種組合:
<META NAME=”ROBOTS” CONTENT=”INDEX,FOLLOW”>
<META NAME=”ROBOTS” CONTENT=”NOINDEX,FOLLOW”>
<META NAME=”ROBOTS” CONTENT=”INDEX,NOFOLLOW”>
<META NAME=”ROBOTS” CONTENT=”NOINDEX,NOFOLLOW”>
其中
<META NAME=”ROBOTS” CONTENT=”INDEX,FOLLOW”>可以寫成<META NAME=”ROBOTS” CONTENT=”ALL”>;
<META NAME=”ROBOTS” CONTENT=”NOINDEX,NOFOLLOW”>可以寫成<META NAME=”ROBOTS” CONTENT=”NONE”>
絕大多數的搜索引擎機器人都遵守robots.txt的規則,而對於Robots META標籤,目前支持的並不多,但是正在逐漸增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE還增加了一個指令“archive”,可以限制GOOGLE是否保留網頁快照。例如:
<META NAME=”googlebot” CONTENT=”index,follow,noarchive”>
表示抓取該站點中頁面並沿着頁面中鏈接抓取,但是不在GOOLGE上保留該頁面的網頁快照。

robots禁止抓取圖片

User-agent: *
Disallow: .jpg$
jpg可以代替為gif,png 等等...

robots禁止快照

要防止所有搜索引擎顯示您網站的快照,請將此元標記置入網頁的 <HEAD> 部分:
<meta name="robots" content="noarchive">
要允許其他搜索引擎顯示快照,但僅防止搜索引擎顯示,請使用以下標記:
<meta name="Baiduspider" content="noarchive">

robots百度robots中的user-agent

百度各個產品使用不同的user-agent


無線搜索
Baiduspider-mobile
圖片搜索
Baiduspider-image
視頻搜索
Baiduspider-video
新聞搜索
Baiduspider-news
百度搜藏
Baiduspider-favo
百度聯盟
Baiduspider-cpro
商務搜索
Baiduspider-ads
網頁以及其他搜索
Baiduspider
參考資料