李慧 趙旭
【摘要】隨著互聯網上的信息每天都以指數數量級的速度爆炸性增長,Internet中的資源令人眼花繚亂,如何能夠迅速準確地找到所需的信息,已成為眾多信息檢索人員所面臨的一個問題,而搜索引擎在這方面起到了具足輕重的作用。本文主要分析了基于精確搜索引擎中網絡爬蟲的設計與實現,并提出了相應的方法和手段。通過研究精確搜索引擎技術,分析了一般的網絡爬蟲的工作原理,在此基礎上設計了一個更加精確的搜索引擎系統,在這個系統中將內容和鏈接運用邏輯域的方法相結合,用戶可以根據選擇的關鍵詞的邏輯關系來進行搜索。
【關鍵詞】精確搜索引擎;網絡爬蟲;算法;邏輯域
一.引言
隨著科技的進步,通用搜索引擎無論是在技術上還是在硬件條件上都有了明顯的提高。但是,即使最大通用搜索引擎到現在為止也只能覆蓋不到一半的網絡,并且對搜索數據庫的更新,一般至少也需要數十天甚至數百天。其原因是因為想要通過搜索引擎的搜索功能去滿足用戶想要得到的查詢結果,雖然這種通過“廣泛撒網”的搜索方法有其不可替代的優點,但卻往往給用戶帶來太多不必要的垃圾信息。
二.精確搜索引擎
2.1精確搜索引擎的特點
通用搜索引擎的缺點來自于它們力圖覆蓋整個網絡,并且不通過任何處理過程便把所有可能的主題作為查詢服務的目標。精確搜索引擎由于其面向主題就克服了以上缺點,具備更高的查準率和查全率,因為它們將搜索信息的內容限定在一定的領域內有效鎖定了搜索的范圍。一個面向主題的搜索引擎用一部分符合邏輯關系的事先選定好的網頁作為體現用戶興趣的樣本。為了獲得更多相關的網頁,主要精確搜索引擎從一個給定的集合出發,對基于內容的網頁相關度算法進行分析。
精確的搜索引擎其功能要求與通用搜索引擎是不相同的,主要體現在以下幾點:
(1)通用搜索引擎的目標是對整個Internet的資源進行收集,搜集的網頁越多,搜索引擎就越全面,而面向主題的搜索引擎只需要針對既定內容的既定主題進行搜集,兩者在搜索的網頁信息量上在不同的數量級上。
(2)通用搜索引擎幾乎要對網頁內所有的信息都進行分析、檢索,而精確搜索引擎的網頁抓取準確性很高,能夠提取用戶 關心的主題邏輯進行搜索,搜索的范圍相對縮小,這樣更有利于快速搜集到用戶關心的網頁。
(3)在通用搜索引擎中搜索的是整個篇幅的網頁,而精確搜索引擎只索引出網頁內與主題相關的信息,更有利于用戶查找信息。
2.2網絡爬蟲的應用
網絡爬蟲可以被看作是為Internet開發的最有用的工具之一,它能夠從數以千計的各不相同的站點中收集信息。若將真個互聯網看做是一個網站,那么網絡爬蟲就可以利用這個原理把互聯網上所有的網頁都抓取下來。
相對于通用網絡爬蟲,主題精確搜索引擎的爬蟲還需要解決三個主要問題:
(1)對抓取目標的描述或定義的邏輯關系判定
(2)對網頁或數據的分析與過濾
(3)對URL的搜索策略
網頁的抓取策略可以分為深度優先、廣度優先和最佳優先三種。深度優先在很多情況下會導致爬蟲的陷入問題,常見的是廣度優先和最佳優先方法。
三.高精確搜索引擎的設計
本文的設計采取了面向主題的精確搜索策略,在針對搜索內容中關鍵字的查詢時確定下一個主題,應用爬蟲程序直接從站點數據表中抓取網頁。由于Internet上的各種信息在爬蟲爬行過程中都會遇到,所以在創爬蟲建時不僅需要確保它能夠檢索數據,而且還要做到分析數據和理解數據。由于從Web站點找到的大部分數據都存儲在HTML文檔之中,因此HTML的數據類型為本系統中所關心的數據,采用這種做法大大縮小了查找的范圍,同時也為下一步的網頁解析工作奠定了基礎。本系統的網絡爬蟲分為前臺和后臺兩個部分。前臺為用戶提供添加網址,作為種子站點,其后再選擇主題進行索引。后臺則是一個完整的爬蟲程序,其構造是采用的多線程技術,這種構造能夠從種子站點數據表中讀取網頁地址,并且分析網頁代碼。
本著一切立足于實際的理念,依據擬定的系統實施方案,對整個系統各方面的需求進行了分析。在本次系統的實現上,主題精確搜索的數據采集是通過爬蟲程序來完成,與此同時使用了多種輔助策略。爬蟲程序的采集器從萬維網中采集回來數據經過既設的處理(保留主題范圍內的網頁,丟棄范圍之外的網頁)。其運行的方法是在每爬行完一個頁面后,它就會抽取出相應網頁中的鏈接,再剔除不可能與主題相關的鏈接和自己爬行的鏈接,然后將余下的鏈接按一定的順序加入到鏈接列表中。排序的規則就是預測被連接的頁面與主題的相關程度,相關性高的鏈接將會排在列表靠前的位置。最后,取出列表中排列最前的鏈接,那么用戶就得到了與主題相關的頁面。
本系統模型設計基本上可以看作為:
(1)從網上抓取網頁
(2)建立數據庫
(3)主題相關度分析
(4)按照相關度排序
通過對本系統模擬發仿真實驗,充分說明了一個主題爬蟲設計方案的可行性,以主題爬蟲為基礎可以開發主題精確搜索引擎,結合到具體應用,主題爬蟲可以在受限領域內進行面向主題的信息采集。由此可見,主題精確搜索引擎雖然小巧,但是由于它使用了多種精確主題搜索引擎,使得它在一個特定主題下比通用搜索引擎要準確貼切,這樣,用戶就能更快找到需要的信息。
該系統所定義的是面向主題的精確搜索引擎,就總體而言,構造了一個可以從自定義的web站點下載所有HTML文件的多線程網絡爬蟲程序,所謂多線程是指同一個程序在同一時刻運行超過一個任務的能力,采用多線程技術可以提高爬蟲的運行效率。一個網絡爬蟲需要同時下載多張網頁,想要完成此任務,爬蟲程序必須向服務器發出請求然后接受這些網頁。程序等待響應的過程就是程序執行的一個瓶頸,因為盡管程序已經請求了網頁,但必須要等待請求經過Internet向web服務器傳輸。這種情況下,多線程技術將數個網頁的等待時間結合在一起,而不是一個接一個的執行。當爬蟲程序使用線程時,可以在計算遍歷算法和其他輔助運算時同步訪問網站,這樣更有利于爬蟲的后臺操作。通過在多個作業之間的切換,可以使程序充分利用CPU的占有率和網卡資源。
四.高精確搜索引擎的優點和前景
主題搜索引擎已成為一個新的研究、開發領域,在此基礎上,也應當對網絡爬蟲進行適當改進,因為在局域網的環境下,CPU的速度、硬盤速度、局域網速度等都會影響網絡爬蟲的線程性能,其中某一個環節的遲緩都將會對爬蟲的抓取和分析性能不利。此外,Internet領域的快速發展,新的網站、新的工具層出不窮,一個好的精確的搜索引擎需要不斷地跟新和提高。
本文中設計的系統與現有的知名搜索引擎相比,其突出優點就是利用邏輯域的判別分析方法把主題關鍵詞聯系起來,使得檢索結果邏輯匹配度提高,能夠達到精確搜索的目標。同時,由于設計為“金字塔”型任務承擔模式,各個服務器能夠分擔適量的檢索任務,頂級服務器由于是站在基礎服務器的基礎上進行工作,所以其承擔的任務量并沒有增加。此外,由于在基層服務器就主動放棄檢索相關度不高的網頁,所以在總檢索網頁數量大幅度下降的情況下,檢索出來的網頁質量會大幅增高,能夠在邏輯上更好地匹配關鍵詞,從而能夠達到精確搜索的目的。
參考文獻:
[1]盧亮,張博文.搜索引擎原理、實踐與應用[M].北京:電子工業出版社,2007.
[2]謝新洲.網絡信息檢索技術與案例[M].北京:北京圖書館出版社,2005:29-30.
[3]周立柱,林玲.聚焦爬蟲技術研究綜述[J].計算機應用,2005,25(9):1965-1989.