大部分網(wǎng)站都有一個(gè)robots協(xié)議,也稱為,爬蟲協(xié)議或機(jī)器人協(xié)議。以文本文件格式存在,一般都叫做robots.txt,是網(wǎng)站告訴搜索引擎蜘蛛程序哪些頁(yè)面是可以抓取,哪些頁(yè)面是拒絕抓取的。當(dāng)搜索引擎蜘蛛來訪問網(wǎng)站的時(shí)候,第一件事就是先讀取robots文件,然后遵循協(xié)議進(jìn)行對(duì)網(wǎng)站進(jìn)行訪問抓取。如果網(wǎng)站不存在robots協(xié)議,那么會(huì)被視為可以抓取網(wǎng)站上的所有內(nèi)容。包括敏感隱私文件。所有建議是網(wǎng)站都應(yīng)該有robots協(xié)議。
robots協(xié)議算是用來確保網(wǎng)站隱私信息不被泄露,通過robots協(xié)議定義的規(guī)則對(duì)搜索引擎抓取網(wǎng)站內(nèi)容做了約定,說白話解釋,就是告訴蜘蛛,某些頁(yè)面是不對(duì)蜘蛛開放訪問的。一般存放在網(wǎng)站的根目錄,但是說白了,各大搜索引擎會(huì)抓取嗎?
個(gè)人覺得是都抓取的,可能只是在對(duì)頁(yè)面進(jìn)行加入索引庫(kù)的時(shí)候進(jìn)行處理,那些頁(yè)面不加入索引庫(kù),因?yàn)楫吘顾阉饕嬲f白了就是數(shù)據(jù)公司,不會(huì)放過每一個(gè)數(shù)據(jù)。當(dāng)然這個(gè)也只是猜測(cè),我們做網(wǎng)站優(yōu)化,對(duì)于robots文件做到我們應(yīng)該做的就好。
Robot 協(xié)議中加入網(wǎng)站后臺(tái)的話可用*號(hào)代替一些字符來保證安全。
Robots 協(xié)議能更好的輔助搜索引擎蜘蛛抓取我們的網(wǎng)站提高抓取效率。
網(wǎng)站上線后當(dāng)天如果還沒修改完畢可以利用
User-agent: * Disallow: /
來屏蔽所有搜索引擎蜘蛛
1、允許所有搜索引擎蜘蛛:
User-agent: * Allow: /
另一寫法:
User-agent: * Disallow:
2、僅允許特定的百度蜘蛛:
User-agent: baiduspider Allow:
3、攔截所有的搜索引擎蜘蛛:
User-agent: * Disallow: /
4、禁止所有搜索引擎訪問特定目錄:
User-agent: * Disallow: /cgi-bin/ Disallow: /images/ Disallow: /tmp/ Disallow: /private/
5、僅禁止壞爬蟲訪問特定目錄(BadBot用真實(shí)的名字代替):
User-agent: BadBot Disallow: /private/
6、禁止所有機(jī)器人訪問特定文件類型[2]:
User-agent: * Disallow: /*.php$ Disallow: /*.js$ Disallow: /*.inc$ Disallow: /*.css$
1,假設(shè)網(wǎng)站上的所有文件都同意蜘蛛抓取,沒有什么隱私文件可隱藏不見的。那是不是網(wǎng)站就可以不必要增加robots協(xié)議文件了呢?答案當(dāng)然是否定的。如果不存在robots協(xié)議文件,那搜索引擎蜘蛛將會(huì)對(duì)網(wǎng)站所有頁(yè)面都進(jìn)行抓取,包括404頁(yè)面,404頁(yè)面抓取收錄會(huì)對(duì)網(wǎng)站造成過多重復(fù)頁(yè)面的負(fù)面。而且蜘蛛訪問robots.txt的時(shí)候也是會(huì)給蜘蛛返回404錯(cuò)誤。
2,robots協(xié)議文件中設(shè)置所有文件都可以被蜘蛛抓取,并不能增加網(wǎng)站的收錄。網(wǎng)站程序中的一些腳本文件,CSS文件,IMG文件等等跟網(wǎng)站內(nèi)容不相關(guān)的文件也會(huì)被蜘蛛抓取,并不會(huì)對(duì)網(wǎng)站收錄有好的作用。甚至可能被認(rèn)為內(nèi)容與主題不符而被受到懲罰。那豈不是得不償失。
3,過多蜘蛛對(duì)所有文件進(jìn)行抓取,也完全是在浪費(fèi)服務(wù)器的資源,造成服務(wù)器卡頓,反而會(huì)影響用戶正常訪問,同時(shí)對(duì)蜘蛛訪問也有影響,如果蜘蛛抓取過慢會(huì)認(rèn)為網(wǎng)站打開過慢,不僅僅導(dǎo)致整個(gè)站點(diǎn)的頁(yè)面收錄受到影響,而且會(huì)被受到網(wǎng)站服務(wù)器過慢懲罰。
網(wǎng)站中不需要搜索引擎蜘蛛抓取的文件有:后臺(tái)管理文件、程序腳本、附件、數(shù)據(jù)庫(kù)文件、編碼文件、樣式表文件、模板文件、導(dǎo)航圖片和背景圖片等等。
可以在robots.txt文件中作出如下設(shè)置:
User-agent: * Disallow: /admin/ 后臺(tái)管理文件 Disallow: /require/ 程序文件 Disallow: /attachment/ 附件 Disallow: /images/ 圖片 Disallow: /data/ 數(shù)據(jù)庫(kù)文件 Disallow: /template/ 模板文件 Disallow: /css/ 樣式表文件 Disallow: /lang/ 編碼文件 Disallow: /script/ 腳本文件
如果你的網(wǎng)站是動(dòng)態(tài)網(wǎng)頁(yè),并且這些動(dòng)態(tài)網(wǎng)頁(yè)創(chuàng)建了靜態(tài)副本,方便搜索蜘蛛更容易抓取。那么你需要在robots.txt文件里設(shè)置避免動(dòng)態(tài)網(wǎng)頁(yè)被蜘蛛索引,以保證這些網(wǎng)頁(yè)不會(huì)被視為含重復(fù)內(nèi)容。
robots.txt文件里還可以直接包括在sitemap文件的鏈接。
就像這樣:Sitemap: http://m.hkass.cn/sitemap.xml
目前對(duì)此表示支持的搜索引擎公司有Google, Yahoo, Ask and MSN。而中文搜索引擎公司,顯然不在這個(gè)圈子內(nèi)。這樣做的好處就是,站長(zhǎng)不用到每個(gè)搜索引擎的站長(zhǎng)工具或者相似的站長(zhǎng)平臺(tái),去提交自己的sitemap文件,搜索引擎的蜘蛛自己就會(huì)抓取robots.txt文件,讀取其中的sitemap路徑,接著抓取其中相鏈接的網(wǎng)頁(yè)。
合理使用robots.txt文件還能避免訪問時(shí)出錯(cuò)。比如,不能讓搜索者直接進(jìn)入購(gòu)物車頁(yè)面。因?yàn)闆]有理由使購(gòu)物車被收錄,所以你可以在robots.txt文件里設(shè)置來阻止搜索者直接進(jìn)入購(gòu)物車頁(yè)面。
禁止快照編輯,要防止所有搜索引擎顯示您網(wǎng)站的快照,請(qǐng)將此元標(biāo)記置入網(wǎng)頁(yè)<HEAD> 部分:
<meta name="robots" content="noarchive">
要允許其他搜索引擎顯示快照,但僅防止百度搜索引擎顯示,請(qǐng)使用以下標(biāo)記:
<meta name="Baiduspider" content="noarchive">
google蜘蛛:googlebot
百度蜘蛛:baiduspider
搜狗蜘蛛:sogouspider
360蜘蛛:360Spider
yahoo蜘蛛:slurp
alexa蜘蛛:ia_archiver
msn蜘蛛:msnbot
altavista蜘蛛:scooter
lycos蜘蛛:lycos_spider_(t-rex)
alltheweb蜘蛛:fast-webcrawler/
inktomi蜘蛛:slurp
Robots協(xié)議并不是多么高級(jí)的技術(shù),而只是互聯(lián)網(wǎng)中一種各個(gè)機(jī)構(gòu)互相尊重的協(xié)議,好比私家花園的門口掛著“閑人免進(jìn)”,尊重者繞道而行,不尊重者依然可以推門而入。目前,Robots協(xié)議在實(shí)際使用中,還存在一些無法解決的問題。
比如:robots.txt本身也是網(wǎng)站文件,也是需要抓取的,蜘蛛爬蟲出于效率考慮,一般不會(huì)每次抓取網(wǎng)站網(wǎng)頁(yè)之前都爬取一遍robots.txt,本來robots.txt更新就不頻繁。通常爬蟲的做法是先抓取一次,解析后緩存下來,而且是相當(dāng)長(zhǎng)的時(shí)間不會(huì)再次抓取robots.txt。假設(shè)網(wǎng)站管理員更新了robots.txt,修改了某些規(guī)則,但是對(duì)爬蟲來說并不會(huì)立刻生效,只有當(dāng)爬蟲下次抓取robots.txt之后才能看到最新的內(nèi)容。尷尬的是,爬蟲下次抓取robots.txt的時(shí)間并不是由網(wǎng)站管理員控制的。所以,有些搜索引擎提供了web工具可以讓網(wǎng)站管理員通知搜索引擎那個(gè)url發(fā)生了變化,建議重新抓取。
注意,此處是建議,即使你通知了搜索引擎,搜索引擎何時(shí)抓取仍然是不確定的,只是比完全不通知要好點(diǎn)。至于好多少,那就看搜索引擎的良心和技術(shù)能力了。
在互聯(lián)網(wǎng)的大部分公司,有些爬蟲不太遵守或者完全忽略robots.txt,不排除開發(fā)人員能力的問題,比如說根本不知道robots.txt。另外,本身robots.txt不是一種強(qiáng)制措施,也根本沒有辦法強(qiáng)制阻止爬蟲抓取網(wǎng)站內(nèi)容,當(dāng)然如果網(wǎng)站有數(shù)據(jù)需要保密,必須采取加密的技術(shù)措施,比如說:用戶驗(yàn)證,內(nèi)容加密傳輸,ip白名單黑名單攔截,訪問頻率控制攔截等等技術(shù)手段來對(duì)惡意爬取進(jìn)行規(guī)避。
在互聯(lián)網(wǎng)世界中,每天每時(shí)每刻都有不計(jì)其數(shù)的爬蟲在日夜不息地爬取數(shù)據(jù),其中惡意爬蟲的數(shù)量遠(yuǎn)遠(yuǎn)高于非惡意爬蟲。但是并不是每個(gè)爬蟲都會(huì)主動(dòng)遵守Robots協(xié)議。
惡意爬蟲可以帶來很多潛在威脅,比如電商網(wǎng)站的商品信息被爬取可能會(huì)被競(jìng)爭(zhēng)對(duì)手利用,過多的爬蟲還會(huì)占用帶寬資源、甚至導(dǎo)致網(wǎng)站宕機(jī)。
反惡意爬蟲是一件漫長(zhǎng)而艱巨的任務(wù),如果依靠自身實(shí)力難以解決,可以借助業(yè)務(wù)風(fēng)險(xiǎn)分析平臺(tái)來反惡意爬蟲,根據(jù)自己的需求來定制功能。而且對(duì)于惡意爬蟲是可以對(duì)其進(jìn)行電子取證,如果有涉及到對(duì)自身網(wǎng)站有造成經(jīng)濟(jì)損失的,可以對(duì)惡意爬蟲所屬公司個(gè)人進(jìn)行起訴要求賠償?shù)摹?/p>