網絡爬蟲之Robots協議

一.什麼是Robots協議

    Robots協議的全稱是「網絡爬蟲排除標準」(Robots Exclusion Protocol),網站經過Robots協議告訴搜索引擎哪些頁面能夠抓取,哪些頁面不能抓取。html

    一句話歸納就是,站點與搜索引擎爬蟲之間的"君子協議"。數據庫

二.如何使用Robots協議

    通常有兩種方法。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">:指定僅限制百度搜索引擎訪問。

三.Robots使用示例

    (以淘寶網爲例: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:  /

    如上所示:

    對於百度搜索引擎,不容許訪問,限制效果圖:

    對於搜狗搜索引擎,容許訪問,效果圖:

    能夠看到,對比很明顯,百度搜索引擎機器人被限制了。

相關文章
相關標籤/搜索