隨著搜索經(jīng)濟(jì)的崛起,人們開始越加關(guān)注全球各大搜索引擎的性能、技術(shù)和日流量。作為企業(yè),會(huì)根據(jù)搜索引擎的知名度以及日流量來(lái)選擇是否要投放廣告等;作為
普通網(wǎng)民,會(huì)根據(jù)搜索引擎的性能和技術(shù)來(lái)選擇自己喜歡的引擎查找資料;作為學(xué)者,會(huì)把有代表性的搜索引擎作為研究對(duì)象……
而作為一個(gè)網(wǎng)站的經(jīng)營(yíng)者,其更關(guān)心的或許是如何通過(guò)網(wǎng)絡(luò)載體讓更多的網(wǎng)民知道自己的網(wǎng)站,進(jìn)而獲得更高的流量和知名度。這其中,搜索引擎已經(jīng)成了一個(gè)重要
的且是免費(fèi)的宣傳途徑。一方面,搜索引擎會(huì)主動(dòng)出擊,尋找網(wǎng)絡(luò)上的各種網(wǎng)頁(yè)數(shù)據(jù),并在后臺(tái)按相關(guān)條件進(jìn)行索引;另一方面,各大網(wǎng)站為了能讓自己的內(nèi)容更多
的通過(guò)搜索引擎向網(wǎng)民展示,都開始對(duì)網(wǎng)站結(jié)構(gòu)進(jìn)行重大調(diào)整,其中包括扁平化結(jié)構(gòu)設(shè)計(jì)、動(dòng)態(tài)(網(wǎng)頁(yè))轉(zhuǎn)靜態(tài)(網(wǎng)頁(yè))、Sitemap等。
這些看來(lái)不經(jīng)意的舉動(dòng)都讓我們切身感受到搜索引擎對(duì)我們網(wǎng)絡(luò)使用方式的改變起到了重要作用。并且,正因?yàn)樗阉饕娴呐d起以及社會(huì)各界對(duì)其重視程度日漸高
漲,還由此創(chuàng)造了一個(gè)全新的職位——SEO。實(shí)際上,搜索引擎經(jīng)濟(jì)的崛起,又一次向人們證明了網(wǎng)絡(luò)所蘊(yùn)藏的巨大商機(jī)。網(wǎng)絡(luò)離開了搜索將只剩下空洞雜亂的數(shù)
據(jù),以及大量等待去費(fèi)力挖掘的金礦。
搜索引擎一直專注于提升用戶的體驗(yàn)度,其用戶體驗(yàn)度則反映在三個(gè)方面: 準(zhǔn)、全、快
。用專業(yè)術(shù)語(yǔ)講是:查準(zhǔn)率、查全率和搜索速度(即搜索耗時(shí))。其中最易達(dá)到的是搜索速度,因?yàn)閷?duì)于搜索耗時(shí)在1秒以下的系統(tǒng)來(lái)說(shuō),訪問者很難辨別其快慢
了,更何況還有網(wǎng)絡(luò)速度的影響。因此,對(duì)搜索引擎的評(píng)價(jià)就集中在了前兩者:準(zhǔn)、全。中文搜索引擎的“準(zhǔn)”,需要保證搜索的前幾十條結(jié)果都和搜索詞十分相
關(guān),這需由“ 分詞技術(shù) ”和“ 排序技術(shù)
”來(lái)決定;中文搜索引擎的“全”則需保證不遺漏某些重要的結(jié)果,而且能找到最新的網(wǎng)頁(yè),這需要搜索引擎有一個(gè)強(qiáng)大的網(wǎng)頁(yè)收集器,一般稱為“網(wǎng)絡(luò)蜘蛛”,也
有叫“網(wǎng)頁(yè)機(jī)器人”。
研究搜索引擎技術(shù)的文章不少,但大部分討論的是如何評(píng)價(jià)網(wǎng)頁(yè)的重要性,對(duì)于網(wǎng)絡(luò)蜘蛛研究的文章不多。網(wǎng)絡(luò)蜘蛛技術(shù)并不是一項(xiàng)十分高深的技術(shù),但要做一個(gè)強(qiáng)
大的網(wǎng)絡(luò)蜘蛛,卻非易事。在目前磁盤容量已經(jīng)不是瓶頸的時(shí)候,搜索引擎一直在擴(kuò)大自己的網(wǎng)頁(yè)數(shù)量。最大的搜索引擎Google( http://www.google.com )從2002年的10億網(wǎng)頁(yè)增加到現(xiàn)在近40億網(wǎng)頁(yè);最近雅虎搜索引擎( http://search.yahoo.com/ )號(hào)稱收錄了45億個(gè)網(wǎng)頁(yè);國(guó)內(nèi)的中文搜索引擎百度( http://www.baidu.com )的中文頁(yè)面從兩年前的七千萬(wàn)頁(yè)增加到了現(xiàn)在的兩億多。據(jù)估計(jì),整個(gè)互聯(lián)網(wǎng)的網(wǎng)頁(yè)數(shù)達(dá)到100多億,而且每年還在快速增長(zhǎng)。因此一個(gè)優(yōu)秀的搜索引擎,需要不斷的優(yōu)化網(wǎng)絡(luò)蜘蛛的算法,提升其性能。
或許有些人有疑問,為何搜索引擎需要用網(wǎng)絡(luò)蜘蛛抓取網(wǎng)站所有的網(wǎng)頁(yè),為什么不在搜索者輸入關(guān)鍵詞后只把那些需要的結(jié)果抓取過(guò)來(lái)?這實(shí)際上是效率問題,搜索
引擎不可能在搜索時(shí)實(shí)時(shí)去檢查每個(gè)網(wǎng)頁(yè),而是需要把網(wǎng)頁(yè)先抓取下來(lái),按照關(guān)鍵詞建立好索引,每次搜索的結(jié)果都會(huì)直接從搜索引擎建立好索引的數(shù)據(jù)庫(kù)中查找,
然后把結(jié)果返回給訪問者。 關(guān)于搜索引擎系統(tǒng)架構(gòu)方面的知識(shí), 本文主要介紹網(wǎng)絡(luò)蜘蛛的相關(guān)技術(shù)。
網(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è))開始,讀取網(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ù)的問題,如果按照每個(gè)頁(yè)
面的平均大小為20K計(jì)算(包含圖片),100億網(wǎng)頁(yè)的容量是100×2000G字節(jié),即使能夠存儲(chǔ),下載也存在問題(按照一臺(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è)開始,一個(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è)置了訪問的層數(shù)。例如,在上圖中,A為起始網(wǎng)頁(yè),屬于0層,B、C、D、E、F屬于第1
層,G、H屬于第2層,I屬于第3層。如果網(wǎng)絡(luò)蜘蛛設(shè)置的訪問層數(shù)為2的話,網(wǎng)頁(yè)I是不會(huì)被訪問到的。這也讓有些網(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ǎng)站網(wǎng)頁(yè)的時(shí)候,經(jīng)常會(huì)遇到加密數(shù)據(jù)和網(wǎng)頁(yè)權(quán)限的問題,有些網(wǎng)頁(yè)是需要會(huì)員權(quán)限才能訪問。當(dāng)然,網(wǎng)站的所有者可以通過(guò)協(xié)議讓網(wǎng)絡(luò)蜘蛛不去抓
取(下小節(jié)會(huì)介紹),但對(duì)于一些出售報(bào)告的網(wǎng)站,他們希望搜索引擎能搜索到他們的報(bào)告,但又不能完全免費(fèi)的讓搜索者查看,這樣就需要給網(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è),不同于一般的訪問,如果控制不好,則會(huì)引起網(wǎng)站服務(wù)器負(fù)擔(dān)過(guò)重。今年4月,淘寶網(wǎng)(
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ǎng)站管理員就能知道,哪些搜索引擎的網(wǎng)絡(luò)蜘蛛過(guò)來(lái)過(guò),什么時(shí)候過(guò)來(lái)的,以及讀了多少數(shù)據(jù)等等。如果網(wǎng)站管理員發(fā)
現(xiàn)某個(gè)蜘蛛有問題,就通過(guò)其標(biāo)識(shí)來(lái)和其所有者聯(lián)系。下面是博客中國(guó)( http://www.blogchina.com )2004年5月15日的搜索引擎訪問日志:
 網(wǎng)絡(luò)蜘蛛進(jìn)入一個(gè)網(wǎng)站,一般會(huì)訪問一個(gè)特殊的文本文件Robots.txt,這個(gè)文件一般放在網(wǎng)站服務(wù)器的根目錄下,如: http://www.blogchina.com/robots.txt 。
網(wǎng)站管理員可以通過(guò)robots.txt來(lái)定義哪些目錄網(wǎng)絡(luò)蜘蛛不能訪問,或者哪些目錄對(duì)于某些特定的網(wǎng)絡(luò)蜘蛛不能訪問。例如有些網(wǎng)站的可執(zhí)行文件目錄和
臨時(shí)文件目錄不希望被搜索引擎搜索到,那么網(wǎng)站管理員就可以把這些目錄定義為拒絕訪問目錄。Robots.txt語(yǔ)法很簡(jiǎn)單,例如如果對(duì)目錄沒有任何限
制,可以用以下兩行來(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ǎ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)檫@樣可以讓更多的訪問者能通過(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等文檔,這種由專業(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)系也沒有,在提取網(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)一些麻煩。由于開發(fā)語(yǔ)言不斷的增多,動(dòng)態(tài)網(wǎng)頁(yè)的類型也越來(lái)越多,如:asp、jsp、php等。這些類型
的網(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ì)于這類網(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)一種新的類型,就可以把其處理方式做成一個(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è)的屬性(主要是日期),把得到的屬性和上次抓取的屬性相比較,如果一樣則不用更新。
結(jié)論
本文主要討論了網(wǎng)絡(luò)蜘蛛相關(guān)的技術(shù)要點(diǎn),如果要設(shè)計(jì)好的網(wǎng)絡(luò)蜘蛛, 需要了解更多的技術(shù)細(xì)節(jié),可以參考文獻(xiàn)
網(wǎng)絡(luò)蜘蛛在搜索引擎中占有重要位置,對(duì)搜索引擎的查全、查準(zhǔn)都有影響,決定了搜索引擎數(shù)據(jù)容量的大小,而且網(wǎng)絡(luò)蜘蛛的好壞直接影響搜索結(jié)果頁(yè)中的死鏈接
(即鏈接所指向的網(wǎng)頁(yè)已經(jīng)不存在)的個(gè)數(shù)。目前如何發(fā)現(xiàn)更多的網(wǎng)頁(yè)、如何正確提取網(wǎng)頁(yè)內(nèi)容、如果下載動(dòng)態(tài)網(wǎng)頁(yè)、如何提供抓取速度、如何識(shí)別網(wǎng)站內(nèi)內(nèi)容相同
的網(wǎng)頁(yè)等都是網(wǎng)絡(luò)蜘蛛需要進(jìn)一步改進(jìn)的問題。
|