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