魏冬梅+何忠秀+唐建梅


摘要:隨著大數(shù)據(jù)和云計算等新一代互聯(lián)網(wǎng)技術的迅速發(fā)展,Web信息量逐日海量遞增。從海量數(shù)據(jù)中提取有效信息,挖掘有潛在價值的關系成為當前的研究熱點,這對揭示已知規(guī)律、預測未知結果有極大的輔助作用。對當前Web信息獲取方法、原理和關鍵技術進行研究分析,重點闡述了數(shù)據(jù)采集相關技術中網(wǎng)絡爬蟲算法的分類與應用。提出一種以Python和相關庫為主要工具,結合模塊化方法,構建Web文本信息獲取系統(tǒng)框架與流程的策略。案例中通過定義采集函數(shù),實現(xiàn)對給定的維基百科詞條,快速搜索與該詞條相關信息,對詞條內(nèi)鏈接和外鏈接進行有效爬取。結果表明,Python在數(shù)據(jù)采集方面具有較高的有效性和可擴展性。
關鍵詞:Python;信息獲取;網(wǎng)絡爬蟲;正則表達式
DOIDOI:10.11907/rjdk.172302
中圖分類號:TP301
文獻標識碼:A文章編號文章編號:16727800(2018)001004103
Abstract:As the development of big data and cloud computing, an increasing number of information has been boosted significantly. Extracting the information and extract useful information from huge amounts of data effectively has been becoming the current hot spot. Moreover, it has contributed to revealing the known regulations and predicting unknown results. In this paper, the current Web information retrieval method, the principle and key technology has been analyzed and the algorithm, classification and application of Web crawler in data acquisition technology are emphasized. This paper presents a method of constructing Web text information acquisition system based on Python and related libraries. In the case, by defining the regular expressions and crawling function, it realized searching for the relevant information of the entry, and effectively retrievaling the internal links and the external links. The results show that Python has significant efficiency and expansibility in data retrieval.
Key Words:Python; information access; Web crawler; regular expression
0引言
互聯(lián)網(wǎng)提供了大量數(shù)據(jù)集,但是由于網(wǎng)站本身的多樣化和異構性以及網(wǎng)頁文檔結構的復雜性,很多數(shù)據(jù)都被嵌入到網(wǎng)頁結構與樣式中。Web信息獲取,也稱為基于Web的知識發(fā)現(xiàn)。Web數(shù)據(jù)獲取技術分為:基于本體的數(shù)據(jù)獲取、基于自然語言的數(shù)據(jù)獲取、基于網(wǎng)站查詢的數(shù)據(jù)獲取、基于規(guī)則和地理位置的數(shù)據(jù)獲取。利用行之有效的方法,將可用的信息從海量數(shù)據(jù)中抽取出來,挖掘潛在價值,將在金融、電信業(yè)、輿情監(jiān)控、數(shù)據(jù)分析以及其他科學領域發(fā)揮重要作用。由此可見,獲取Web信息的技術顯得尤為關鍵。
1Web信息獲取技術
Web信息獲取是指從網(wǎng)站上提取信息的一種計算機軟件技術,能將任何可以在瀏覽器上顯示的數(shù)據(jù)提取出來,因此也稱為屏幕抓取或數(shù)據(jù)采集。Web信息獲取是數(shù)據(jù)挖掘中的一項重要技術,它涉及到計算機網(wǎng)絡、文本處理、決策分析、人工智能等多個領域。其中,基本W(wǎng)eb文本信息獲取和知識發(fā)現(xiàn),包括Web文本內(nèi)容獲取、結構獲取、拓撲獲取等[2],需要從網(wǎng)站獲取所需的非結構化信息數(shù)據(jù),分析處理后存儲為統(tǒng)一格式的本地數(shù)據(jù)文件或直接存入本地數(shù)據(jù)庫,涉及網(wǎng)絡爬蟲、數(shù)據(jù)結構化、正則表達式等關鍵技術[3]。
1.1網(wǎng)絡爬蟲工作原理
網(wǎng)絡爬蟲是一個十分形象的名稱,俗稱網(wǎng)絡蜘蛛或網(wǎng)絡機器人,是一種按照規(guī)則對Web信息進行遍歷,自動抓取萬維網(wǎng)信息的程序或腳本。網(wǎng)絡爬蟲通常分為兩類:一類是搜索引擎提供商設計的爬蟲,這類爬蟲會不斷地在互聯(lián)網(wǎng)中利用鏈接跳轉(zhuǎn)采集頁面信息,返回后供搜索引擎建立相應索引。當用戶在引擎中輸入文字搜索時,引擎即會根據(jù)輸入對信息進行檢索,找到接近搜索文字的相關內(nèi)容并返回;另一類是對明確指定的網(wǎng)站進行數(shù)據(jù)抓取,獲得所需信息。這些信息通常是可以公共訪問的數(shù)據(jù)集。
網(wǎng)絡爬蟲的主要算法思想是通過Internet從指定的種子集合讀取URL訪問的Html頁面內(nèi)容,以及頁面包含的超級鏈接,并通過這些鏈接繼續(xù)爬取下級子頁面,然后收集用戶信息,進行分類和整理[4]。通常有兩種情況,一是Html使用標簽表示超級鏈接,進一步探測href屬性,實現(xiàn)跳轉(zhuǎn)到鏈接目標;二是鏈接跳轉(zhuǎn)是通過觸發(fā)了相關JavaScript代碼,如此不斷爬取下去,從而搜集到更多數(shù)據(jù)。網(wǎng)絡爬蟲結構如圖1所示。