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