999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網(wǎng)絡(luò)蜘蛛的職能介紹

2018-03-21 12:29:21王寶盈
計算機與網(wǎng)絡(luò) 2018年1期
關(guān)鍵詞:搜索引擎頁面程序

■王寶盈

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

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

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

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

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

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

網(wǎng)絡(luò)蜘蛛需要抓取網(wǎng)頁,不同于一般的訪問,如果控制不好,則會引起網(wǎng)站服務(wù)器負擔過重。早前淘寶就因為雅虎搜索引擎的網(wǎng)絡(luò)蜘蛛抓取其數(shù)據(jù)引起淘寶網(wǎng)服務(wù)器的不穩(wěn)定。那么網(wǎng)站是否就無法和網(wǎng)絡(luò)蜘蛛交流呢?其實不然,有多種方法可以讓網(wǎng)站和網(wǎng)絡(luò)蜘蛛進行交流。一方面讓網(wǎng)站管理員了解網(wǎng)絡(luò)蜘蛛都來自哪兒,做了些什么,另一方面也告訴網(wǎng)絡(luò)蜘蛛哪些網(wǎng)頁不應(yīng)該抓取,哪些網(wǎng)頁應(yīng)該更新。

每個網(wǎng)絡(luò)蜘蛛都有自己的名字,在抓取網(wǎng)頁的時候,都會向網(wǎng)站標明自己的身份。網(wǎng)絡(luò)蜘蛛在抓取網(wǎng)頁的時候會發(fā)送一個請求,這個請求中就有一個字段為User-agent,用于標識此網(wǎng)絡(luò)蜘蛛的身份。例如Google網(wǎng)絡(luò)蜘蛛的標識為Google-Bot,Baidu網(wǎng)絡(luò)蜘蛛的標識為BaiDuSpider,Yahoo網(wǎng)絡(luò)蜘蛛的標識為Inktomi Slurp。如果在網(wǎng)站上有訪問日志記錄,網(wǎng)站管理員就能知道,哪些搜索引擎的網(wǎng)絡(luò)蜘蛛過來過,什么時候過來的,以及讀了多少數(shù)據(jù)等等。如果網(wǎng)站管理員發(fā)現(xiàn)某個蜘蛛有問題,就通過其標識來和其所有者聯(lián)系。

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

User-agent∶?

Disallow∶

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

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

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

內(nèi)容提取

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

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

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

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

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

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

更新周期

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

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

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

Spider的實現(xiàn)細節(jié)

a.URL的組織和管理考慮到系統(tǒng)自身的資源和時間有限,Spider程序應(yīng)盡可能的對鏈接進行篩選,以保證獲取信息的質(zhì)量和效率。Spider程序?qū)π耈RL的選擇往往與搜索引擎的類型、目標集合、能夠處理信息的類型、資源的限制和是否支持Robots限制協(xié)議有關(guān)。

概括為以下幾點:

訪問過的和重復的URL排除;

文件類型必須被系統(tǒng)處理,不能處理的URL排除;

不在目標集合中的排除,被Rohots.txt限制的排除。

URL排序也是減輕系統(tǒng)負擔的重要手段之一。這就要求計算URL的重要性,如果評估新URI的重要性較高,則會沖掉舊的URL。無論任何情況下,對Spider而言,首先訪問目標集合中的重要站點都是重要且有意義的。但是一個頁面的重要性的準確評估只能在分析其內(nèi)容之后進行??梢愿鶕?jù)一個頁面鏈接數(shù)量的多少來評估此頁面是否重要;或者對URL地址進行解析其中的內(nèi)容例如以“.com”“.edu”“.cn”就較為重要一些,或者可以根據(jù)頁而標題與當前的熱點問題是否相近或相關(guān)來評定其頁面的重要性。決定網(wǎng)站或頁面的重要性的因素很多,也根據(jù)各個搜索引擎的側(cè)重點不同而各異,最終的評估方法都依賴于該搜索引擎對于資源獲取的要求來決定。影響Spider速度的一種重要因素是DNS查詢,為此每個Spider都要維護一個自己的DNS緩沖。這樣每個鏈接都處于不同的狀態(tài),包括∶DNS查詢、連接到主機、發(fā)送請求、得到響應(yīng)。這些因素綜合起來使得Spider變成一個非常復雜的系統(tǒng)。

b.Spider的遍歷規(guī)則:頁面的遍歷主要有兩種方式,深度遍歷和廣度遍歷。深度遍歷算法可以獲得的信息較為集中,信息比較完整,但覆蓋面就比較有限,廣度遍歷算法則相反。

c.Spider實現(xiàn)中的主要問題:雖然Spider的功能很強,但也存在不少的問題。

