什么是robots.txt文件?
1、robots.txt是存放在站點(diǎn)下的一個(gè)純文本文件。雖然它的設(shè)置很簡單,但是作用卻很強(qiáng)大。它可以指定搜索引擎蜘蛛只抓取指定的內(nèi)容,或者是禁止搜索引擎蜘蛛抓取網(wǎng)站的部分或全部內(nèi)容。Robots協(xié)議(爬蟲協(xié)議)是國際互聯(lián)網(wǎng)界通行的道德規(guī)范,一般是在一個(gè)web站點(diǎn)的根目錄下寫的robots.txt文件,用來告知搜索引擎哪些頁面能被抓取,哪些頁面不能被抓取,可以屏蔽一些網(wǎng)站中比較大的文件,如:圖片,音樂,視頻等,節(jié)省服務(wù)器帶寬;可以屏蔽站點(diǎn)的一些死鏈接。方便搜索引擎抓取網(wǎng)站內(nèi)容;設(shè)置網(wǎng)站地圖連接,方便引導(dǎo)蜘蛛爬取頁面。
2、robots.txt(統(tǒng)一小寫)是一種存放于網(wǎng)站根目錄下的ASCII編碼的文本文件,它通常告訴網(wǎng)絡(luò)搜索引擎的漫游器(又稱網(wǎng)絡(luò)蜘蛛),此網(wǎng)站中的哪些內(nèi)容是不應(yīng)被搜索引擎的漫游器獲取的,哪些是可以被(漫游器)獲取的。
3、如果想單獨(dú)定義搜索引擎的漫游器訪問子目錄時(shí)的行為,那么可以將自定的設(shè)置合并到根目錄下的robots.txt,或者使用robots元數(shù)據(jù)。
4、因?yàn)橐恍┫到y(tǒng)中的URL是大小寫敏感的,所以robots.txt的文件名應(yīng)統(tǒng)一為小寫。robots.txt應(yīng)放置于網(wǎng)站的根目錄下。
5、robots.txt協(xié)議并不是一個(gè)規(guī)范,而只是約定俗成的,所以并不能保證網(wǎng)站的隱私。注意robots.txt是用字符串比較來確定是否獲取URL,所以目錄末尾有與沒有斜杠“/”表示的是不同的URL。robots.txt允許使用類似"Disallow: *.gif"這樣的通配符。
6、Robots協(xié)議是國際互聯(lián)網(wǎng)界通行的道德規(guī)范,基于以下原則建立:1、搜索技術(shù)應(yīng)服務(wù)于人類,同時(shí)尊重信息提供者的意愿,并維護(hù)其隱私權(quán);2、網(wǎng)站有義務(wù)保護(hù)其使用者的個(gè)人信息和隱私不被侵犯。
robots.txt文件使用方法
Robots.txt 文件應(yīng)該放在網(wǎng)站下,并且該文件是可以通過互聯(lián)網(wǎng)進(jìn)行訪問的。例如:如果您的網(wǎng)站地址是http://www.xxx.com/那么,該文件必須能夠通過 http://www.xxx.com/robots.txt 打開并看到里面的內(nèi)容。
格式:
是用來匹配爬蟲的,每個(gè)爬蟲都會(huì)有一個(gè)名字,如果你有安裝awstats統(tǒng)計(jì)工具,你就能查看到爬蟲的名字,比如百度的爬蟲叫BaiDuSpider,Google的爬蟲叫Googlebot,*表示所有爬蟲。User-agent用于描述搜索引擎蜘蛛的名字,在"Robots.txt"文件中,如果有多條User-agent記錄說明有多個(gè)搜索引擎蜘蛛會(huì)受到該協(xié)議的限制,對(duì)該文件來說,至少要有一條User-agent記錄。如果該項(xiàng)的值設(shè)為*,則該協(xié)議對(duì)任何搜索引擎蜘蛛均有效,在" Robots.txt "文件中,"User-agent:*"這樣的記錄只能有一條。
用于描述禁止爬蟲訪問的目錄或不希望被訪問到的一個(gè)URL,這個(gè)URL可以是一條完整的路徑,也可以是部分的,任何以Disallow開頭的URL均不會(huì)被Robot訪問到。Disallow:/ 表示攔截整站。
表示允許爬蟲訪問的目錄。Allow:/ 表示允許訪問整站。
用來指定sitemap的位置。如Sitemap: https://www.yourdomain.com/sitemap.xml
用來告訴爬蟲兩次訪問的間隔,單位是秒。爬蟲如果爬得很勤,對(duì)動(dòng)態(tài)網(wǎng)站來說,壓力有點(diǎn)大,可能會(huì)導(dǎo)致服務(wù)器負(fù)載增高,用戶訪問變慢。
還可以使用 , * :匹配任意多個(gè)字符, $ :表示URL的結(jié)尾。
不管是Disallow,Allow還是Sitemap,每行只能寫一條規(guī)則。
舉例:
例一:"Disallow:/help"是指/help.html 和/help/index.html都不允許搜索引擎蜘蛛抓取。
例二:"Disallow:/help/"是指允許搜索引擎蜘蛛抓取/help.html,而不能抓取/help/index.html。
例三:Disallow記錄為空說明該網(wǎng)站的所有頁面都允許被搜索引擎抓取,在"/robots.txt"文件中,至少要有一條Disallow記錄。如果"/robots.txt"是一個(gè)空文件,則對(duì)于所有的搜索引擎蜘蛛,該網(wǎng)站都是開放的可以被抓取的。
#:Robots.txt 協(xié)議中的注釋符。
綜合例子 :
例一:通過"/robots.txt"禁止所有搜索引擎蜘蛛抓取"/bin/cgi/"目錄,以及 "/tmp/"目錄和 /foo.html 文件,設(shè)置方法如下:
User-agent: *
Disallow: /bin/cgi/
Disallow: /tmp/
Disallow: /foo.html
例二:通過"/robots.txt"只允許某個(gè)搜索引擎抓取,而禁止其他的搜索引擎抓取。如:只允許名為"slurp"的搜索引擎蜘蛛抓取,而拒絕其他的搜索引擎蜘蛛抓取 "/cgi/" 目錄下的內(nèi)容,設(shè)置方法如下:
User-agent: *
Disallow: /cgi/
User-agent: slurp
Disallow:
例三:禁止任何搜索引擎抓取我的網(wǎng)站,設(shè)置方法如下:
User-agent: *
Disallow: /
例四:只禁止某個(gè)搜索引擎抓取我的網(wǎng)站如:只禁止名為“slurp”的搜索引擎蜘蛛抓取,設(shè)置方法如下:
User-agent: slurp
Disallow:/
例五:允許爬蟲訪問所有的目錄,有兩種寫法
User-agent: *
Disallow:
User-agent: *
Allow: /
例六:通配符的使用,攔截.gif文件
User-agent: *
Disallow: /*.gif$
例七:攔截帶有?的文件
User-agent: *
Disallow: /*?