王超群
?
網絡爬蟲技術研究
王超群
江漢大學數學與計算機科學學院,湖北 武漢 430056
在互聯網高速發展的今天,各類信息數據呈爆炸式增長,如何在信息繁雜的“大海”中快速并且準確的得到我們所需要的數據,成為了一大難題,并且在互聯網加的時代,大數據云計算紛紛崛起,如何獲取大量的數據基礎,也成為了一大難題,而網絡爬蟲是解決這些問題最重要的技術,研究將論述網絡爬蟲的分類、原理以及其應用。
網絡爬蟲;高效性;深層網絡爬蟲;信息檢索
網絡爬蟲(外文名Web Crawler),又被稱為網頁蜘蛛(web Spider),螞蟻、在FOFA社區中間[1],更經常的稱為網頁追逐者,它從萬維網上獲得網頁,并通過網頁中其他鏈接在萬維網上采集信息資源,是按照一定的人為規則自動識別并抓取萬維網信息的程序和腳本。網絡爬蟲通常從一些精心挑選的種子URL開始“爬行”,將這些URL放入待抓取的URL隊列,從待抓取的URL隊列中取出URL,解析DNS并且得到主機ip ,并將URL對應的網頁下載下來,存儲進已下載網頁庫中。直到遍歷Web,這種行為被稱為網絡爬行(Web Crawler)。
網絡爬蟲按照系統結構和實現技術,大體上可以分為如下幾類:通用爬蟲(General Purpose Web Crawler)、聚焦網絡爬蟲(Focused Web Crawler)、深層網絡爬蟲(Deep Web Crawler)。在實際運用中往往是多種技術的綜合運用。
2.1 通用網絡爬蟲
通用爬蟲是從一個或者若干個初始網頁開始,爬取全網的網頁,所以主要用來作為各大網站的搜索引擎,但是由于商業原因,這些技術細節很少公開,例如Google 、百度等。其主要組成部分大致有URL鏈接庫、文檔內容模塊、文檔解析模塊、URL過濾模塊,當通用爬蟲工作時,它先從預定的若干精選的URL開始,獲得初始頁面上的URL列表,并且在爬取URL的同時下載該頁面,再通過文檔解析模塊將需要的內容保存到對應的數據庫中,并再獲得當前頁面新的URL,保存到URL鏈接庫中,直到滿足停止條件。
通用爬蟲因為爬行范圍和數量都十分龐大,導致其對爬行速度以及存儲的要求都很高,并且由于數量巨大導致待更新的頁面也很多,導致這類爬蟲每次更新都要花費很多時間,總結起來,其局限性為[2]:(1)由于抓取的是全網頁面,導致采集的信息中包含大量用戶不需要的信息。(2)通用爬蟲大多是針對關鍵詞檢索,所以對于語義信息的查詢等要求,不易實現。雖然有一定缺陷,但通用網絡爬蟲在廣泛主題下的搜索,還是有較大的使用價值。
2.2 聚焦網絡爬蟲
聚焦網絡爬蟲(Focused Crawler),是一種定向抓取有關聯的頁面的資源的爬蟲。聚焦爬蟲通過給定的目標,有目的性的訪問萬維網上相關網頁,并且有選擇性的抓取網頁。聚焦爬蟲不像通用爬蟲,它會先通過算法,對獲得的URL進行分析并過濾掉和目標主題無關的鏈接,將有用的保留到URL隊列中。接著它會從隊列中通過定好的策略,找到合適的URL,重復上述過程,直到滿足一定條件后停止爬行。因此,聚焦爬蟲相比通用爬蟲,具有得到信息更精確,效率更高的特點,當然,聚焦爬蟲也有其缺陷,如下幾個問題:
(1)如何對目標網頁進行描述;(2)如何對網頁和數據進行分析和過濾;(3)對URL 搜索和排序策略。
2.3 深層網絡爬蟲(Deep Web Crawler)
網絡數據的快速增加,大量數據因此累積而被埋藏,而傳統的搜索方式無法搜索到這部分有價值的頁面,所以這部分內容對于大部分來說是隱藏的和不可見的,稱之為 Deep Web。2000 年 Bright Planet指出[3]:Deep Web中可訪問信息容量是由靜態頁面構成的Surface Web的幾百倍,是萬維網上數據量最大、發展最快的新型信息資源。實現大規模 Deep Web頁面的采集是有效的幫助人們快速、準確地獲取并利用 Deep Web的海量信息的一個有效途徑。
深層網絡爬蟲與一般爬蟲的相區別的是,深層網絡爬蟲在下載完成頁面后,沒有直接將所有URL進行遍歷,而是通過特定的算法策略將其進行分類處理,對于不同的類型URL使用不同的算法進行查詢參數 ,并將參數二次提交給服務器。如果提交的查詢參數正確,才會獲得的到隱藏的頁面和URL。
因為深層網絡爬蟲的訪問是用戶提交表單查詢的,所以想要爬取到深層頁面需要面對一下問題[4]:(1)需要設計高效快捷的算法策略,去獲取數量龐大的深層Web頁面;(2)獲取深層頁面,需要驗證用戶提供的表單信息,一旦出錯,很難獲取頁面;(3)要使用一些腳本語言,去支持分析客戶端的深層Web頁面。
隨著信息技術的高速發展,信息化社會逐步走向大數據時代,大數據的最顯著的特點是數據量大、數據形式復雜、數據處理速度快和數據價值高這四個方面,因為萬維網成為了一個巨大的數據庫,所以如何從海量數據庫中采集和提取數據是我們面臨的挑戰。而網絡爬蟲的出現為解決這個難題做出了巨大貢獻。網絡爬蟲在 Web 信息搜索與數據挖掘中的應用[5],極大地提高了Web信息的采掘質量,為整個搜索與挖掘系統奠定堅實的基礎;在檔案信息采集中的應用[6],為從海量信息中采集和提取與檔案資源建設相關信息提供巨大方便;在社交網絡中,為研究用戶偏好,然后為每個用戶制定個性化方案及趨向預測提供巨大幫助。
研究對網絡爬蟲的定義以及原理進行介紹,并且對主流的多種爬蟲進行了分析,闡述其優缺點,并結合互聯網加下,最為熱門的大數據的應用,闡述了網絡爬蟲的應用場景,隨著人們對信息的需求不斷加深,對網絡爬蟲的研究也會更加深入,網絡爬蟲也會走向更加智能化、高效化。
[1]Downes,S.Semantic networks and social network ks[J].The Learning Organization,2005,12(5);411-417.
[2]孫立偉,何國輝,吳禮發.網絡爬蟲技術的研究[J].電腦知識與技術,2010,6(15):4112-4115.
[3]M K.Bergman.The Deep Web:Surfaceing Hidden Value[EB/OL].http://www.completeplanet.com/Tutorials/DeepWeb,2000.
[4]王舜燕,李蕾,吳兵華.基于ID3分類算法的深度網絡爬蟲設計[J].現代圖書情報技術,2008(6):41-45.
[5]楊定中.網絡爬蟲在web信息搜索與數據挖掘中應用[J].計算機工程與設計,2009,30(24)12.
[6]楊文剛,韓海濤.大數據背景下基于主題網絡爬蟲的檔案信息采集[J].蘭臺世界,2015(20):20-21.
Research on Web Crawler Technology
Wang Chaoqun
School of mathematics and computer science,Jianghan University,Wuhan,Hubei 430056
The rapid development of the Internet today,all kinds of information and data was explosive growth,how to in the complex information from the "sea" fast and accurately get we need data,has become a big problem,and in the Internet era,the big data cloud computing numerous rise,how to obtain a lot of data base,has also become a major problem,and web crawler is to solve these problems the most important technology.This paper discusses the web crawler's classification,the principle as well as its application.
web crawler;high efficiency;deep web crawler;information retrieval
TP393.09
A
1009-6434(2016)6-0181-02