①如果一組URL地址沒有被組外URL所鏈接到,那么Spider就找不到它們。由于spider不能更新過快(因為網(wǎng)絡(luò)帶寬是有限的,更新過快就會影響其他用戶的正常使用),難免有不能及時加入的新網(wǎng)站或新頁面。

②spider程序在遍歷Web時也存在危險,很可能遇到一個環(huán)鏈接而陷入死循環(huán)中。簡單的避免方法就是忽略已訪問過的URL,或限制網(wǎng)站的遍歷深度。

③Spider程序是大型搜索引擎中很脆弱的部分,因為它與很多的Web報務(wù)器、不同的域名服務(wù)器打交道,而這些服務(wù)完全在系統(tǒng)的控制之外。由于網(wǎng)絡(luò)上包含了大量的垃圾信息,Spider很可能會收取這些垃圾信息。一個頁面出現(xiàn)問題也很可能引起Spider程序中止、崩潰或其他不可預(yù)料的行為。因此訪問Internet的Spider程序應(yīng)該設(shè)計得非常強壯,充分考慮各種可能遇到的情況,讓Spider在遇到各種情況時可以采取相應(yīng)的處理行為,而不至于獲得一些垃圾信息或者直接就對程序本身造成危害。

Spider構(gòu)架

發(fā)現(xiàn)、搜集網(wǎng)頁信息需要有高性能的“網(wǎng)絡(luò)蜘蛛”程序Spider去自動地在互聯(lián)網(wǎng)中搜索信息。一個典型的網(wǎng)絡(luò)蜘蛛工作的方式∶查看一個頁面,并從中找到相關(guān)信息,然后它再從該頁面的所有鏈接中出發(fā),繼續(xù)尋找相關(guān)的信息,以此類推。網(wǎng)絡(luò)蜘蛛在搜索引擎整體結(jié)構(gòu)中的位置如下圖所示:初始化時,網(wǎng)絡(luò)蜘蛛一般指向一個URL(Uniform Resource Locator)池。在遍歷Internet的過程中,按照深度優(yōu)先或廣度優(yōu)先或其他啟發(fā)式算法從URL池中取出若干URL進行處理,同時將未訪問的URL放入URL池中,這樣處理直到URL池空為止。對Web文檔的索引則根據(jù)文檔的標題、首段落甚至整個頁面內(nèi)容進行,這取決于搜索服務(wù)的數(shù)據(jù)收集策略。

網(wǎng)絡(luò)蜘蛛在漫游的過程中,根據(jù)頁面的標題、頭、鏈接等生成摘要放在索引數(shù)據(jù)庫中。如果是全文搜索,還需要將整個頁面的內(nèi)容保存到本地數(shù)據(jù)庫。網(wǎng)絡(luò)蜘蛛為實現(xiàn)其快速地瀏覽整個互聯(lián)網(wǎng),通常在技術(shù)上采用搶先式多線程技術(shù)實現(xiàn)在網(wǎng)上搜索信息。通過搶先式多線程的使用,你能索引一個基于URL鏈接的Web頁面,啟動一個新的線程跟隨每個新的URL鏈接,索引一個新的URL起點。當然在服務(wù)器上所開的線程也不能無限膨脹,需要在服務(wù)器的正常運轉(zhuǎn)和快速收集網(wǎng)頁之間找一個平衡點。

在整個搜索引擎工作過程中,整個蜘蛛的數(shù)據(jù)入口是URL地址,數(shù)據(jù)出口是Web頁倉庫。Spider程序發(fā)現(xiàn)URL鏈接以后,經(jīng)過Stor處理模塊,將我們所需要的網(wǎng)頁數(shù)據(jù)存儲在Web頁倉庫中,為以后的形成網(wǎng)頁快照、網(wǎng)頁分析提供基礎(chǔ)數(shù)據(jù)。在Spider程序工作的過程中,發(fā)現(xiàn)新的鏈接,對該鏈接進行分析,形成新的搜索地址,作為下一次Spider程序的數(shù)據(jù)輸入。這個過程的實現(xiàn)就是Spider程序的隊列管理。

Spider程序的工作過程,簡單來講,就是不斷發(fā)現(xiàn)新的鏈接,并對該鏈接對應(yīng)的頁面分析存儲的工程。

