一、Robots.txt協議
Robots協議,也稱為爬蟲協議、機器人協議等,其全稱為“網絡爬蟲排除標准(Robots Exclusion Protocol)”。網站通過Robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。也既是Robots的用法有兩種,一種是告訴搜索引擎哪些頁面你不能抓(默認其他的就可以抓);一種是告訴搜索引擎你只能抓取哪些頁面(默認其他的不可以抓)。
當一個搜索機器人(蜘蛛)訪問一個站點時,它會首先檢查網站根目錄下是否存在robots.txt,如果存在,就會按照文件中的內容確定訪問范圍,如果不存在,則沿着鏈接抓取。
協議的歷史
Robots Exclusion Protocol協議是由
Martijn Koster 在1994年2月,於Nexor工作期間在 www-talk 郵件列表中提出的。該協議提出后,Koster的服務器甚至遭到了反對者的拒絕服務攻擊。而該協議迅速成為事實上的標准,為大多數的人所接受。
文件的寫法:
User-agent:*
*是一個通配符,表示所有的搜索引擎種類
Disallow:/admin/
這表示禁止搜索引擎爬尋admin目錄下的內容
Disallow:*?*
這表示禁止搜索引擎爬尋包含?的網頁
Sitemap:sitemap.xml
這里通過Sitemap指定固定的網站地圖頁面。目前對此表示支持的搜索引擎公司有Google, Yahoo, Ask and MSN。而中文搜索引擎公司,顯然不在這個圈子內。這樣做的好處就是,站長不用到每個搜索引擎的站長工具或者相似的站長部分,去提交自己的sitemap文件,搜索引擎的蜘蛛自己就會抓取robots.txt文件,讀取其中的sitemap路徑,接着抓取其中相鏈接的網頁。
京東的Robots.txt。(時間:2015-11-25)

二、Robots.txt以外的內容
除了Robots.txt以外,還可以使用Robots Meta來向搜索引擎傳遞信息,先看示例如下:
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">
content部分有四個選項:index、noindex、follow、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.txt使用上應注意的一些問題
1、每當用戶試圖訪問某個不存在的URL時,服務器都會在日志中記錄404錯誤(無法找到文件)。每當搜索蜘蛛來尋找並不存在的robots.txt文件時,服務器也將在日志中記錄一條404錯誤,所以你應該在網站中添加一個robots.txt。
2、如果后台和前台在一個域名下,不希望爬蟲抓取后台程序的,可以在Robots.txt明確不讓爬蟲抓取的目錄。但這會不會被某些惡意分子一下子就能夠知道后台目錄呢?
3、國內常見搜索機器人的名字

參考資料:
1、
Robots協議