南京航空航天大學 周 萍
?
基于關鍵詞的主題網絡爬蟲
南京航空航天大學 周 萍
【摘要】通常來說,用戶從搜索引擎獲取的網頁中,大部分都是不符合特定需求的,只有一小部分才是想要的結果。網絡爬蟲在搜索引擎中扮演著重要的角色,起著關鍵性的作用。本文主要講述了基于關鍵詞的網絡爬蟲,通過使用相關性決策機制和本體的知識來設計出最合適的爬蟲抓取路徑。和傳統的網絡爬蟲相比較,本文設計的爬蟲具有最優性,并通過高準確性來提高搜索效率。
【關鍵詞】網絡爬蟲;基于特定主題的網絡爬蟲;本體;關鍵詞;知識路徑
網絡爬蟲主要下載主題相關的網頁或者滿足用戶需求的特定網頁,而不是像傳統的搜索引擎那樣下載整個Web網頁庫。因此,主題爬蟲的基本要求是選擇那些滿足用戶需求的網頁。鏈接分析算法和網頁排序算法一樣,通常根據URLs的相關性和搜索策略對URLs進行排序,然后優先下載那些特定網頁。
本文提出了基于關鍵詞的主題網絡爬蟲算法,該算法是根據優先級和領域本體找出網頁的URLs 。此外,知識路徑在尋找主題相關網頁中也發揮著重要的作用。
網絡爬蟲是搜索引擎的重要模塊。在傳統的網絡爬蟲中,將種子URL作為爬蟲工作的初始URL。在分析了種子URL的網頁內容之后,爬蟲開始下載網頁,然后抽取出所有的超鏈接,并把這些鏈接存儲到URL隊列中,遞歸執行上述過程,直到獲得了相關結果。
網絡爬蟲的關鍵問題就是從web中只下載重要的網頁,然后分析這些網頁中URL的優先級,并根據優先級放到URL隊列中的合適位置。網路爬蟲的兩大問題如下所示:(1)計算爬蟲抓取的網頁的優先級;(2)設計爬蟲抓取網頁的爬行策略。
1.1背景
如今網絡的規模越來越大,信息的更新率變快。網絡擁有大量的數據信息,所以爬蟲需要根據URL的優先級來下載滿足需求的網頁。
爬蟲根據領域知識下載一小部分網頁,這些網頁的大部分內容是主題相關的,因此沒有必要從網上下載所有的網頁。網頁內容的主題重要度主要取決于鏈接和被訪問量。因此,很有必要提出一個可靠的爬蟲算法。
1.2爬蟲算法的研究設計及具體步驟
爬蟲算法的基本步驟是將URLs種子隊列作為輸入,然后重復執行分布式的步驟。從地址列表中取出某個地址,確認該地址的主機名,然后將網頁翻譯成對應的文檔信息,接著抽取出其中的超鏈接。對于每一個被抽取的鏈接,檢查它們的絕對地址,并把它們添加到URLs的列表中,前提是它們之前沒有被訪問過。該算法規則需要一個組件來存儲下載的URLs隊列。
此外,還需要將主機地址解析成以下三部分:(1)一部分用來下載文檔;(2)一部分用來從超文本標記語言中抽取超鏈接;(3)一部分用來判斷該地址之前是否被訪問過。
本文設計的爬蟲算法主要分六步,具體步驟如下所示:(1)選擇一個URL種子作為算法的輸入;(2)構造本體知識樹,并找出知識路徑;(3)下載初始輸入URL對應的網頁;(4)從下載的網頁中抽取出超鏈接內容,并把它們插入到URL隊列中;(5)挖掘更多的主題相關的URL,下載該URL對應的網頁,并從中抽取出超鏈接,最后把這些超鏈接插入到URL隊列中;(6)重復上述步驟,獲得更多的主題相關的結果。
2.1實驗結果
基于關鍵詞的主題網絡爬蟲和傳統的網絡爬蟲分別作了對比實驗。實驗中,軟件系統和硬件環境是不變的。分別比較網絡爬蟲的關鍵詞有本體和沒有本體這兩種情況。
實驗中用到的參數是:Depth for looking out=2;Number of thread=5;Initial seed=1;Seed universal resource locator is=http:// www.google.com;Concept in ontology=Java。
基于相同的軟件系統和硬件環境,實驗獲得的結果如表2.1所示:

表2.1 兩種爬蟲系統的比較
2.2本體和知識路徑
本體是結構信息的其中一項技術,它也叫樹或者圖。本體將信息系統進行分層設置,分層的結構是一個有向無環圖(directed acyclic graph ,DAG)。參考本體根據不同的關聯關系設置了“is a”,“has a”,“part of”。本體被用來構造信息和過濾信息。
假設本體結構如圖2.1所示,其中包括不同的結點以及相互之間的聯系,這些聯系代表了結點之間的關系。
本體結構類似于Google網頁目錄的分層目錄結構。假如尋找“java”,知識路徑是:Branch->computer->programming-> java。爬蟲根據這條URL開始抓取網頁,初始的URL種子是:http://www. google.com。在下載網頁之后,從頁面內容中尋找可用的鏈接(比如U1,U2……Un),然后把這些鏈接加入到URL隊列中。這些鏈接U1,U2……Un需要被檢查是否和關鍵詞相匹配,爬蟲的知識路徑就是由這些關鍵詞組成的。第二條URL是:http://www.google. com/references/computer.html,其中包含關鍵詞“computer”,和圖的第一層級的結點相匹配。第三條URL是:http://www.google.com/ references/computer/programming.html第四條URL是:http://www. google.com/references/computer/programming/java.html
上述算法不能通過“art”或者其他分支來找到目標節點“java”,因為父母結點“Computer”和“java”相關。
相較于其他網絡爬蟲來說,使用基于關鍵詞的主題網絡爬蟲的優點是智能性、高效性、不需要關聯性反饋。本文提出的爬蟲算法減少了爬蟲抓取網頁的數量,因此爬蟲抓取的時間變少,這是因為爬蟲只下載主題相關的網頁。 主題網絡爬蟲的目的就是獲取主題相關的網頁,舍棄主題無關的網頁。本文設計了基于最佳知識路徑的爬蟲的本體,本體通過關聯決策機制來獲取網頁。和傳統的爬蟲相比較,本文提出的爬蟲具有如下優勢:(1)從下載的網頁中獲取URLs的數目變少;(2)爬蟲的抓取時間變少。

圖2.1 本體的結構