一、索引器:索引器的功能是理解搜索器所搜集的信息,從中抽取出索引項,用于表示文檔以及生成文檔庫的索引表。索引項有客觀索引項和內(nèi)容索引項兩種:客觀項——與文檔的語意內(nèi)容無關(guān),如作者名、URL、更新時間、編碼、長度、鏈接流行度(Link Popularity)等等;內(nèi)容索引項——是用來反映文檔內(nèi)容的,如關(guān)鍵詞及其權(quán)重、短語、詞、字等等。內(nèi)容索引項可以分為單索引項和多索引項(或稱短語索引項)兩種。單索引項對于英文來講是英語單詞,比較容易提取,因為單詞之間有天然的分隔符(空格);對于中文等連續(xù)書寫的語言,必須采用多索引項,進行詞語的切分。索引器可以使用集中式索引算法或分布式索引算法。當數(shù)據(jù)量很大時,必須實現(xiàn)實時索引(Real-time Indexing),否則不能夠跟上信息量急劇增加的速度。索引算法對索引器的性能(如大規(guī)模峰值查詢時的響應(yīng)速度)有很大的影響。一個搜索引擎的有效性在很大程度取決于索引的質(zhì)量。由于漢文字符多,處理復雜,中文詞的處理不容易。索引器中的中文分詞技術(shù):一個分詞系統(tǒng)=分詞程序+分詞詞典(1)最大匹配法MM(2)反向最大匹配法RMM(1)最佳匹配法OM(1)雙向掃描法(百度的分詞就采用了雙向掃描法)系統(tǒng)關(guān)鍵是:分詞精度和分詞速度。

二、建立索引的方法:為了加快檢索速度,搜索引擎要對Snider程序搜集到的信,建立倒排索引。①全文索引和部分索引有些搜索引擎對于信息庫中的頁面建立全文索引,有些只建立摘要部分索引或者每個段落前面部分的索引。還有些搜索引擎在建立索引時,要同時考慮超文本的不同標記所表示的含義,如粗體、大字體顯示的東西往往比較重要。有些搜索引擎還在建立索引的過程中收集頁面中的超鏈接。這些超鏈接反映了收集到的信息之間的空間結(jié)構(gòu)。利用這些結(jié)果信息可以提高頁面相關(guān)度判別時的準確度。②是否過濾無用詞由于網(wǎng)頁中存在這許多無用(無實際意義)單詞,例如“啊”“的”等。這此詞往往不能明確表達該網(wǎng)頁信息,所以有些搜索引擎保存一個無用詞匯表,在建立索引時將不對這些詞匯建立索引。③是否使用Meta標記中的信息網(wǎng)頁中的Meta標記用來標注一些非常顯示性的信息。有些網(wǎng)頁將頁面的關(guān)鍵詞等信息放在其中。便于在建立索引的過程中提高這些詞匯的相關(guān)度。④是否對圖像標記中的替換文本(ALT text)或頁面中的注解建立索引由于現(xiàn)有的搜索引擎對圖像的檢索技術(shù)還不太成熟,大多數(shù)搜索引擎不支持圖像的檢索。在超文本的結(jié)構(gòu)頁面中,圖像標記中往往存放著圖像的替換信息。這些信息說明了該圖像對應(yīng)的圖像的基本信息。⑤是否支持詞干提取技術(shù)。

三、建立索引的過程:分析過程對文檔進行索引并存儲到存儲桶中排序過程。

Spider處理流程

當一個URL被加入到等待隊列中時Spider程序就會開始運行。只要等待隊列中有一個網(wǎng)頁或Spider程序正在處理一個網(wǎng)頁,Spider程序就會繼續(xù)它的工作。當?shù)却犃袨榭詹⑶耶斍皼]有處理任何網(wǎng)頁,Spider程序就會停止它的工作。

Spider程序?qū)崿F(xiàn)初探

Spider程序是從網(wǎng)上下載Web頁面再對其進行處理,為了提高效率,很顯然要采用多線程的方法,幾個Spider線程同時并行工作,訪問不同的鏈接。構(gòu)造Spider程序有兩種方式。第一種是將它設(shè)計為遞歸程序,第二種是將它編寫成非遞歸的程序。遞歸是在一個方法中調(diào)用它本身的程序設(shè)計技術(shù)。當需要重復做同樣的基本任務(wù)或在處理先前任務(wù)時可展現(xiàn)將來的任務(wù)信息時,遞歸是相當實用的。例如下面的代碼:

void RecursiveSpider(String url){

download URL……

parse URL……

while found each URL

call RecursiveSpider(found URL)……

process the page just downloaded……

}

這段代碼查看單獨的一個Web頁的任務(wù)放在一個RecursiveSpider方法中。在此,調(diào)用RecursiveSipder方法來訪問URL。當它發(fā)現(xiàn)鏈接時,該方法調(diào)用它自己。遞歸方法在訪問很少的網(wǎng)頁時,可以使用。因為當一個遞歸程序運行時要把每次遞歸壓入堆棧(堆棧是個程序結(jié)構(gòu),每次調(diào)用一個方法時,將返回地址存入其中)。如果遞歸程序要運行很多次,堆棧會變得非常大,它可能會耗盡整個堆棧內(nèi)存而導致程序中止。遞歸還有個問題是多線程和遞歸是不兼容的,因為在這一過程中每一個線程都是自己的堆棧。當一個方法調(diào)用它自身時,它們需要使用同一個堆棧。這就是說遞歸的Spider程序不能使用多線程。非遞歸程序不調(diào)用自身,而是采用隊列的方法。隊列就是排隊,要得到程序的處理就必須在隊列中排隊等待。我們在構(gòu)造Spider時就采用該方式。使用非遞歸的方法時,給定Spider程序一個要訪問的頁面,它會將其加入到要訪問的站點的隊列中去。當Spider發(fā)現(xiàn)新的鏈接時,也會將它們加入到該隊列中。Spider程序會順序處理隊列中的每一個網(wǎng)頁。實際在Spider程序中使用了四個隊列;在Spider程序的構(gòu)造過程中,有兩種方法用于訪問隊列的管理。一種方法就是基于內(nèi)存的隊列管理,第二種方法就是基于SQL的隊列管理。

