亚洲精品视频一区二区,一级毛片在线观看视频,久久国产a,狠狠狠色丁香婷婷综合久久五月,天天做天天欢摸夜夜摸狠狠摸

在線(xiàn)客服與您一對一交流
當前位置: 主頁(yè) > 行業(yè)新聞 > seo >

帶你玩轉robots協(xié)議,新手必備

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

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

  今天就找個(gè)機會(huì )聊聊一夜成名的robots協(xié)議。

  初識robots協(xié)議

  什么是robots

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

  同學(xué)們都知道網(wǎng)頁(yè)是通過(guò)超級鏈接互相關(guān)聯(lián)起來(lái)的,從而形成了網(wǎng)頁(yè)的網(wǎng)狀結構。爬蟲(chóng)的工作方式就像蜘蛛在網(wǎng)上沿著(zhù)鏈接爬來(lái)爬去,最基本的流程可以簡(jiǎn)化如下:

  1.喂給爬蟲(chóng)一堆url,我們稱(chēng)之為種子(seeds)2.爬蟲(chóng)抓取seeds,解析html網(wǎng)頁(yè),抽取其中的超級鏈接3.爬蟲(chóng)接著(zhù)抓取這些新發(fā)現的鏈接指向的網(wǎng)頁(yè)

  2,3循環(huán)往復

  什么是robots協(xié)議

  了解了上面的流程就能看到對爬蟲(chóng)來(lái)說(shuō)網(wǎng)站非常被動(dòng),只有老老實(shí)實(shí)被抓取的份。存在這樣的需求:

  1.某些路徑下是個(gè)人隱私或者網(wǎng)站管理使用,不想被搜索引擎抓取,比如說(shuō)日本愛(ài)情動(dòng)作片2.不喜歡某個(gè)搜索引擎,不愿意被他抓取,最有名的就是之前淘寶不希望被百度抓取3.小網(wǎng)站使用的是公用的虛擬主機,流量有限或者需要付費,希望搜索引擎抓的溫柔點(diǎn)4.某些網(wǎng)頁(yè)是動(dòng)態(tài)生成的,沒(méi)有直接的鏈接指向,但是希望內容被搜索引擎抓取和索引網(wǎng) 站內容的所有者是網(wǎng)站管理員,搜索引擎應該尊重所有者的意愿,為了滿(mǎn)足以上等等,就需要提供一種網(wǎng)站和爬蟲(chóng)進(jìn)行溝通的途徑,給網(wǎng)站管理員表達自己意愿的機 會(huì )。有需求就有供應,robots協(xié)議就此誕生。Robots協(xié)議,學(xué)名叫:The Robots Exclusion Protocol,就搜索引擎抓取網(wǎng)站內容的范圍作了約定,包括網(wǎng)站是否希望被搜索引擎抓取,哪些內容不允許被抓取,把這些內容放到一個(gè)純文本文件 robots.txt里,然后放到站點(diǎn)的根目錄下。爬蟲(chóng)抓取網(wǎng)站內容前會(huì )先抓取robots.txt,據此“自覺(jué)地”抓取或者不抓取該網(wǎng)頁(yè)內容,其目的是 保護網(wǎng)站數據和敏感信息、確保用戶(hù)個(gè)人信息和隱私不被侵犯。

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

  說(shuō)了這么多,看幾個(gè)有名的例子感覺(jué)一下先:

  例子1:淘寶

  User-agent: Baiduspider

  Disallow: /

  User-agent: baiduspider

  Disallow: /

  程序猿,你懂的。這不就是淘寶不想讓百度抓取嘛例子2:京東

  User-agent: *

  Disallow: /?*

  Disallow: /pop/*.html

  User-agent: EtaoSpider

  Disallow: /

  這個(gè)也不復雜,京東有2個(gè)目錄不希望所有搜索引擎來(lái)抓。同時(shí),對etao完全屏蔽。

  基本玩法

  robots.txt的位置

  說(shuō)簡(jiǎn)單也簡(jiǎn)單,robots.txt放到一個(gè)站點(diǎn)的根目錄下即可。說(shuō)復雜也有點(diǎn)小復雜,一個(gè)robots.txt只能控制相同協(xié)議,相同端口,相同站點(diǎn)的網(wǎng)頁(yè)抓取策略。什么意思呢?看個(gè)例子最清楚:

  百度網(wǎng)頁(yè)搜索

  百度知道

  這兩個(gè)robots.txt的內容是不同的,也就是說(shuō)百度網(wǎng)頁(yè)搜索和百度知道的抓取策略可以由自己獨立的robots.txt來(lái)控制,井水不犯河水。

  robots.txt的內容

  最簡(jiǎn)單的robots.txt只有兩條規則:

  1.User-agent:指定對哪些爬蟲(chóng)生效

  2.Disallow:指定要屏蔽的網(wǎng)址

  整個(gè)文件分為x節,一節由y個(gè)User-agent行和z個(gè)Disallow行組成。一節就表示對User-agent行指定的y個(gè)爬蟲(chóng)屏蔽z個(gè)網(wǎng)址。這里x>=0,y>0,z>0。x=0時(shí)即表示空文件,空文件等同于沒(méi)有robots.txt。

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

  User-agent

  爬蟲(chóng)抓取時(shí)會(huì )聲明自己的身份,這就是User-agent,沒(méi)錯,就是http協(xié)議里的User-agent。robots.txt利用User-agent來(lái)區分各個(gè)引擎的爬蟲(chóng)。

  舉例說(shuō)明:google網(wǎng)頁(yè)搜索爬蟲(chóng)的User-agent為Googlebot,下面這行就指定google的爬蟲(chóng)。

  User-agent:Googlebot

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

  User-agent: *

  可能有的同學(xué)要問(wèn)了,我怎么知道爬蟲(chóng)的User-agent是什么?這里提供了一個(gè)簡(jiǎn)單的列表:爬蟲(chóng)列表當然,你還可以查相關(guān)搜索引擎的資料得到官方的數據,比如說(shuō)google爬蟲(chóng)列表,百度爬蟲(chóng)列表Disallow

  Disallow 行列出的是要攔截的網(wǎng)頁(yè),以正斜線(xiàn) (/) 開(kāi)頭,可以列出特定的網(wǎng)址或模式。

  要屏蔽整個(gè)網(wǎng)站,使用正斜線(xiàn)即可:

  Disallow: /

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

  Disallow: /無(wú)用目錄名/

  要屏蔽某個(gè)具體的網(wǎng)頁(yè),就指出這個(gè)網(wǎng)頁(yè)。

  Disallow: /網(wǎng)頁(yè)。html

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

  要屏蔽目錄a1-a100,可以使用上面的方式寫(xiě)100行,或者Disallow:/a

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

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

  Disallow: /*.gif$

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

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

  最最后,通配符不是所有搜索引擎都支持,使用要小心。沒(méi)辦法,誰(shuí)讓robots.txt沒(méi)有一個(gè)大家都承認的標準呢。

實(shí)例 ###

  百度網(wǎng)頁(yè)搜索

  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

  …

  現在讀懂這個(gè)應該毫無(wú)壓力了吧,順便說(shuō)一句百度的robots.txt比較啰嗦,有興趣的同學(xué)可以簡(jiǎn)化一下。

  高階玩法

  首先聲明:高級玩法不是所有引擎的爬蟲(chóng)都支持,一般來(lái)說(shuō),作為搜索引擎技術(shù)領(lǐng)導者的谷歌支持的最好。

  例子:google robots.txt

  allow

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

  方案1:

  Disallow:/a1/

  Disallow:/a2/

  …

  Disallow:/a49/

  Disallow:/a51/

  …

  Disallow:/a100/

  方案2:

  Disallow:/a

  Allow:/a50/

  ok,allow大家會(huì )用了吧。

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

  Disallow:/a

  Allow:/a50/

  Disallow:/a50/private.html

  聰明的你一定能發(fā)現其中的規律,對吧?誰(shuí)管的越細就聽(tīng)誰(shuí)的。

  sitemap

  前 面說(shuō)過(guò)爬蟲(chóng)會(huì )通過(guò)網(wǎng)頁(yè)內部的鏈接發(fā)現新的網(wǎng)頁(yè)。但是如果沒(méi)有連接指向的網(wǎng)頁(yè)怎么辦?或者用戶(hù)輸入條件生成的動(dòng)態(tài)網(wǎng)頁(yè)怎么辦?能否讓網(wǎng)站管理員通知搜索引擎 他們網(wǎng)站上有哪些可供抓取的網(wǎng)頁(yè)?這就是sitemap,最簡(jiǎn)單的 Sitepmap 形式就是 XML 文件,在其中列出網(wǎng)站中的網(wǎng)址以及關(guān)于每個(gè)網(wǎng)址的其他數據(上次更新的時(shí)間、更改的頻率以及相對于網(wǎng)站上其他網(wǎng)址的重要程度等等),利用這些信息搜索引擎 可以更加智能地抓取網(wǎng)站內容。

  sitemap是另一個(gè)話(huà)題,足夠開(kāi)一篇新的文章聊的,這里就不展開(kāi)了,有興趣的同學(xué)可以參考sitemap新的問(wèn)題來(lái)了,爬蟲(chóng)怎么知道這個(gè)網(wǎng)站有沒(méi)有提供sitemap文件,或者說(shuō)網(wǎng)站管理員生成了sitemap,(可能是多個(gè)文件),爬蟲(chóng)怎么知道放在哪里呢?

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

  節選一段google robots.txt:

  Sitemap: http://www.gstatic.com/culturalinstitute/sitemaps/www_google_com_culturalinstitute/sitemap-index.xmlSitemap: http://www.google.com/hostednews/sitemap_index.xml插一句,考慮到一個(gè)網(wǎng)站的網(wǎng)頁(yè)眾多,sitemap人工維護不太靠譜,google提供了工具可以自動(dòng)生成sitemap。

  metatag

  其實(shí)嚴格來(lái)說(shuō)這部分內容不屬于robots.txt,不過(guò)也算非常相關(guān),我也不知道放哪里合適,暫且放到這里吧。

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

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

  舉例:

  要防止所有搜索引擎將網(wǎng)站中的網(wǎng)頁(yè)編入索引,在網(wǎng)頁(yè)的部分添加:

  

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

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

  Crawl-delay

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

  Crawl-delay:5

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

  注意:google已經(jīng)不支持這種方式了,在webmastertools里提供了一個(gè)功能可以更直觀(guān)的控制抓取速率。

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

  真的有用?

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

  協(xié)議一致性

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

  緩存

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

  ignore

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

  偷偷的抓

  第四個(gè)問(wèn)題,即使采用了種種限制,仍然存在某些惡意的抓取行為能突破這些限制,比如一些利用肉雞進(jìn)行的抓取。悲觀(guān)的說(shuō),只要普通用戶(hù)可以訪(fǎng)問(wèn),就不能完全杜絕這種惡意抓取的行為。但是,可以通過(guò)種種手段使抓取的代價(jià)增大到讓對方無(wú)法接受。比如說(shuō):Captcha, Ajax用戶(hù)行為驅動(dòng)的異步加載等等。這個(gè)就不屬于本文討論的范疇了。西安做網(wǎng)站推薦閱讀>>> 谷歌:URL長(cháng)度要控制在2000字符內,

  泄密

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

  工具

  google webmaster tools

  robots.txt生成工具

  Perl robots.txt解析器

  Python robots.txt解析器

相關(guān)文章:

  • User-agent: * Disallow: / Allow: /complain/ Allow: /media_partners/ Allow: /about/ Allow: /user_agreement/ User-agent: ByteSpider Allow: / User-agent: ToutiaoSpider Allow: / 以上是今日頭條的robots.txt,禁止所有搜索引擎收錄,同時(shí)又...

  • 有同學(xué)問(wèn)百度站長(cháng)學(xué)院一個(gè)關(guān)于robots的問(wèn)題:我們有個(gè)站點(diǎn)的目錄結構使用的是中文,這樣式兒的:www.a.com/冒險島/123.html,那在制作robots文件和sitemap文件的時(shí)候,可以直接使用中文嗎?百度能...

  • robots文件是搜索生態(tài)中很重要的一個(gè)環(huán)節,同時(shí)也是一個(gè)很細節的環(huán)節。很多站長(cháng)同學(xué)在網(wǎng)站運營(yíng)過(guò)程中,很容易忽視r(shí)obots文件的存在,進(jìn)行錯誤覆蓋或者全部封禁robots,造成不必要損失! 那...

  • 目前百度圖片搜索也使用了與百度網(wǎng)頁(yè)搜索相同的spider,如果想禁止Baiduspider抓取網(wǎng)站上所有圖片、禁止或允許Baiduspider抓取網(wǎng)站上的某種特定格式的圖片文件可以通過(guò)設置robots實(shí)現:西安廣告...

  • 對于百度搜索引擎來(lái)說(shuō),蜘蛛黑洞特指網(wǎng)站通過(guò)極低的成本制造出大量參數過(guò)多、內容類(lèi)同但url不同的動(dòng)態(tài)URL ,就像一個(gè)無(wú)限循環(huán)的黑洞,將spider困住。spider浪費了大量資源抓取的卻是無(wú)效網(wǎng)...

  • robots是站點(diǎn)與spider溝通的重要渠道,站點(diǎn)通過(guò)robots文件聲明該網(wǎng)站中不想被搜索引擎收錄的部分或者指定搜索引擎只收錄特定的部分。請注意,僅當您的網(wǎng)站包含不希望被搜索引擎收錄的內容...

  • 親愛(ài)的網(wǎng)站管理員, 很高興的告訴大家,百度站長(cháng)平臺 robots 工具全新升級,升級后能夠實(shí)時(shí)查看網(wǎng)站在百度中已生效的的robots文件,并支持對robots進(jìn)行語(yǔ)法及邏輯校驗,有助于站長(cháng)更清晰的...

  • 資料一 1.robots.txt文件是什么 robots.txt是一個(gè)純文本文件,是搜索引擎中訪(fǎng)問(wèn)網(wǎng)站的時(shí)候要查看的第一個(gè)文件。robots.txt文件告訴蜘蛛程序在服務(wù)器上什么文件是可以被查看的。每個(gè)站點(diǎn)最好建立...

  • robots.txt文件包含一條或更多的記錄,這些記錄通過(guò)空行分開(kāi)(以CR,CR/NL, or NL作為結束符),每一條記錄的格式如下所示: field:optional spacevalueoptionalspace 在該文件中可以使用#進(jìn)行注解,具體使...

  • 搜索引擎通過(guò)一種程序robot(又稱(chēng)spider),自動(dòng)訪(fǎng)問(wèn)互聯(lián)網(wǎng)上的網(wǎng)頁(yè)并獲取網(wǎng)頁(yè)信 息。您可以在您的網(wǎng)站中創(chuàng )建一個(gè)純文本文件robots.txt,在這個(gè)文件中聲明該網(wǎng)站中不想被robot 訪(fǎng)問(wèn)的部分,這...

  • 公司:西安蟠龍網(wǎng)絡(luò )科技有限公司
  • 聯(lián)系人:張經(jīng)理
  • 手機/微信:
  • Q Q: 點(diǎn)擊這里給我發(fā)消息
  • 地址:西安市雁塔區唐延南路11號逸翠園i都會(huì )
亚洲精品视频一区二区,一级毛片在线观看视频,久久国产a,狠狠狠色丁香婷婷综合久久五月,天天做天天欢摸夜夜摸狠狠摸