如何查看robots協議?怎么寫?


如何查看robots協議?怎么寫?

  對於seo來講,robots文件非常重要。搜索引擎爬蟲爬取的網站的第一個文件便是這個文件,這個文件告訴搜索引擎網站的那些內容可以被爬取,那些內容不能被爬取,或者說禁止爬取。怎么查看robots協議l?可以使用這種辦法,主域名/robots.txt。

  怎么寫robots協議?

  當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,所有的搜索蜘蛛將能夠訪問網站上所有沒有被口令保護的頁面。

  一、什么是Robots協議

  Robots協議(也稱為爬蟲協議、機器人協議等)的全稱是“網絡爬蟲排除標准”(Robots Exclusion Protocol),網站通過Robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取,對於seo來講,意義重大。

  robots是一個協議,而不是一個命令。robots.txt文件是一個文本文件,是放置在網站根目錄下,使用任何一個常見的文本編輯器,就可以創建和編輯它。robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件,其主要的作用就是告訴蜘蛛程序在服務器上什么文件是可以被查看的。

  robots協議文件的寫法及語法屬性解釋-seo

  如果將網站視為一個房間,robots.txt就是主人在房間門口懸掛的“請勿打擾”或“歡迎進入”的提示牌。這個文件告訴來訪的搜索引擎哪些房間可以進入和參觀,哪些房間因為存放貴重物品,或可能涉及住戶及訪客的隱私而不對搜索引擎開放。但robots.txt不是命令,也不是防火牆,如同守門人無法阻止竊賊等惡意闖入者。

  所以,seo建議各位站長僅當您的網站包含不希望被搜索引擎收錄的內容時,才需要使用robots.txt文件,如果您希望搜索引擎收錄網站上所有內容,請勿建立robots.txt文件。

  二、Robots協議的原則

  Robots協議是國際互聯網界通行的道德規范,基於以下原則建立:

  1、搜索技術應服務於人類,同時尊重信息提供者的意願,並維護其隱私權;

  2、網站有義務保護其使用者的個人信息和隱私不被侵犯。

  robots協議文件的寫法及語法屬性解釋-seo

  三、Robots協議的寫法

  robots.txt放到一個站點的根目錄下即可,一個robots.txt只能控制相同協議,相同端口,相同站點的網頁抓取策略。

  1、robots.txt的常規寫法

  最簡單的robots.txt只有兩條規則:

  User-agent:指定對哪些爬蟲生效

  Disallow:指定要屏蔽的網址

  整個文件分為x節,一節由y個User-agent行和z個Disallow行組成。一節就表示對User-agent行指定的y個爬蟲屏蔽z個網址。這里x>=0,y>0,z>0。x=0時即表示空文件,空文件等同於沒有robots.txt。

  下面詳細介紹這兩條規則:

  (1)、User-agent

  爬蟲抓取時會聲明自己的身份,這就是User-agent,沒錯,就是http協議里的User-agent,robots.txt利用User-agent來區分各個引擎的爬蟲。

  舉例說明:google網頁搜索爬蟲的User-agent為Googlebot,下面這行就指定google的爬蟲。

  User-agent:Googlebot

  如果想指定所有的爬蟲怎么辦?不可能窮舉啊,可以用下面這一行:

  User-agent: *

  可能有的同學要問了,我怎么知道爬蟲的User-agent是什么?這里提供了一個簡單的列表:爬蟲列表

  當然,你還可以查相關搜索引擎的資料得到官方的數據,比如說google爬蟲列表,百度爬蟲列表

  (2)、Disallow

  Disallow行列出的是要攔截的網頁,以正斜線 (/) 開頭,可以列出特定的網址或模式。

  要屏蔽整個網站,使用正斜線即可,如下所示:

  Disallow: /

  要屏蔽某一目錄以及其中的所有內容,在目錄名后添加正斜線,如下所示:

  Disallow: /無用目錄名/

  要屏蔽某個具體的網頁,就指出這個網頁,如下所示:

  Disallow: /網頁.html

  舉例:

  User-agent: baiduspider

  Disallow: /

  User-agent: Googlebot

  Disallow: /

  seo解釋:意思也就是禁止百度蜘蛛和Google蜘蛛抓取所有文章

  2、robots.txt的高級寫法

  首先聲明:高級玩法不是所有引擎的爬蟲都支持,一般來說,作為搜索引擎seo技術領導者的谷歌支持的最好。

  (1)、allow

  如果需要屏蔽seo1-seo100,但是不屏蔽seo50,那我們該怎么辦呢?

  方案1:

  Disallow:/seo1/

  Disallow:/seo2/

  ...

  Disallow:/seo49/

  Disallow:/seo51/

  ...

  Disallow:/seo100/

  方案2:

  Disallow:/seo

  Allow:/seo50/

  對比以上2個方案,大家應該知道allow的用法了吧,如果你網站目前也有這個需求的話,seo技術建議你可以使用方案2來解決。

  但如果想屏蔽seo50下面的文件seo.htm,又該怎么辦呢?

  Disallow:/seo

  Allow:/seo50/

  Disallow:/seo50/seo.html

  聰明的你一定能發現其中的規律,對吧?誰管的越細就聽誰的。

  (2)、sitemap

  前面說過爬蟲會通過網頁內部的鏈接發現新的網頁,但是如果沒有連接指向的網頁怎么辦?或者用戶輸入條件生成的動態網頁怎么辦?能否讓網站管理員通知搜索引擎他們網站上有哪些可供抓取的網頁?這就是sitemap。

  最簡單的Sitepmap形式就是XML文件,在其中列出網站中的網址以及關於每個網址的其他數據(上次更新的時間、更改的頻率以及相對於網站上其他網址的重要程度等等),利用這些信息搜索引擎可以更加智能地抓取網站內容。

  新的問題來了,爬蟲怎么知道這個網站有沒有提供sitemap文件,或者說網站管理員生成了sitemap(可能是多個文件),爬蟲怎么知道放在哪里呢?

  由於robots.txt的位置是固定的,於是大家就想到了把sitemap的位置信息放在robots.txt里,這就成為robots.txt里的新成員了,比如:

  sitemap: http://www.xminseo.com/sitemap.html

  考慮到一個網站的網頁眾多,sitemap人工維護不太靠譜,對此,seo建議你可以使用google提供了工具可以自動生成sitemap。

  (3)、meta tag

  其實嚴格來說這部分內容不屬於robots.txt,不過也算非常相關,我也不知道放哪里合適,暫且放到這里吧。

  robots.txt的初衷是為了讓網站管理員管理可以出現在搜索引擎里的網站內容。但是,即使使用robots.txt文件讓爬蟲無法抓取這些內容,搜索引擎也可以通過其他方式找到這些網頁並將它添加到索引中。

  例如,其他網站仍可能鏈接到該網站,因此,網頁網址及其他公開的信息(如指向相關網站的鏈接中的定位文字或開放式目錄管理系統中的標題)有可能會出現在引擎的搜索結果中,如果想徹底對搜索引擎隱身那咋整呢?seo給你的答案是:元標記,即meta tag。

  比如要完全阻止一個網頁的內容列在搜索引擎索引中(即使有其他網站鏈接到此網頁),可使用noindex元標記。只要搜索引擎查看該網頁,便會看到noindex元標記並阻止該網頁顯示在索引中,這里注意noindex元標記提供的是一種逐頁控制對網站的訪問的方式。

  比如:要防止所有搜索引擎將網站中的網頁編入索引,那你就可以在網頁的頭部代碼部分添加:

  <meta name="robots" content="noindex">

  這里的name取值可以設置為某個搜索引擎的User-agent從而指定屏蔽某一個搜索引擎。

  除了noindex外,還有其他元標記,比如說nofollow,禁止爬蟲從此頁面中跟蹤鏈接。這里seo再提一句:noindex和nofollow在HTML 4.01規范里有描述,但是其他tag的在不同引擎支持到什么程度各不相同,還請讀者自行查閱各個引擎的說明文檔。

  (4)、Crawl-delay

  除了控制哪些可以抓哪些不能抓之外,robots.txt還可以用來控制爬蟲抓取的速率。如何做到的呢?通過設置爬蟲在兩次抓取之間等待的秒數。

  Crawl-delay:5

  表示本次抓取后下一次抓取前需要等待5秒。

  seo提醒大家一點:google已經不支持這種方式了,不過在webmaster tools里提供了一個功能可以更直觀的控制抓取速率。

  這里插一句題外話,幾年前seo記得曾經有一段時間robots.txt還支持復雜的參數:Visit-time,只有在visit-time指定的時間段里,爬蟲才可以訪問;Request-rate: 用來限制URL的讀取頻率,用於控制不同的時間段采用不同的抓取速率。

  后來估計支持的人太少,就漸漸的廢掉了,有興趣的博友可以自行研究一下,seo了解到的是目前google和baidu都已經不支持這個規則了,其他小的引擎公司貌似從來都沒有支持過。

  四、Robots協議中的語法屬性解釋

  Robots協議用來告知搜索引擎哪些頁面能被抓取,哪些頁面不能被抓取;可以屏蔽一些網站中比較大的文件,如圖片,音樂,視頻等,節省服務器帶寬;也可以屏蔽站點的一些死鏈接,方便搜索引擎抓取網站內容;再或者是設置網站地圖連接,方便引導蜘蛛爬取頁面。

  User-agent: * 這里的*代表的所有的搜索引擎種類,*是一個通配符。

  Disallow: /admin/ 這里定義是禁止爬尋admin目錄下面的目錄。

  Disallow: /mahaixiang/*.htm 禁止訪問/mahaixiang/目錄下的所有以".htm"為后綴的URL(包含子目錄)。

  Disallow: /*?* 禁止訪問網站中所有包含問號 (?) 的網址。

  Disallow: /.jpg$ 禁止抓取網頁所有的.jpg格式的圖片。

  Disallow:/mahaixiang/abc.html 禁止爬取ab文件夾下面的adc.html文件。

  Allow: /mahaixiang/ 這里定義是允許爬尋mahaixiang目錄下面的目錄。

  Allow: /mahaixiang 這里定義是允許爬尋mahaixiang的整個目錄。

  Allow: .htm$ 僅允許訪問以".htm"為后綴的URL。

  Allow: .gif$ 允許抓取網頁和gif格式圖片。

  Sitemap: /sitemap.html 告訴爬蟲這個頁面是網站地圖。

  舉例:

  User-agent: *

  Disallow: /?*

  Disallow: /seo/*.htm

  User-agent: EtaoSpider

  Disallow: /

  seo解釋:意思就是有禁止所有搜索引擎來抓網站中所有包含問號 (?) 的網址和seo目錄下的.htm文章。同時,對etao完全屏蔽。

  五、Robots協議中的其它語法屬性

  1、Robot-version: 用來指定robot協議的版本號

  例子: Robot-version: Version 2.0

  2、Crawl-delay:雅虎YST一個特定的擴展名,可以通過它對我們的抓取程序設定一個較低的抓取請求頻率。

  您可以加入Crawl-delay:xx指示,其中,“XX”是指在crawler程序兩次進入站點時,以秒為單位的最低延時。

  3、Crawl-delay:定義抓取延遲

  例子: Crawl-delay:/mahaixiang/

  4、Visit-time: 只有在visit-time指定的時間段里,robot才可以訪問指定的URL,否則不可訪問。

  例子: Visit-time: 0100-1300 #允許在凌晨1:00到13:00訪問

  5、Request-rate: 用來限制URL的讀取頻率

  例子: Request-rate: 40/1m 0100 - 0759 在1:00到07:59之間,以每分鍾40次的頻率進行訪問。

  Request-rate: 12/1m 0800 - 1300 在8:00到13:00之間,以每分鍾12次的頻率進行訪問。

  seo點評:

  Robots協議是網站出於安全和隱私考慮,防止搜索引擎抓取敏感信息而設置的,搜索引擎的原理是通過一種爬蟲spider程序,自動搜集互聯網上的網頁並獲取相關信息。

  而鑒於網絡安全與隱私的考慮,每個網站都會設置自己的Robots協議,來明示搜索引擎,哪些內容是願意和允許被搜索引擎收錄的,哪些則不允許,搜索引擎則會按照Robots協議給予的權限進行seo抓取。

  Robots協議代表了一種契約精神,互聯網企業只有遵守這一規則,才能保證網站及用戶的隱私數據不被侵犯,違背Robots協議將帶來巨大安全隱憂。
---------------------
作者:小明seo
來源:CSDN
原文:https://blog.csdn.net/seoyyedu/article/details/78673241
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

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



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