基于SQL的隊列和基于內(nèi)存的隊列都是有效的,網(wǎng)上做實驗的結(jié)果表明,在系統(tǒng)運行過程中間,如果Spider的訪問任務(wù)隨著網(wǎng)頁數(shù)量增加,基于內(nèi)存的Spider程序效率會下降。因而,選擇基于SQL的隊列管理方案來構(gòu)造本Spider 程序。

等待隊列:在這里,URL等待被Spider程序處理。新發(fā)現(xiàn)的URL被加入到該處理隊列。當Spider開始處理URL時,它們被傳送到這一隊列。當一個URL被處理后它被移送到錯誤隊列或完成隊列。錯誤隊列:如果下載某一頁面時出現(xiàn)錯誤,它的URL將被加入該隊列。該隊列的URL不會再移動到其他隊列。被列入該隊列的URL將不再會被Spider程序處理。

完成隊列:如果頁面的下載沒有出現(xiàn)任何錯誤,則該頁面將會被加入完成隊列。加入該隊列的URL不會再移動到其他隊列。同一時刻一個URL只能在一個隊列中。其實通俗的講就是該URL處于什么狀態(tài),URL狀態(tài)的變化過程就是程序處理URL的過程。Spider程序會遇到三種連接:內(nèi)部連接、外部連接及其他連接。

猜你喜歡
搜索引擎頁面程序
大狗熊在睡覺
刷新生活的頁面
試論我國未決羈押程序的立法完善
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
廣告主與搜索引擎的雙向博弈分析
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 日韩一级二级三级| 中文字幕在线永久在线视频2020| 国产精品亚洲综合久久小说| 亚洲v日韩v欧美在线观看| 波多野结衣一区二区三区AV| 夜精品a一区二区三区| 亚洲福利一区二区三区| 午夜电影在线观看国产1区| 中文字幕2区| 久久精品视频一| 亚洲三级视频在线观看| 日本一区二区三区精品AⅤ| 91毛片网| 女人av社区男人的天堂| 丁香五月激情图片| 久久国产精品77777| 美女毛片在线| 亚洲成人高清无码| 无码免费视频| 国产91精选在线观看| 91色爱欧美精品www| 久久免费视频6| 国产网友愉拍精品视频| 黄色不卡视频| 激情午夜婷婷| 浮力影院国产第一页| 亚洲国产天堂久久综合| 97超爽成人免费视频在线播放| 国产在线第二页| 中国国产高清免费AV片| 亚洲精品免费网站| 国产69精品久久| 一级毛片中文字幕| 国产精品制服| 欧美日本激情| 免费a级毛片视频| 日韩成人在线一区二区| 波多野结衣一区二区三区四区视频| 亚洲三级视频在线观看| 91久久精品日日躁夜夜躁欧美| 玖玖精品视频在线观看| 最新无码专区超级碰碰碰| 91 九色视频丝袜| 亚洲制服丝袜第一页| 精品無碼一區在線觀看 | 国产亚洲视频播放9000| 午夜国产不卡在线观看视频| 动漫精品啪啪一区二区三区| 午夜福利视频一区| 成人一区专区在线观看| 国产激爽大片高清在线观看| 91在线精品麻豆欧美在线| 色综合色国产热无码一| 免费福利视频网站| 国产三区二区| 国产精品自在自线免费观看| 国产三区二区| 久久99国产精品成人欧美| 人妻无码中文字幕第一区| 国产一区二区精品高清在线观看| 夜夜操天天摸| 久久精品人人做人人| 91无码人妻精品一区| 欧美一级在线| 亚洲中文字幕97久久精品少妇| 欧美中文字幕一区二区三区| 5555国产在线观看| 国产精品大尺度尺度视频| 精品久久久久成人码免费动漫| 亚洲浓毛av| 色婷婷综合激情视频免费看| 91视频青青草| 欧美亚洲国产一区| 996免费视频国产在线播放| 免费国产高清视频| 日本免费高清一区| 国产一级小视频| 激情网址在线观看| 99精品高清在线播放| 重口调教一区二区视频| 精品久久高清| 99国产精品一区二区|