robots簡介
robots.txt文件是一個文本文件,使用任何一個常見的文本編輯器,比如Windows系統自帶的Notepad,就可以創建和編輯它。
robots.txt是一個協議,而不是一個命令。
robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。robots.txt文件告訴蜘蛛程序在服務器上什么文件是可以被查看的。
當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt.
如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;
如果該文件不存在,所有的搜索蜘蛛將能夠訪問網站上所有沒有被口令保護的頁面。
百度官方建議,僅當您的網站包含不希望被搜索引擎收錄的內容時,才需要使用robots.txt文件。如果您希望搜索引擎收錄網站上所有內容,請勿建立robots.txt文件。
例子:
如果將網站視為酒店里的一個房間,robots.txt就是主人在房間門口懸掛的“請勿打擾”或“歡迎打掃”的提示牌。
這個文件告訴來訪的搜索引擎哪些房間可以進入和參觀,哪些房間因為存放貴重物品,或可能涉及住戶及訪客的隱私而不對搜索引擎開放。
但robots.txt不是命令,也不是防火牆,如同守門人無法阻止竊賊等惡意闖入者。
robots協議原則
Robots協議是國際互聯網界通行的道德規范,基於以下原則建立:
1、搜索技術應服務於人類,同時尊重信息提供者的意願,並維護其隱私權;
2、網站有義務保護其使用者的個人信息和隱私不被侵犯。
robots功能
Robots協議用來告知搜索引擎哪些頁面能被抓取,哪些頁面不能被抓取;可以屏蔽一些網站中比較大的文件,
如:圖片,音樂,視頻等,節省服務器帶寬;可以屏蔽站點的一些死鏈接。方便搜索引擎抓取網站內容;
設置網站地圖連接,方便引導蜘蛛爬取頁面。
文件寫法
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文件。
Allow: /cgi-bin/ 這里定義是允許爬尋cgi-bin目錄下面的目錄
Allow: /tmp 這里定義是允許爬尋tmp的整個目錄
Allow: .htm$ 僅允許訪問以".htm"為后綴的URL。
Allow: .gif$ 允許抓取網頁和gif格式圖片
Sitemap: 網站地圖 告訴爬蟲這個頁面是網站地圖
文件用法
例1. 禁止所有搜索引擎訪問網站的任何部分
User-agent: *
Disallow: /
實例分析:淘寶網的 Robots.txt文件
User-agent: Baiduspider
Disallow: /
User-agent: baiduspider
Disallow: /
很顯然淘寶不允許百度的機器人訪問其網站下其所有的目錄。
例2. 允許所有的robot訪問
(或者也可以建一個空文件 “/robots.txt” file)
User-agent: *
Allow: /
例3. 禁止某個搜索引擎的訪問
User-agent: BadBot
Disallow: /
例4. 允許某個搜索引擎的訪問
User-agent: Baiduspider
allow:/
例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 跟隨指向它自己的行,而不是指向所有漫游器的行。
其它屬性
1. Robot-version: 用來指定robot協議的版本號
例子: Robot-version: Version 2.0
2. Crawl-delay:雅虎YST一個特定的擴展名.
可以通過它對我們的抓取程序設定一個較低的抓取請求頻率。您可以加入Crawl-delay:xx指示,其中,“XX”是指在crawler程序兩次進入站點時,以秒為單位的最低延時。
3. Visit-time:
只有在visit-time指定的時間段里,robot才可以訪問指定的URL,否則不可訪問.
例子: Visit-time: 0100-1300 #允許在凌晨1:00到13:00訪問
4. Request-rate: 用來限制URL的讀取頻率
例子: Request-rate: 40/1m 0100 - 0759 在1:00到07:59之間,以每分鍾40次的頻率進行訪問
Request-rate: 12/1m 0800 - 1300 在8:00到13:00之間,以每分鍾12次的頻率進行訪問