<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    空間站

    北極心空

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

    一、網(wǎng)絡(luò)蜘蛛基本原理

      網(wǎng)絡(luò)蜘蛛即Web Spider,是一個(gè)很形象的名字。把互聯(lián)網(wǎng)比喻成一個(gè)蜘蛛網(wǎng),那么Spider就是在網(wǎng)上爬來(lái)爬去的蜘蛛。網(wǎng)絡(luò)蜘蛛是通過(guò)網(wǎng)頁(yè)的鏈接地址來(lái)尋找網(wǎng)頁(yè),從網(wǎng)站某一個(gè)頁(yè)面(通常是首頁(yè))開(kāi)始,讀取網(wǎng)頁(yè)的內(nèi)容,找到在網(wǎng)頁(yè)中的其它鏈接地址,然后通過(guò)這些鏈接地址尋找下一個(gè)網(wǎng)頁(yè),這樣一直循環(huán)下去,直到把這個(gè)網(wǎng)站所有的網(wǎng)頁(yè)都抓取完為止。如果把整個(gè)互聯(lián)網(wǎng)當(dāng)成一個(gè)網(wǎng)站,那么網(wǎng)絡(luò)蜘蛛就可以用這個(gè)原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)都抓取下來(lái)。

      對(duì)于搜索引擎來(lái)說(shuō),要抓取互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)幾乎是不可能的,從目前公布的數(shù)據(jù)來(lái)看,容量最大的搜索引擎也不過(guò)是抓取了整個(gè)網(wǎng)頁(yè)數(shù)量的百分之四十左右。這其中的原因一方面是抓取技術(shù)的瓶頸,無(wú)法遍歷所有的網(wǎng)頁(yè),有許多網(wǎng)頁(yè)無(wú)法從其它網(wǎng)頁(yè)的鏈接中找到;另一個(gè)原因是存儲(chǔ)技術(shù)和處理技術(shù)的問(wèn)題,如果按照每個(gè)頁(yè)面的平均大小為20K計(jì)算(包含圖片),100億網(wǎng)頁(yè)的容量是100×2000G字節(jié),即使能夠存儲(chǔ),下載也存在問(wèn)題(按照一臺(tái)機(jī)器每秒下載20K計(jì)算,需要 340臺(tái)機(jī)器不停的下載一年時(shí)間,才能把所有網(wǎng)頁(yè)下載完畢)。同時(shí),由于數(shù)據(jù)量太大,在提供搜索時(shí)也會(huì)有效率方面的影響。因此,許多搜索引擎的網(wǎng)絡(luò)蜘蛛只是抓取那些重要的網(wǎng)頁(yè),而在抓取的時(shí)候評(píng)價(jià)重要性主要的依據(jù)是某個(gè)網(wǎng)頁(yè)的鏈接深度。

      在抓取網(wǎng)頁(yè)的時(shí)候,網(wǎng)絡(luò)蜘蛛一般有兩種策略:廣度優(yōu)先和深度優(yōu)先。

      廣度優(yōu)先是指網(wǎng)絡(luò)蜘蛛會(huì)先抓取起始網(wǎng)頁(yè)中鏈接的所有網(wǎng)頁(yè),然后再選擇其中的一個(gè)鏈接網(wǎng)頁(yè),繼續(xù)抓取在此網(wǎng)頁(yè)中鏈接的所有網(wǎng)頁(yè)。這是最常用的方式,因?yàn)檫@個(gè)方法可以讓網(wǎng)絡(luò)蜘蛛并行處理,提高其抓取速度。深度優(yōu)先是指網(wǎng)絡(luò)蜘蛛會(huì)從起始頁(yè)開(kāi)始,一個(gè)鏈接一個(gè)鏈接跟蹤下去,處理完這條線路之后再轉(zhuǎn)入下一個(gè)起始頁(yè),繼續(xù)跟蹤鏈接。這個(gè)方法有個(gè)優(yōu)點(diǎn)是網(wǎng)絡(luò)蜘蛛在設(shè)計(jì)的時(shí)候比較容易。兩種策略的區(qū)別,下圖的說(shuō)明會(huì)更加明確。

      由于不可能抓取所有的網(wǎng)頁(yè),有些網(wǎng)絡(luò)蜘蛛對(duì)一些不太重要的網(wǎng)站,設(shè)置了訪問(wèn)的層數(shù)。例如,在上圖中,A為起始網(wǎng)頁(yè),屬于0層,B、C、D、E、F屬于第1層,G、H屬于第2層, I屬于第3層。如果網(wǎng)絡(luò)蜘蛛設(shè)置的訪問(wèn)層數(shù)為2的話,網(wǎng)頁(yè)I是不會(huì)被訪問(wèn)到的。這也讓有些網(wǎng)站上一部分網(wǎng)頁(yè)能夠在搜索引擎上搜索到,另外一部分不能被搜索到。對(duì)于網(wǎng)站設(shè)計(jì)者來(lái)說(shuō),扁平化的網(wǎng)站結(jié)構(gòu)設(shè)計(jì)有助于搜索引擎抓取其更多的網(wǎng)頁(yè)。

      網(wǎng)絡(luò)蜘蛛在訪問(wèn)網(wǎng)站網(wǎng)頁(yè)的時(shí)候,經(jīng)常會(huì)遇到加密數(shù)據(jù)和網(wǎng)頁(yè)權(quán)限的問(wèn)題,有些網(wǎng)頁(yè)是需要會(huì)員權(quán)限才能訪問(wèn)。當(dāng)然,網(wǎng)站的所有者可以通過(guò)協(xié)議讓網(wǎng)絡(luò)蜘蛛不去抓取(下小節(jié)會(huì)介紹),但對(duì)于一些出售報(bào)告的網(wǎng)站,他們希望搜索引擎能搜索到他們的報(bào)告,但又不能完全**的讓搜索者查看,這樣就需要給網(wǎng)絡(luò)蜘蛛提供相應(yīng)的用戶名和密碼。網(wǎng)絡(luò)蜘蛛可以通過(guò)所給的權(quán)限對(duì)這些網(wǎng)頁(yè)進(jìn)行網(wǎng)頁(yè)抓取,從而提供搜索。而當(dāng)搜索者點(diǎn)擊查看該網(wǎng)頁(yè)的時(shí)候,同樣需要搜索者提供相應(yīng)的權(quán)限驗(yàn)證。

      網(wǎng)站與網(wǎng)絡(luò)蜘蛛

      網(wǎng)絡(luò)蜘蛛需要抓取網(wǎng)頁(yè),不同于一般的訪問(wèn),如果控制不好,則會(huì)引起網(wǎng)站服務(wù)器負(fù)擔(dān)過(guò)重。今年4月,淘寶http://www.taobao.com)就因?yàn)檠呕⑺阉饕娴木W(wǎng)絡(luò)蜘蛛抓取其數(shù)據(jù)引起淘寶網(wǎng)服務(wù)器的不穩(wěn)定。網(wǎng)站是否就無(wú)法和網(wǎng)絡(luò)蜘蛛交流呢?其實(shí)不然,有多種方法可以讓網(wǎng)站和網(wǎng)絡(luò)蜘蛛進(jìn)行交流。一方面讓網(wǎng)站管理員了解網(wǎng)絡(luò)蜘蛛都來(lái)自哪兒,做了些什么,另一方面也告訴網(wǎng)絡(luò)蜘蛛哪些網(wǎng)頁(yè)不應(yīng)該抓取,哪些網(wǎng)頁(yè)應(yīng)該更新。

      每個(gè)網(wǎng)絡(luò)蜘蛛都有自己的名字,在抓取網(wǎng)頁(yè)的時(shí)候,都會(huì)向網(wǎng)站標(biāo)明自己的身份。網(wǎng)絡(luò)蜘蛛在抓取網(wǎng)頁(yè)的時(shí)候會(huì)發(fā)送一個(gè)請(qǐng)求,這個(gè)請(qǐng)求中就有一個(gè)字段為User- agent,用于標(biāo)識(shí)此網(wǎng)絡(luò)蜘蛛的身份。例如Google網(wǎng)絡(luò)蜘蛛的標(biāo)識(shí)為GoogleBot,Baidu網(wǎng)絡(luò)蜘蛛的標(biāo)識(shí)為BaiDuSpider, Yahoo網(wǎng)絡(luò)蜘蛛的標(biāo)識(shí)為Inktomi Slurp。如果在網(wǎng)站上有訪問(wèn)日志記錄,網(wǎng)站管理員就能知道,哪些搜索引擎的網(wǎng)絡(luò)蜘蛛過(guò)來(lái)過(guò),什么時(shí)候過(guò)來(lái)的,以及讀了多少數(shù)據(jù)等等。如果網(wǎng)站管理員發(fā)現(xiàn)某個(gè)蜘蛛有問(wèn)題,就通過(guò)其標(biāo)識(shí)來(lái)和其所有者聯(lián)系。下面是博客中http://www.blogchina.com)2004年5月15日的搜索引擎訪問(wèn)日志:

      網(wǎng)絡(luò)蜘蛛進(jìn)入一個(gè)網(wǎng)站,一般會(huì)訪問(wèn)一個(gè)特殊的文本文件Robots.txt,這個(gè)文件一般放在網(wǎng)站服務(wù)器的根目錄下,http://www.blogchina.com/robots.txt。網(wǎng)站管理員可以通過(guò)robots.txt來(lái)定義哪些目錄網(wǎng)絡(luò)蜘蛛不能訪問(wèn),或者哪些目錄對(duì)于某些特定的網(wǎng)絡(luò)蜘蛛不能訪問(wèn)。例如有些網(wǎng)站的可執(zhí)行文件目錄和臨時(shí)文件目錄不希望被搜索引擎搜索到,那么網(wǎng)站管理員就可以把這些目錄定義為拒絕訪問(wèn)目錄。Robots.txt語(yǔ)法很簡(jiǎn)單,例如如果對(duì)目錄沒(méi)有任何限制,可以用以下兩行來(lái)描述:

      User-agent: *
      Disallow:

      當(dāng)然,Robots.txt只是一個(gè)協(xié)議,如果網(wǎng)絡(luò)蜘蛛的設(shè)計(jì)者不遵循這個(gè)協(xié)議,網(wǎng)站管理員也無(wú)法阻止網(wǎng)絡(luò)蜘蛛對(duì)于某些頁(yè)面的訪問(wèn),但一般的網(wǎng)絡(luò)蜘蛛都會(huì)遵循這些協(xié)議,而且網(wǎng)站管理員還可以通過(guò)其它方式來(lái)拒絕網(wǎng)絡(luò)蜘蛛對(duì)某些網(wǎng)頁(yè)的抓取。

      網(wǎng)絡(luò)蜘蛛在下載網(wǎng)頁(yè)的時(shí)候,會(huì)去識(shí)別網(wǎng)頁(yè)的HTML代碼,在其代碼的部分,會(huì)有META標(biāo)識(shí)。通過(guò)這些標(biāo)識(shí),可以告訴網(wǎng)絡(luò)蜘蛛本網(wǎng)頁(yè)是否需要被抓取,還可以告訴網(wǎng)絡(luò)蜘蛛本網(wǎng)頁(yè)中的鏈接是否需要被繼續(xù)跟蹤。例如:表示本網(wǎng)頁(yè)不需要被抓取,但是網(wǎng)頁(yè)內(nèi)的鏈接需要被跟蹤。

      關(guān)于Robots.txt的語(yǔ)法和META Tag語(yǔ)法,有興趣的讀者查看文獻(xiàn)[4]

      現(xiàn)在一般的網(wǎng)站都希望搜索引擎能更全面的抓取自己網(wǎng)站的網(wǎng)頁(yè),因?yàn)檫@樣可以讓更多的訪問(wèn)者能通過(guò)搜索引擎找到此網(wǎng)站。為了讓本網(wǎng)站的網(wǎng)頁(yè)更全面被抓取到,網(wǎng)站管理員可以建立一個(gè)網(wǎng)站地圖,即Site Map。許多網(wǎng)絡(luò)蜘蛛會(huì)把sitemap.htm文件作為一個(gè)網(wǎng)站網(wǎng)頁(yè)爬取的入口,網(wǎng)站管理員可以把網(wǎng)站內(nèi)部所有網(wǎng)頁(yè)的鏈接放在這個(gè)文件里面,那么網(wǎng)絡(luò)蜘蛛可以很方便的把整個(gè)網(wǎng)站抓取下來(lái),避免遺漏某些網(wǎng)頁(yè),也會(huì)減小對(duì)網(wǎng)站服務(wù)器的負(fù)擔(dān)。

      內(nèi)容提取

      搜索引擎建立網(wǎng)頁(yè)索引,處理的對(duì)象是文本文件。對(duì)于網(wǎng)絡(luò)蜘蛛來(lái)說(shuō),抓取下來(lái)網(wǎng)頁(yè)包括各種格式,包括html、圖片、doc、pdf、多媒體、動(dòng)態(tài)網(wǎng)頁(yè)及其它格式等。這些文件抓取下來(lái)后,需要把這些文件中的文本信息提取出來(lái)。準(zhǔn)確提取這些文檔的信息,一方面對(duì)搜索引擎的搜索準(zhǔn)確性有重要作用,另一方面對(duì)于網(wǎng)絡(luò)蜘蛛正確跟蹤其它鏈接有一定影響。

      對(duì)于doc、pdf等文檔,這種由專(zhuān)業(yè)廠商提供的軟件生成的文檔,廠商都會(huì)提供相應(yīng)的文本提取接口。網(wǎng)絡(luò)蜘蛛只需要調(diào)用這些插件的接口,就可以輕松的提取文檔中的文本信息和文件其它相關(guān)的信息。

      HTML等文檔不一樣,HTML有一套自己的語(yǔ)法,通過(guò)不同的命令標(biāo)識(shí)符來(lái)表示不同的字體、顏色、位置等版式,如:、、等,提取文本信息時(shí)需要把這些標(biāo)識(shí)符都過(guò)濾掉。過(guò)濾標(biāo)識(shí)符并非難事,因?yàn)檫@些標(biāo)識(shí)符都有一定的規(guī)則,只要按照不同的標(biāo)識(shí)符取得相應(yīng)的信息即可。但在識(shí)別這些信息的時(shí)候,需要同步記錄許多版式信息,例如文字的字體大小、是否是標(biāo)題、是否是加粗顯示、是否是頁(yè)面的關(guān)鍵詞等,這些信息有助于計(jì)算單詞在網(wǎng)頁(yè)中的重要程度。同時(shí),對(duì)于HTML網(wǎng)頁(yè)來(lái)說(shuō),除了標(biāo)題和正文以外,會(huì)有許多廣告鏈接以及公共的頻道鏈接,這些鏈接和文本正文一點(diǎn)關(guān)系也沒(méi)有,在提取網(wǎng)頁(yè)內(nèi)容的時(shí)候,也需要過(guò)濾這些無(wú)用的鏈接。例如某個(gè)網(wǎng)站有“產(chǎn)品介紹”頻道,因?yàn)閷?dǎo)航條在網(wǎng)站內(nèi)每個(gè)網(wǎng)頁(yè)都有,若不過(guò)濾導(dǎo)航條鏈接,在搜索“產(chǎn)品介紹”的時(shí)候,則網(wǎng)站內(nèi)每個(gè)網(wǎng)頁(yè)都會(huì)搜索到,無(wú)疑會(huì)帶來(lái)大量垃圾信息。過(guò)濾這些無(wú)效鏈接需要統(tǒng)計(jì)大量的網(wǎng)頁(yè)結(jié)構(gòu)規(guī)律,抽取一些共性,統(tǒng)一過(guò)濾;對(duì)于一些重要而結(jié)果特殊的網(wǎng)站,還需要個(gè)別處理。這就需要網(wǎng)絡(luò)蜘蛛的設(shè)計(jì)有一定的擴(kuò)展性。

      對(duì)于多媒體、圖片等文件,一般是通過(guò)鏈接的錨文本(即,鏈接文本)和相關(guān)的文件注釋來(lái)判斷這些文件的內(nèi)容。例如有一個(gè)鏈接文字為“張曼玉照片”,其鏈接指向一張bmp格式的圖片,那么網(wǎng)絡(luò)蜘蛛就知道這張圖片的內(nèi)容是“張曼玉的照片”。這樣,在搜索“張曼玉”和“照片”的時(shí)候都能讓搜索引擎找到這張圖片。另外,許多多媒體文件中有文件屬性,考慮這些屬性也可以更好的了解文件的內(nèi)容。

      動(dòng)態(tài)網(wǎng)頁(yè)一直是網(wǎng)絡(luò)蜘蛛面臨的難題。所謂動(dòng)態(tài)網(wǎng)頁(yè),是相對(duì)于靜態(tài)網(wǎng)頁(yè)而言,是由程序自動(dòng)生成的頁(yè)面,這樣的好處是可以快速統(tǒng)一更改網(wǎng)頁(yè)風(fēng)格,也可以減少網(wǎng)頁(yè)所占服務(wù)器的空間,但同樣給網(wǎng)絡(luò)蜘蛛的抓取帶來(lái)一些麻煩。由于開(kāi)發(fā)語(yǔ)言不斷的增多,動(dòng)態(tài)網(wǎng)頁(yè)的類(lèi)型也越來(lái)越多,如:asp、jsp、php等。這些類(lèi)型的網(wǎng)頁(yè)對(duì)于網(wǎng)絡(luò)蜘蛛來(lái)說(shuō),可能還稍微容易一些。網(wǎng)絡(luò)蜘蛛比較難于處理的是一些腳本語(yǔ)言(如VBScript和javascript)生成的網(wǎng)頁(yè),如果要完善的處理好這些網(wǎng)頁(yè),網(wǎng)絡(luò)蜘蛛需要有自己的腳本解釋程序。對(duì)于許多數(shù)據(jù)是放在數(shù)據(jù)庫(kù)的網(wǎng)站,需要通過(guò)本網(wǎng)站的數(shù)據(jù)庫(kù)搜索才能獲得信息,這些給網(wǎng)絡(luò)蜘蛛的抓取帶來(lái)很大的困難。對(duì)于這類(lèi)網(wǎng)站,如果網(wǎng)站設(shè)計(jì)者希望這些數(shù)據(jù)能被搜索引擎搜索,則需要提供一種可以遍歷整個(gè)數(shù)據(jù)庫(kù)內(nèi)容的方法。

      對(duì)于網(wǎng)頁(yè)內(nèi)容的提取,一直是網(wǎng)絡(luò)蜘蛛中重要的技術(shù)。整個(gè)系統(tǒng)一般采用插件的形式,通過(guò)一個(gè)插件管理服務(wù)程序,遇到不同格式的網(wǎng)頁(yè)采用不同的插件處理。這種方式的好處在于擴(kuò)充性好,以后每發(fā)現(xiàn)一種新的類(lèi)型,就可以把其處理方式做成一個(gè)插件補(bǔ)充到插件管理服務(wù)程序之中。

      更新周期

      由于網(wǎng)站的內(nèi)容經(jīng)常在變化,因此網(wǎng)絡(luò)蜘蛛也需不斷的更新其抓取網(wǎng)頁(yè)的內(nèi)容,這就需要網(wǎng)絡(luò)蜘蛛按照一定的周期去掃描網(wǎng)站,查看哪些頁(yè)面是需要更新的頁(yè)面,哪些頁(yè)面是新增頁(yè)面,哪些頁(yè)面是已經(jīng)過(guò)期的死鏈接。

      搜索引擎的更新周期對(duì)搜索引擎搜索的查全率有很大影響。如果更新周期太長(zhǎng),則總會(huì)有一部分新生成的網(wǎng)頁(yè)搜索不到;周期過(guò)短,技術(shù)實(shí)現(xiàn)會(huì)有一定難度,而且會(huì)對(duì)帶寬、服務(wù)器的資源都有浪費(fèi)。搜索引擎的網(wǎng)絡(luò)蜘蛛并不是所有的網(wǎng)站都采用同一個(gè)周期進(jìn)行更新,對(duì)于一些重要的更新量大的網(wǎng)站,更新的周期短,如有些新聞網(wǎng)站,幾個(gè)小時(shí)就更新一次;相反對(duì)于一些不重要的網(wǎng)站,更新的周期就長(zhǎng),可能一兩個(gè)月才更新一次。

      一般來(lái)說(shuō),網(wǎng)絡(luò)蜘蛛在更新網(wǎng)站內(nèi)容的時(shí)候,不用把網(wǎng)站網(wǎng)頁(yè)重新抓取一遍,對(duì)于大部分的網(wǎng)頁(yè),只需要判斷網(wǎng)頁(yè)的屬性(主要是日期),把得到的屬性和上次抓取的屬性相比較,如果一樣則不用更新。

    二、Robots

    <meta name="Robots" contect= "all|none|index|noindex|follow|nofollow">

    其中的屬性說(shuō)明如下:

    設(shè)定為all:文件將被檢索,且頁(yè)面上的鏈接可以被查詢;

    設(shè)定為none:文件將不被檢索,且頁(yè)面上的鏈接不可以被查詢;

    設(shè)定為index:文件將被檢索;

    設(shè)定為follow:頁(yè)面上的鏈接可以被查詢;

    設(shè)定為noindex:文件將不被檢索,但頁(yè)面上的鏈接可以被查詢;

    設(shè)定為nofollow:文件將不被檢索,頁(yè)面上的鏈接可以被查詢。

    -----------------------------------
    我們知道,搜索引擎都有自己的“搜索機(jī)器人”(ROBOTS),并通過(guò)這些ROBOTS在網(wǎng)絡(luò)上沿著網(wǎng)頁(yè)上的鏈接(一般是http和src鏈接)不斷抓取資料建立自己的數(shù)據(jù)庫(kù)。

    對(duì)于網(wǎng)站管理者和內(nèi)容提供者來(lái)說(shuō),有時(shí)候會(huì)有一些站點(diǎn)內(nèi)容,不希望被ROBOTS抓取而公開(kāi)。為了解決這個(gè)問(wèn)題,ROBOTS開(kāi)發(fā)界提供了兩個(gè)辦法:一個(gè)是robots.txt,另一個(gè)是The Robots META標(biāo)簽。

    一、robots.txt

    1、 什么是robots.txt?

    robots.txt是一個(gè)純文本文件,通過(guò)在這個(gè)文件中聲明該網(wǎng)站中不想被robots訪問(wèn)的部分,這樣,該網(wǎng)站的部分或全部?jī)?nèi)容就可以不被搜索引擎收錄了,或者指定搜索引擎只收錄指定的內(nèi)容。

    當(dāng)一個(gè)搜索機(jī)器人訪問(wèn)一個(gè)站點(diǎn)時(shí),它會(huì)首先檢查該站點(diǎn)根目錄下是否存在robots.txt,如果找到,搜索機(jī)器人就會(huì)按照該文件中的內(nèi)容來(lái)確定訪問(wèn)的范圍,如果該文件不存在,那么搜索機(jī)器人就沿著鏈接抓取。

    robots.txt必須放置在一個(gè)站點(diǎn)的根目錄下,而且文件名必須全部小寫(xiě)。

    網(wǎng)站 URL
    相應(yīng)的 robots.txt的 URL

    http://www.w3.org/
    http://www.w3.org/robots.txt

    http://www.w3.org:80/
    http://www.w3.org:80/robots.txt

    http://www.w3.org:1234/
    http://www.w3.org:1234/robots.txt

    http://w3.org/
    http://w3.org/robots.txt

    2、 robots.txt的語(yǔ)法

    "robots.txt"文件包含一條或更多的記錄,這些記錄通過(guò)空行分開(kāi)(以CR,CR/NL, or NL作為結(jié)束符),每一條記錄的格式如下所示:

    "<field>:<o(jì)ptionalspace><value><o(jì)ptionalspace>"。

    在該文件中可以使用#進(jìn)行注解,具體使用方法和UNIX中的慣例一樣。該文件中的記錄通常以一行或多行User-agent開(kāi)始,后面加上若干Disallow行,詳細(xì)情況如下:

    User-agent:

    該項(xiàng)的值用于描述搜索引擎robot的名字,在"robots.txt"文件中,如果有多條User-agent記錄說(shuō)明有多個(gè)robot會(huì)受到該協(xié)議的限制,對(duì)該文件來(lái)說(shuō),至少要有一條User-agent記錄。如果該項(xiàng)的值設(shè)為*,則該協(xié)議對(duì)任何機(jī)器人均有效,在"robots.txt"文件中, "User-agent:*"這樣的記錄只能有一條。

    Disallow :

    該項(xiàng)的值用于描述不希望被訪問(wèn)到的一個(gè)URL,這個(gè)URL可以是一條完整的路徑,也可以是部分的,任何以Disallow 開(kāi)頭的URL均不會(huì)被robot訪問(wèn)到。例如"Disallow: /help"對(duì)/help.htm和/help/index.html都不允許搜索引擎訪問(wèn),而"Disallow: /help/"則允許robot訪問(wèn)/help.html,而不能訪問(wèn)/help/index.html。

    任何一條Disallow記錄為空,說(shuō)明該網(wǎng)站的所有部分都允許被訪問(wèn),在"/robots.txt"文件中,至少要有一條Disallow記錄。如果 "/robots.txt"是一個(gè)空文件,則對(duì)于所有的搜索引擎robot,該網(wǎng)站都是開(kāi)放的。

    下面是一些robots.txt基本的用法:

    禁止所有搜索引擎訪問(wèn)網(wǎng)站的任何部分:

    User-agent: *
    Disallow: /

    允許所有的robot訪問(wèn)

    User-agent: *
    Disallow:

    或者也可以建一個(gè)空文件 "/robots.txt" file

    禁止所有搜索引擎訪問(wèn)網(wǎng)站的幾個(gè)部分(下例中的cgi-bin、tmp、private目錄)

    User-agent: *
    Disallow: /cgi-bin/
    Disallow: /tmp/
    Disallow: /private/

    禁止某個(gè)搜索引擎的訪問(wèn)(下例中的BadBot)

    User-agent: BadBot
    Disallow: /

    只允許某個(gè)搜索引擎的訪問(wèn)(下例中的WebCrawler)

    User-agent: WebCrawler
    Disallow:

    User-agent: *
    Disallow: /

    3、 常見(jiàn)搜索引擎機(jī)器人Robots名字

    名稱 搜索引擎

    Baiduspider http://www.baidu.com

    Scooter http://www.altavista.com

    ia_archiver http://www.alexa.com

    Googlebot http://www.google.com

    FAST-WebCrawler http://www.alltheweb.com

    Slurp http://www.inktomi.com

    MSNBOT http://search.msn.com

    4、 robots.txt舉例

    下面是一些著名站點(diǎn)的robots.txt:

    http://www.cnn.com/robots.txt

    http://www.google.com/robots.txt

    http://www.ibm.com/robots.txt

    http://www.sun.com/robots.txt

    http://www.eachnet.com/robots.txt

    5、 常見(jiàn)robots.txt錯(cuò)誤

    顛倒了順序:
    錯(cuò)誤寫(xiě)成

    User-agent: *
    Disallow: GoogleBot

    正確的應(yīng)該是:

    User-agent: GoogleBot
    Disallow: *

    把多個(gè)禁止命令放在一行中:
    例如,錯(cuò)誤地寫(xiě)成

    Disallow: /css/ /cgi-bin/ /images/

    正確的應(yīng)該是

    Disallow: /css/
    Disallow: /cgi-bin/
    Disallow: /images/

    行前有大量空格
    例如寫(xiě)成

    Disallow: /cgi-bin/

    盡管在標(biāo)準(zhǔn)沒(méi)有談到這個(gè),但是這種方式很容易出問(wèn)題。

    404重定向到另外一個(gè)頁(yè)面:
    當(dāng)Robot 訪問(wèn)很多沒(méi)有設(shè)置robots.txt文件的站點(diǎn)時(shí),會(huì)被自動(dòng)404重定向到另外一個(gè)Html頁(yè)面。這時(shí)Robot常常會(huì)以處理robots.txt文件的方式處理這個(gè)Html頁(yè)面文件。雖然一般這樣沒(méi)有什么問(wèn)題,但是最好能放一個(gè)空白的robots.txt文件在站點(diǎn)根目錄下。

    采用大寫(xiě)。例如

    USER-AGENT: EXCITE
    DISALLOW:

    雖然標(biāo)準(zhǔn)是沒(méi)有大小寫(xiě)的,但是目錄和文件名應(yīng)該小寫(xiě):

    user-agent:GoogleBot
    disallow:

    語(yǔ)法中只有Disallow,沒(méi)有Allow!
    錯(cuò)誤的寫(xiě)法是:

    User-agent: Baiduspider
    Disallow: /john/
    allow: /jane/

    忘記了斜杠/
    錯(cuò)誤的寫(xiě)做:

    User-agent: Baiduspider
    Disallow: css

    正確的應(yīng)該是

    User-agent: Baiduspider
    Disallow: /css/

    下面一個(gè)小工具專(zhuān)門(mén)檢查robots.txt文件的有效性:

    http://www.searchengineworld.com/cgi-bin/robotcheck.cgi

    二、 Robots META標(biāo)簽

    1、什么是Robots META標(biāo)簽

    Robots.txt文件主要是限制整個(gè)站點(diǎn)或者目錄的搜索引擎訪問(wèn)情況,而Robots META標(biāo)簽則主要是針對(duì)一個(gè)個(gè)具體的頁(yè)面。和其他的META標(biāo)簽(如使用的語(yǔ)言、頁(yè)面的描述、關(guān)鍵詞等)一樣,Robots META標(biāo)簽也是放在頁(yè)面的<head></head>中,專(zhuān)門(mén)用來(lái)告訴搜索引擎ROBOTS如何抓取該頁(yè)的內(nèi)容。具體的形式類(lèi)似(見(jiàn)黑體部分):

    <html>

    <head>

    <title>時(shí)代營(yíng)銷(xiāo)--網(wǎng)絡(luò)營(yíng)銷(xiāo)專(zhuān)業(yè)門(mén)戶</title>

    <meta name="Robots" content="index,follow">

    <meta http-equiv="Content-Type" CONTENT="text/html; charset=gb2312">

    <meta name="keywords" content="營(yíng)銷(xiāo)… ">

    <meta name="description" content="時(shí)代營(yíng)銷(xiāo)網(wǎng)是…">

    <link rel="stylesheet" href="/public/css.css" type="text/css">

    </head>

    <body>

    </body>

    </html>

    2、Robots META標(biāo)簽的寫(xiě)法:

    Robots META標(biāo)簽中沒(méi)有大小寫(xiě)之分,name=”Robots”表示所有的搜索引擎,可以針對(duì)某個(gè)具體搜索引擎寫(xiě)為name=”BaiduSpider”。 content部分有四個(gè)指令選項(xiàng):index、noindex、follow、nofollow,指令間以“,”分隔。

    INDEX 指令告訴搜索機(jī)器人抓取該頁(yè)面;

    FOLLOW 指令表示搜索機(jī)器人可以沿著該頁(yè)面上的鏈接繼續(xù)抓取下去;

    Robots Meta標(biāo)簽的缺省值是INDEX和FOLLOW,只有inktomi除外,對(duì)于它,缺省值是INDEX,NOFOLLOW。

    這樣,一共有四種組合:

    <META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">

    <META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">

    <META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">

    <META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">

    其中

    <META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">可以寫(xiě)成

    <META NAME="ROBOTS" CONTENT="ALL">;

    <META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">可以寫(xiě)成

    <META NAME="ROBOTS" CONTENT="NONE">

    需要注意的是:上述的robots.txt和Robots META標(biāo)簽限制搜索引擎機(jī)器人(ROBOTS)抓取站點(diǎn)內(nèi)容的辦法只是一種規(guī)則,需要搜饕婊魅說(shuō)吶浜喜判校⒉皇敲扛鯮OBOTS都遵守的。

    目前看來(lái),絕大多數(shù)的搜索引擎機(jī)器人都遵守robots.txt的規(guī)則,而對(duì)于Robots META標(biāo)簽,目前支持的并不多,但是正在逐漸增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE還增加了一個(gè)指令“archive”,可以限制GOOGLE是否保留網(wǎng)頁(yè)快照。例如:

    <META NAME="googlebot" CONTENT="index,follow,noarchive">

    表示抓取該站點(diǎn)中頁(yè)面并沿著頁(yè)面中鏈接抓取,但是不在GOOLGE上保留該頁(yè)面的網(wǎng)頁(yè)快照。

    posted on 2006-12-08 21:07 蘆葦 閱讀(219) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 其他
    主站蜘蛛池模板: 免费精品一区二区三区在线观看 | 亚洲乱码一二三四五六区| 91久久亚洲国产成人精品性色| 亚洲网站视频在线观看| 亚洲免费一级视频| 亚洲AV永久无码精品一福利| 成年网站免费入口在线观看| 中文字幕久精品免费视频| 日本免费xxxx| 男人的天堂亚洲一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 亚洲男人的天堂www| 亚洲网站在线播放| 亚洲av无码专区亚洲av不卡| 中文字幕免费在线看电影大全| 最近中文字幕无免费| 国产精品另类激情久久久免费| 久久亚洲av无码精品浪潮| 亚洲熟妇色自偷自拍另类| 爱情岛论坛亚洲品质自拍视频网站 | 无码人妻一区二区三区免费看 | 国产成人AV片无码免费| 久久不见久久见免费影院| 亚洲日本韩国在线| 亚洲欧洲春色校园另类小说| 亚洲AV日韩综合一区| 久久久国产精品福利免费| 啦啦啦手机完整免费高清观看| 亚洲中文字幕无码不卡电影| 亚洲专区一路线二| 中文字幕成人免费高清在线视频| 0588影视手机免费看片| 亚洲无码视频在线| 国产成人精品日本亚洲专| 一级毛片免费观看不收费| 麻豆国产精品免费视频| 亚洲一区二区视频在线观看| 亚洲一级毛片中文字幕| 国产成人无码区免费网站| 天天摸夜夜摸成人免费视频| 亚洲国产精品福利片在线观看|