爬蟲之robots.txt


    robots是網站跟爬蟲間的協議,用簡單直接的txt格式文本方式告訴對應的爬蟲被允許的權限,也就是說robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。

當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件

不存在,所有的搜索蜘蛛將能夠訪問網站上所有沒有被口令保護的頁面。

robots簡介


        搜索引擎通過一種程序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.txt文件放在哪里?
 

robots.txt文件應該放在網站根目錄下。舉例來說,當robots訪問一個網站時,首先會檢查該網站中是否存在這個文件,如果機器人找到這個文件,它就會根據這個文件的內容,來確定它訪問權限的范圍。

 

robots.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或多個任意字符。

robots.txt語法教程

 

用幾個最常見的情況,直接舉例說明: 

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: /

 
例如:查看百度的robots.txt文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM