• 企業互聯專業網站定制+品牌網站設計+集團網站建設
    400 0082 880
    robots協議** 容易忽略卻很致命的小細節
    擁抱趨勢 專業優化 快速打造能賺錢的網站
    馬上咨詢
    2016-12-09 09:40:53閱讀:370來源:seo優化公司作者:企業互聯
    [導語]為您推薦文章《robots協議** 容易忽略卻很致命的小細節》(本文主要講述:如果確有支持那是我孤陋寡聞了,歡迎留言告知。txt比較啰嗦,有興趣的同學可以簡化一下。同學們都知道網頁是通過超級鏈接互相關聯起來的,從而形成了網頁的網狀結構。在此次索賠案件中,百度稱自己的Robots文本中已設定不允許360爬蟲進入,而360的爬蟲依然對“百度知道”、“百度百科”等百度網站內容進行抓取。泄密** 后,robots......)如果你對文章有興趣,歡迎關注我們
    本文對370人有所幫助,共有3548個文字,預計閱讀所需時間9分鐘

    robots協議** 容易忽略卻很致命的小細節

      淘寶搜索技術博客:robots協議知識大全

      很久之前北京市第一中級人民法院正式受理了百度訴奇虎360違反“Robots協議”抓取、復制其網站內容的不正當競爭行為一案,索賠金額高達一億元,這可以看做2012年下半年“3B大戰”的繼續。在此次索賠案件中,百度稱自己的Robots文本中已設定不允許360爬蟲進入,而360的爬蟲依然對“百度知道”、“百度百科”等百度網站內容進行抓取。

      其實早在2012年11月初,針對雙方摩擦加劇的情況,在國內互聯網協會的牽頭下,包括百度、新浪、奇虎360在內的12家互聯網公司已共同簽署了《互聯網搜索引擎服務自律公約》,在公約第七條承諾“遵循國外通行的行業慣例與商業規則,遵守機器人協議(robots協議)。

      玩轉robots協議 經驗心得

      今天就找個機會聊聊一夜成名的robots協議,robots協議知識大全。

      初識robots協議

      什么是robots

      要了解robots協議首先要了解robots,本文說的robots不是《I,robot》里的威爾·史密斯,不是《機器人總動員》里的瓦力和伊娃,不是《終結者》系列中的施瓦辛格。什么?這些經典電影你都不知道?好吧,算我想多了。本文的robots特指搜索引擎領域的Web robots,這個名字可能很多人不熟悉,但是提到Web Wanderers,Crawlers和Spiders很多人可能就恍然大悟了,在中文里我們統稱為爬蟲或者網絡爬蟲,也就是搜索引擎抓取互聯網網頁的程序。

      同學們都知道網頁是通過超級鏈接互相關聯起來的,從而形成了網頁的網狀結構。爬蟲的工作方式就像蜘蛛在網上沿著鏈接爬來爬去,** 基本的流程可以簡化如下:

      1.喂給爬蟲一堆url,我們稱之為種子(seeds)

      2.爬蟲抓取seeds,解析html網頁,抽取其中的超級鏈接

      3.爬蟲接著抓取這些新發現的鏈接指向的網頁

      2,3循環往復

      什么是robots協議

      了解了上面的流程就能看到對爬蟲來說網站非常被動,只有老老實實被抓取的份。存在這樣的需求:

      1.某些路徑下是個人隱私或者網站管理使用,不想被搜索引擎抓取,比如說日本愛情動作片

      2.不喜歡某個搜索引擎,不愿意被他抓取,** 有名的就是之前淘寶不希望被百度抓取

      3.小網站使用的是公用的虛擬主機,流量有限或者需要付費,希望搜索引擎抓的溫柔點

      4.某些網頁是動態生成的,沒有直接的鏈接指向,但是希望內容被搜索引擎抓取和索引

      網站內容的所有者是網站管理員,搜索引擎應該尊重所有者的意愿,為了滿足以上等等,就需要提供一種網站和爬蟲進行溝通的途徑,給網站管理員表達自己意愿的機會。有需求就有供應,robots協議就此誕生。Robots協議,學名叫:the Robots Exclusion Protocol,就搜索引擎抓取網站內容的范圍作了約定,包括網站是否希望被搜索引擎抓取,哪些內容不允許被抓取,把這些內容放到一個純文本文件robots.txt里,然后放到站點的根目錄下。爬蟲抓取網站內容前會先抓取robots.txt,據此“自覺地”抓取或者不抓取該網頁內容,其目的是保護網站數據和敏感信息、確保用戶個人信息和隱私不被侵犯。

      需要注意的是robots協議并非是規范,只是行業內一個約定俗成的協議。什么意思呢?Robots協議不是什么技術壁壘,而只是一種互相尊重的協議,好比私家花園的門口掛著“閑人免進”,尊重者繞道而行,不尊重者依然可以推門而入,比如說360。

      說了這么多,看幾個有名的例子感覺一下先:

      例子1:淘寶

      User-agent: BaIDuspider

      Disallow: /

      User-agent: baiduspider

      Disallow: /

      程序猿,你懂的。這不就是淘寶不想讓百度抓取嘛

      例子2:京東

      User-agent: *

      Disallow: /?*

      Disallow: /pop/*.HTMl

      User-agent: EtaoSpider

      Disallow: /

      這個也不復雜,京東有2個目錄不希望所有搜索引擎來抓。同時,對etao完全屏蔽。

      基本玩法

      robots.txt的位置

      說簡單也簡單,robots.txt放到一個站點的根目錄下即可。說復雜也有點小復雜,一個robots.txt只能控制相同協議,相同端口,相同站點的網頁抓取策略。什么意思呢?看個例子** 清楚:

      百度網頁搜索

      百度知道

      這兩個robots.txt的內容是不同的,也就是說百度網頁搜索和百度知道的抓取策略可以由自己獨立的robots.txt來控制,井水不犯河水。

      robots.txt的內容

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

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

      2.Disallow:指定要屏蔽的網址

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

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

      User-agent

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

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

      User-agent:Googlebot

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

      User-agent: *

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

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

      Disallow

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

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

      Disallow: /

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

      Disallow: /無用目錄名/

      要屏蔽某個具體的網頁,就指出這個網頁。

      Disallow: /網頁.html

      Disallow還可以使用前綴和通配符。

      要屏蔽目錄a1-a100,可以使用上面的方式寫100行,或者

      Disallow:/a

      但是需要注意,這樣會把任何以a開頭的目錄和文件也屏蔽,慎用。如果需要屏蔽a1-a100,但是不屏蔽a50,怎么辦?同學們可以思考一下,這個問題我們留到下一節。

      要阻止特定類型的文件(如 .gif),請使用以下內容:

      Disallow: /*.gif$

      *匹配任意個字符,$匹配url結束,具體就不解釋了吧,不了解的同學去自學一下通配符。

      提示一下,Disallow的內容區分大小寫。例如,Disallow: /junkfile.asp 會屏蔽 junkfile.asp,卻會允許Junk_file.asp。

      ** ** 后,通配符不是所有搜索引擎都支持,使用要小心。沒辦法,誰讓robots.txt沒有一個大家都承認的標準呢。

      實例 ###

      百度網頁搜索

      User-agent: Baiduspider

      Disallow: /baidu

      Disallow: /s?

      User-agent: Googlebot

      Disallow: /baidu

      Disallow: /s?

      Disallow: /shifen/

      Disallow: /homepage/

      Disallow: /cpro

      User-agent: MSNBot

      Disallow: /baidu

      Disallow: /s?

      Disallow: /shifen/

      Disallow: /homepage/

      Disallow: /cpro

      …

      現在讀懂這個應該毫無壓力了吧,順便說一句百度的robots.txt比較啰嗦,有興趣的同學可以簡化一下。

      高階玩法

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

      例子:google robots.txt

      allow

      還記得上面的問題嗎?如果需要屏蔽a1-a100,但是不屏蔽a50,怎么辦?

      方案1:

      Disallow:/a1/

      Disallow:/a2/

      …

      Disallow:/a49/

      Disallow:/a51/

      …

      Disallow:/a100/

      方案2:

      Disallow:/a

      Allow:/a50/

      ok,allow大家會用了吧。

      順便說一句,如果想屏蔽a50下面的文件private.html,咋整?

      Disallow:/a

      Allow:/a50/

      Disallow:/a50/private.html

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

      sitemap

      前面說過爬蟲會通過網頁內部的鏈接發現新的網頁。但是如果沒有連接指向的網頁怎么辦?或者用戶輸入條件生成的動態網頁怎么辦?能否讓網站管理員通知搜索引擎他們網站上有哪些可供抓取的網頁?這就是sitemap,** 簡單的 Sitepmap 形式就是 XML 文件,在其中列出網站中的網址以及關于每個網址的其他數據(上次更新的時間、更改的頻率以及相對于網站上其他網址的重要程度等等),利用這些信息搜索引擎可以更加智能地抓取網站內容。

      sitemap是另一個話題,足夠開一篇新的文章聊的,這里就不展開了,有興趣的同學可以參考sitemap

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

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

      節選一段google robots.txt:

      Sitemap:

      Sitemap:

      插一句,考慮到一個網站的網頁眾多,sitemap人工維護不太靠譜,google提供了工具可以自動生成sitemap。

      meta tag

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

      robots.txt的初衷是為了讓網站管理員管理可以出現在搜索引擎里的網站內容。但是,即使使用 robots.txt 文件讓爬蟲無法抓取這些內容,搜索引擎也可以通過其他方式找到這些網頁并將它添加到索引中。例如,其他網站仍可能鏈接到該網站。因此,網頁網址及其他公開的信息(如指向相關網站的鏈接中的定位文字或開放式目錄管理系統中的標題)有可能會出現在引擎的搜索結果中。如果想**對搜索引擎隱身那咋整呢?答案是:元標記,即meta tag。

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

      舉例:

      要防止所有搜索引擎將網站中的網頁編入索引,在網頁的

      部分添加:

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

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

      Crawl-delay

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

      Crawl-delay:5

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

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

      這里插一句題外話,幾年前我記得曾經有一段時間robots.txt還支持復雜的參數:Visit-time,只有在visit-time指定的時間段里,爬蟲才可以訪問;Request-rate: 用來限制URL的讀取頻率,用于控制不同的時間段采用不同的抓取速率。后來估計支持的人太少,就漸漸的廢掉了,有興趣的同學可以自行google。我了解到的是目前google和baidu都已經不支持這個規則了,其他小的引擎公司貌似從來都沒有支持過。如果確有支持那是我孤陋寡聞了,歡迎留言告知。

      真的有用?

      好吧,到此為止robots.txt相關的東東介紹的也七七八八了,能堅持看到這里的同學估計都躍躍欲試了,可惜,我要潑盆冷水,能完全指望robots.txt保護我們網站的內容嗎?不一定。否則百度和360就不用打官司了。

      協議一致性

      第一個問題是robots.txt沒有一個正式的標準,各個搜索引擎都在不斷的擴充robots.txt功能,這就導致每個引擎對robots.txt的支持程度各有不同,更不用說在某個功能上的具體實現的不同了。

      緩存

      第二個問題是robots.txt本身也是需要抓取的,出于效率考慮,一般爬蟲不會每次抓取網站網頁前都抓一下robots.txt,加上robots.txt更新不頻繁,內容需要解析。通常爬蟲的做法是先抓取一次,解析后緩存下來,而且是相當長的時間。假設網站管理員更新了robots.txt,修改了某些規則,但是對爬蟲來說并不會立刻生效,只有當爬蟲下次抓取robots.txt之后才能看到** 新的內容。尷尬的是,爬蟲下次抓取robots.txt的時間并不是由網站管理員控制的。當然,有些搜索引擎提供了web 工具可以讓網站管理員通知搜索引擎那個url發生了變化,建議重新抓取。注意,此處是建議,即使你通知了搜索引擎,搜索引擎何時抓取仍然是不確定的,只是比完全不通知要好點。至于好多少,那就看搜索引擎的良心和技術能力了。

      ignore

      第三個問題,不知是無意還是有意,反正有些爬蟲不太遵守或者完全忽略robots.txt,不排除開發人員能力的問題,比如說根本不知道robots.txt。另外,本身robots.txt不是一種強制措施,如果網站有數據需要保密,必需采取技術措施,比如說:用戶驗證,加密,ip攔截,訪問頻率控制等。

      偷偷的抓

      第四個問題,即使采用了種種限制,仍然存在某些惡意的抓取行為能突破這些限制,比如一些利用肉雞進行的抓取。悲觀的說,只要普通用戶可以訪問,就不能完全杜絕這種惡意抓取的行為。但是,可以通過種種手段使抓取的代價增大到讓對方無法接受。比如說:Captcha, Ajax用戶行為驅動的異步加載等等。這個就不屬于本文討論的范疇了。

      泄密

      ** 后,robots.txt本身還存在泄密的風險。舉例,如果某一個網站的robots.txt里突然新增了一條:Disallow /map/,你想到了什么?是不是要推出地圖服務了?于是有好奇心的同學就會開始嘗試各種文件名去訪問該路徑下的文件,希望能看到驚喜。貌似當初google的地圖就是這么被提前爆出來的,關于這點我不太確定,大家就當八卦聽聽好了。

      來源:淘寶搜索技術博客

      淘寶搜索技術博客2017-10-23 08:41 回復

    如何優化:
    網站url改版不收錄 網站建設哪個 奉賢網站改版哪家好 公司網站改版價格會變嗎 網站改版注意哪些 陽江網站開發 孝義網站定制公司 日本跨境選品軟件網站開發 本溪網站定制報價 鄭州旅游網站開發運營
    總訪問數:43997409 文章總數:13552 建站天數:3095
    相關閱讀
    01
    優化中的列表頁和內容頁可以使用哪些技術
      企業網站可以完全覆蓋甚至壟斷大量行業關鍵詞。** 后,seo可以從主頁引入更多的鏈接支持,而網站外部可以為關鍵頁引入更多的鏈接支持,以增強這些頁排名的能力。** 后,seo可以從主頁引入更多的鏈接支持,而網站外部可以為關鍵頁引入更多的鏈接支持,以增強這些頁排名的能力。對于文章列表頁:1但優化具有一定的競爭性,流量較大關鍵詞,畢竟文章列表頁面排名的能力相對較強;2因為文章列表頁面經常更新文章,列表頁面第一頁......[詳情查看]
    02
    seo中關于關鍵詞的內部競爭怎么避免?
      有些站長有這樣的認為,一個關鍵詞出現的次數多了就會獲得比較好的排名,其實這個是一個誤區,不同的頁面出現同一個詞,只會造成內部競爭,無論你有多少個頁面出現同一個關鍵詞,搜索引擎也只會挑選出一個更相關的頁面排在前面。接著把對應的URL地址也記錄下來,它們是對應的關系,一個長尾關鍵詞對應一個URL,這樣就能很好規避關鍵詞的內部競爭,只有在文章自然提到其他文章時,才加上鏈接導向。合理的進行關鍵詞的布局,對......[詳情查看]
    03
    SEO不需求為廣告付費網站制作有規律可循
      網站域名與空間一個網站首先要有一個域名,網站域名后綴一般選擇。網站建設域名,空間,設計,之后就是網站建設了,主要分為前端與后臺。4。5。網站域名與空間一個網站首先要有一個域名,網站域名后綴一般選擇......[詳情查看]
    04
    網站seo的SEO關鍵詞組合方法
      上面是五個關鍵詞優化關鍵詞的組合。網頁內容是網頁seo的基礎,網頁內容與關鍵詞相輔相成。我們可以將知名品牌以不同的形式融入到網站的內容中,從而促進網站的流量,提高關鍵詞的排名。產品或服務品牌模式(品牌名稱、通用模式等)這里提到的品牌可以是自己的品牌,或可以是其他品牌,甚至是競爭對手的品牌;可以是知名品牌,也可以是非知名產品;這里提到的模型是指行業標準、規格和其他技術參數。當然,有許多方法的組合,不......[詳情查看]
    05
    B2C商城怎么增加網絡產品的銷量?
      B2C商城怎么增加網絡產品的銷量?不管你做什么事情,戰略和定位都是不能缺少的,尤其是對電子商務來講,更是重要。首先來看產品銷量的構成,幾個簡單的公式:產品銷量=訪客數量×訪客訂單轉化率×平均訂單產品數量產品銷量=新客戶訂單數量×新客戶平均訂單產品數量+老客戶訂單數量×老客戶訂單產品數量產品銷量=SEO訪客數量×SEO客戶平均訂單產品數量+其他途徑訂單產品數量看了這幾個公式,你可能會有點看不太懂,既......[詳情查看]
    06
    如何將SEO與論壇促銷結合起來
      這些聯盟的特點是投資很小,不點擊不產生成本,小投入的網絡聯盟推廣可以取得很好的品牌推廣效果。5,個人建議的一種付費促銷方式:企業也可以考慮做一些在線聯盟推廣,如百度聯盟、谷歌聯盟等。C,效果如何?答:** 終的效果是在推廣者發布的帖子、問題和信息的搜索引擎中獲得良好的排名seo網站優化網頁的title用于告訴用戶和搜索引擎這個網頁的主要內容是什么,而且當用戶在百度網頁搜索中搜索到你的網頁時,title......[詳情查看]
    07
    網站怎么做移動端seo排名?方法及技巧講解
      網站進行了MIP改造后,還是有很多的顯著優勢,如百度“閃電算法”明確表示網站打開速度直接影響網站排名,做了MIP改造的WAP站點在手機端還會顯示閃電圖標。學習和掌握移動SEO也是需要技巧的,在國內,無論是PC端還是移動端的搜索流量,百度始終是龍頭老大,所以我們站長更多的是關注怎么做好百度移動端wap關鍵詞排名。這也就導致了很多的站長都開始重視網站移動端的排名了。然后我們需要做好移動適應工作。不可能......[詳情查看]
    08
    網站seo的開始及穩定網站排名
      ** 后大致估算競爭對手網站的流量狀況,在Alexa上的排名(這個不是很準確)和其他站長工具進行查詢,整站seo在這里推薦谷歌的GoogletrendsforWebsite工具,這樣可以對競爭對手網站的大概流量進行初步了解,流量的大小也從一個方面反映了網站seo的成效。當我們的網站獲網絡推廣得排名之后,接下來就要關注網站的跳出率問題,通過網站的跳出率我們可以判斷哪些頁面比較受客戶歡迎,而那些頁面不受客......[詳情查看]
    三上悠亚在线