Robots協議的全稱是「網絡爬蟲排除標準」(Robots Exclusion Protocol),網站經過Robots協議告訴搜索引擎哪些頁面能夠抓取,哪些頁面不能抓取。html
一句話歸納就是,站點與搜索引擎爬蟲之間的"君子協議"。數據庫
通常有兩種方法。bash
(1)在網站的根目錄下放置一個文件,起名爲 robots.txt ,其中規定了哪些內容能夠爬取和哪些內容不想被抓取:網絡
robots.txt 必須放在站點的根目錄下,文件名必須小寫。在 robots.txt 文件中,至少要有一條 Disallow 記錄。若是 robots.txt 文件爲空,則容許全部搜索引擎Robots都是開放的。ide
robots.txt 文件中的記錄一般以一行或多行 User-agent 開始,後面加上若干 Disallow 行,解釋以下:網站
a.User-agent:指定搜索引擎 robots 的名字,常見的有Baiduspider、Sogouspider、360Spider等。若是有多條 User-agent 記錄,說明有多個robots會受到該協議的限制。至少要有一條 User-agent 記錄。若是該值爲 * ,則該協議對全部爬蟲都有效。搜索引擎
b.Disallow:設置不但願被訪問到的URL,能夠是完整的路徑,也能夠是相對路徑。任何以 Disallow 開頭的URL均不會被機器人訪問到。好比:"Disallow:/product",則對 "/product01.html"和"/product/01.html"都不容許機器人訪問。而"Disallow:/product/",則容許訪問"/product01.html",但不能訪問"/product/01.html"。spa
(2)在網頁的Meta元標籤裏面設置 Robots Meta 標籤:code
第一種方法是粗粒度的方法,設置 Robots Meta 的值來限制爬蟲訪問則是一種細粒度的方法,把限制細化到了每一個網頁。htm
Content部分有6個指令選項:all、index、noindex、follow、nofollow、none,指令組合使用時用","分隔。
index:容許被搜索引擎索引進數據庫;
follow:容許經過此網頁的連接繼續索引其它網頁;
all:默認值,至關於"index,follow",容許被搜索引擎索引進數據庫,容許經過此網頁的連接繼續索引其它網頁;
noindex:不被搜索引擎索引進數據庫,但搜索引擎能夠經過此網頁的連接繼續索引其它網頁;
nofollow:被搜索引擎索引進數據庫,但搜索引擎不能夠經過此網頁的連接繼續索引其它網頁;
none:不被搜索引擎索引進數據庫,且搜索引擎不能夠經過此網頁的連接繼續索引其它網頁,至關於"noindex,nofollow"。
Robots Meta標籤放在頁面的<head></head>中,告訴搜索引擎Robots如何抓取該頁的內容。
<meta name="robots" content="none">:防止全部搜索引擎訪問。
<meta name="Baiduspider" content="noindex,nofollow">:指定僅限制百度搜索引擎訪問。
(以淘寶網爲例:https://www.taobao.com/)
淘寶網的robots文件:https://www.taobao.com/robots.txt
User-agent: Baiduspider Allow: /article Allow: /oshtml Disallow: /product/ Disallow: / User-Agent: Sogouspider Allow: /article Allow: /oshtml Allow: /product Disallow: / #...略去其餘爬蟲詳情 User-Agent: * Disallow: /
如上所示:
對於百度搜索引擎,不容許訪問,限制效果圖:
對於搜狗搜索引擎,容許訪問,效果圖:
能夠看到,對比很明顯,百度搜索引擎機器人被限制了。