李奇濤++管佳
摘 要:為實現(xiàn)網(wǎng)絡(luò)信息采集技術(shù)在教育領(lǐng)域信息采集過程中的應(yīng)用,對網(wǎng)絡(luò)信息采集技術(shù)進(jìn)行了研究,在詳細(xì)闡述技術(shù)架構(gòu)及其核心技術(shù)基礎(chǔ)上,完成了信息采集系統(tǒng)的構(gòu)建。同時簡介了其他兩種信息采集技術(shù),通過對比,分析三種方法的優(yōu)缺點,方便了用戶和研究者的選擇與應(yīng)用。
關(guān)鍵詞:教育 信息采集 應(yīng)用
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2014)08(a)-0114-02
信息技術(shù)的迅速發(fā)展,使得網(wǎng)絡(luò)上的信息日益增多,從日常生活到科學(xué)研究,人們越來越習(xí)慣于從網(wǎng)絡(luò)上獲取知識、信息,網(wǎng)絡(luò)成為人們獲取信息、知識的首要途徑。但是,人們在面對如此繁雜巨量、形式不一的信息時往往感到無所適從。筆者在從事相關(guān)研究中就遇到這樣問題,需要從某些教育技術(shù)資源網(wǎng)站中采集滿足特定條件的信息。該文就針對這一問題進(jìn)行了相關(guān)的研究。
在本研究中,需要從教育技術(shù)相關(guān)網(wǎng)站(中央電大開放教育教學(xué)資源查詢系統(tǒng)、教育技術(shù)資源網(wǎng)、中國教育技術(shù)研究網(wǎng)等)中采集特定主題的,符合一定規(guī)律和格式的信息,因此信息采集的過程中,需要對網(wǎng)站進(jìn)行分門別類,針對這些不同類型的信息,編寫相應(yīng)的代碼和公式。同時,由于要采集信息量比較大,要實現(xiàn)對網(wǎng)絡(luò)站點的自動填充和自動點擊功能,在此基礎(chǔ)上完成對網(wǎng)頁的解析和信息抽取工作,其中要對采集的頁面是否重復(fù)采集進(jìn)行判斷,最后實現(xiàn)對數(shù)據(jù)的精加工。本研究提出并實現(xiàn)滿足上述需求的網(wǎng)絡(luò)信息采集系統(tǒng),并實現(xiàn)了在教育領(lǐng)域的應(yīng)用。
1 網(wǎng)絡(luò)信息采集技術(shù)系統(tǒng)結(jié)構(gòu)
1.1 系統(tǒng)設(shè)計思路
該研究中設(shè)計的網(wǎng)絡(luò)信息采集系統(tǒng)基于Windows平臺開發(fā),以Microsoft visio studio 2008作為開發(fā)工具,采用C#語言編寫,數(shù)據(jù)采用XML存儲格式,并實現(xiàn)與Oracle 10 g數(shù)據(jù)庫連接。系統(tǒng)主要實現(xiàn)對相關(guān)目標(biāo)網(wǎng)站信息的采集,采用單線程、固定模式、制定框架采集,針對不同網(wǎng)站制定不同框架模式,采集方式靈活。
1.2 系統(tǒng)基本架構(gòu)
根據(jù)上述系統(tǒng)設(shè)計思路的簡單介紹,網(wǎng)絡(luò)信息采集系統(tǒng)的基本框架如下所示[1]:
(1)保存種子URL和待抓取URL的數(shù)據(jù)結(jié)構(gòu)。
(2)保存已經(jīng)抓取過的URL的數(shù)據(jù)結(jié)構(gòu),防止重復(fù)抓取。
(3)頁面獲取模塊。
(4)對已經(jīng)獲取的頁面內(nèi)容的各個部分進(jìn)行抽取。
(5)對抽取內(nèi)容進(jìn)行精加工處理。
(6)數(shù)據(jù)的存儲。
系統(tǒng)所對應(yīng)的機構(gòu)圖如圖1所示。
系統(tǒng)運行的流程如下:
(1)確定要采集主題信息所在網(wǎng)站,并制定所要采集信息主題。
(2)將要采集信息主題導(dǎo)入系統(tǒng)中,由系統(tǒng)模擬點擊搜索按鈕,搜索本網(wǎng)站所包含與采集信息主題相關(guān)的信息。這里起始頁面的URL為網(wǎng)站首頁,將其放入采集器Web Spider中,通過相應(yīng)設(shè)置,如:頁面采集深度等,讓采集器Web Spider對其進(jìn)行爬取,搜索其中包含的URL信息,然后通過URL地址查新,分析其中是否含有新的、符合要求的URL,如有則將未抓取的URL加入到采集器Web Spider,繼續(xù)循環(huán)采集信息頁面,直至再無新的URL。
(3)采集器按照相應(yīng)規(guī)則采集信息,調(diào)整頁面結(jié)構(gòu),對頁面實施規(guī)范化,并按照規(guī)則自動實現(xiàn)聚集,生成初步采集信息。
(4)采集過的信息經(jīng)過信息提取,主要通過Xpath表達(dá)式提取,經(jīng)過相應(yīng)處理、格式轉(zhuǎn)換等生成處理完畢的信息,并生成相應(yīng)的索引,到此,信息采集就已完畢。
(5)將采集完的信息存儲到XML文件格式中,按照需要,決定是否要存儲到關(guān)系數(shù)據(jù)庫中。
(6)信息展示。
2 核心技術(shù)
在本系統(tǒng)中,用到的支撐技術(shù)主要有URL地址查新技術(shù)、基于HtmlAgi lityPack和Xpath的數(shù)據(jù)提取技術(shù)、模擬填充和自動點擊功能,數(shù)據(jù)精加工技術(shù)。
2.1 URL地址查新技術(shù)
URL的地址查新是通過布隆過濾器來判斷一個經(jīng)過Hash函數(shù)散列的URL是否已經(jīng)被訪問過,從而避免重復(fù)采集同一URL數(shù)據(jù)以及程序陷入死循環(huán)。
2.2 基于HtmlAgilityPack+Xpath的數(shù)據(jù)提取技術(shù)
HtmlAgilityPack是一個開源的項目,為網(wǎng)頁提供了標(biāo)準(zhǔn)的DOM API和Xpath導(dǎo)航。在整個系統(tǒng)中,HTML頁面解析,文本抽取,遍歷等都要用到這個包,而Xpath作為一種路徑表達(dá)式工具,可以很好的“深入”WEB頁面代碼中的最小單位,精準(zhǔn)定位到目標(biāo)數(shù)據(jù)所在的代碼行。通過將兩者結(jié)合,可以有效地對經(jīng)過解析的頁面進(jìn)行目標(biāo)數(shù)據(jù)采集。
2.3 模擬填充和自動點擊功能
模擬填充和自動點擊主要針對例如百度這樣具有搜索功能的網(wǎng)頁。而大多數(shù)網(wǎng)站都具有站內(nèi)搜索功能,WEB信息數(shù)據(jù)挖掘系統(tǒng)就可以利用這一功能實現(xiàn)信息抓取。對于我們要采集的目標(biāo)網(wǎng)站而言,站內(nèi)檢索頁面往往提供了普通搜索和高級搜索兩種不同的搜索方式。普通搜索往往只提供了一個可供用戶輸入的文本框,而高級搜索則提供了除文本框外其他輔助選項(包括下拉列表框、互斥選項集等)。本系統(tǒng)采用Web Broswer控件來模擬用戶的一次檢索行為,包括填充文本框、選擇下拉列表項和點擊按鈕等操作[2]。
同時對于JSP和ASPX、PHP等動態(tài)網(wǎng)頁,如果沒有明確的URL指向爬蟲運行的下一頁,則需要模擬點擊頁面中的“下一頁”按鈕或者點擊下一頁頁標(biāo)對應(yīng)的超鏈接來實現(xiàn)(一般諸如[1],[2],[3]…等形式)[3]。
2.4 數(shù)據(jù)精加工
以上幾步之后,得到的數(shù)據(jù)只是比較粗糙的“原始數(shù)據(jù)”,我們需要進(jìn)一步進(jìn)行精加工才能得到我們想要的數(shù)據(jù)。數(shù)據(jù)精加工分以下幾種情況[4]:endprint
(1)“原始數(shù)據(jù)”中經(jīng)常出現(xiàn)諸如“?”、“&”等HTML文本,我們需要將這些占位符去除。
(2)對于零散的原始信息,需要將其加工成規(guī)范格式,(例如新聞等信息,就要把標(biāo)題,作者,發(fā)布日期等信息統(tǒng)一為諸如:某單位.關(guān)于召開XXX技術(shù)應(yīng)用區(qū)域推進(jìn)研討會的通知[圖].2009-5-5.http://jyjs.e21.cn/e21web/content.php?acticle_id=489)
(3)某些信息(比如作者信息,發(fā)布日期等)存在于一大段文字中的括號引號之內(nèi),或者在某些標(biāo)點符號(逗號,冒號)之后,需要用正則表達(dá)式定位目標(biāo)信息并將其進(jìn)一步抽取出來。此項涉及到自然語言處理等[5]。
(4)對于圖片,PDF文檔,RAR壓縮包等文件,需要得到下載URL,然后導(dǎo)入下載程序進(jìn)行下載。
3 系統(tǒng)實現(xiàn)
為了驗證上述所提方法的有效性,這里通過實現(xiàn)一個簡單案例來證明。數(shù)據(jù)提取內(nèi)容為教育技術(shù)資源網(wǎng)(http://www.chinaret.com)下教育資訊欄目的信息。獲取的信息內(nèi)容主要是信息標(biāo)題和信息URL鏈接地址。
首先加載WEB頁面,通過XX Encoding.GetBytes("gbk")設(shè)置編碼信息,然后定位目標(biāo)數(shù)據(jù)所在位置,這里用到了Xpath表達(dá)式XX.GetElementbyId("content"),實際獲得的值為http://www.chinaret.com/column.aspx?id=241/*[@id="content"],意思為獲取這個頁面下所有ID為"content"中的信息,接著通過SelectNodes()來判斷相應(yīng)代碼下是否包含要提取的信息,如本例中要提取的是鏈接信息,相應(yīng)的代碼就應(yīng)該表示為SelectNodes("http://a"),最后將Xpath表達(dá)是定位在要提取的數(shù)據(jù)節(jié)點上,提取節(jié)點信息,代碼為GetAttributeValue()。
通過上述實驗證明,采用本文所提出的技術(shù)能夠很好的來實現(xiàn)對WEB頁面信息的采集,可以應(yīng)用到教育技術(shù)領(lǐng)域,為教育信息采集服務(wù)。
4 其他信息采集方法
在本研究中,除了上述介紹的C#語言編寫的,采用HtmlAgilityPack+Xpath的采集方式外。還嘗試了其他兩種采用JAVA語音編寫的網(wǎng)絡(luò)信息采集方法。
其中VietSpider HtmlParser是一個純JAVA的HTML DOM解析器,是一種開源的網(wǎng)絡(luò)數(shù)據(jù)采集器。它提供一個圖形化界面方便用戶使用,可以用于特定主題、目的的網(wǎng)絡(luò)信息搜索、采集和分類。其最大特色在于提供的圖形化界面,使得數(shù)據(jù)采集簡單化,正如其口號所說:Getting Web Data={Clicks}[6]。其主要特色如下:采用web3.0爬蟲技術(shù),提出網(wǎng)站模板解析概念,網(wǎng)絡(luò)爬蟲可以為每一個站點提供代理和多線程配置;VietSpider服務(wù)器可以在Linux/Windows系統(tǒng)下運行,管理員可以通過VietSpider的遠(yuǎn)程客戶端進(jìn)行管理;支持多種數(shù)據(jù)庫系統(tǒng),如:MySQL、MS SQL、ORACLE、Postgres、H2等;VietSpider提供了內(nèi)置瀏覽器功能,支持JavaScript解析;支持多種數(shù)據(jù)輸出格式,如MS Excel、CSV、XML等,支持?jǐn)?shù)據(jù)除雜和改造。VietSpider的應(yīng)用非常簡單,所需專業(yè)知識較少,方便使用。
另外一種方法是采用Heritrix + HtmlParser組合系統(tǒng)方法。Heritrix是一個純由JAVA開發(fā)的、開源的Web網(wǎng)絡(luò)爬蟲,用戶可以使用它從網(wǎng)絡(luò)上抓取想要的資源。Heritrix出色之處在于它的擴展性,使用者可以擴展它的各個組件,來實現(xiàn)自己的抓取邏輯。HtmlParser是一個用來解析HTML文件的JAVA包,主要用于轉(zhuǎn)化、抽取兩個方面。利用HtmlParser,可以實現(xiàn)文本抽取、鏈接抽取、資源抽取、鏈接檢查、站點檢查、URL重寫、廣告清除和將HTML頁面轉(zhuǎn)化為XML頁面[7]。
從作者運行效果來看,三種方法各有優(yōu)勢。總的而言,從便捷性和提取速率來看,VietSpider較HtmlAgilityPack+Xpath和Heritrix + HtmlParser有較大優(yōu)勢;從存儲格式上看,HtmlAgilityPack+Xpath的存儲類型多樣,并更容易與數(shù)據(jù)庫結(jié)合;從靈活性而言,HtmlAgilityPack+Xpath和Heritrix+HtmlParser又較VietSpider簡單,擴展性較強;從采集方式而言,Heritrix+HtmlParser需要分為兩步,而VietSpider和HtmlAgilityPack+Xpath采用的是在線采集方式,一步到位。因此,結(jié)合以上分析,作者最后采用HtmlAgilityPack+Xpath方式來實現(xiàn)WEB數(shù)據(jù)的在線采集。
5 結(jié)語
網(wǎng)絡(luò)信息采集技術(shù)屬于數(shù)據(jù)挖掘領(lǐng)域,是WEB數(shù)據(jù)挖掘研究的熱點。本研究中通過對網(wǎng)絡(luò)信息采集過程中URL地址查新技術(shù)、基于HtmlAgilityPack和Xpath的數(shù)據(jù)提取技術(shù)、模擬填充和自動點擊功能,數(shù)據(jù)精加工等關(guān)鍵技術(shù)的介紹,為讀者提供了一種實用工具和研究思路。通過在教育技術(shù)資源網(wǎng)信息采集中的應(yīng)用,實現(xiàn)了在教育領(lǐng)域?qū)π畔⒉杉夹g(shù)的嘗試。同時通過對筆者在研究過程中嘗試的幾種方法的介紹和對比,方便讀者在以后的研究和工作,研究者可以采用適合自己的工具進(jìn)行相應(yīng)研究。
參考文獻(xiàn)
[1] 羅剛.使用C#開發(fā)搜索引擎[M].北京:清華大學(xué)出版社,2012:22-114.
[2] 孟憲軍.互聯(lián)網(wǎng)文本聚類與檢索技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009:89-108.
[3] 于滿全.面向人物追蹤的知識挖掘研究[D].北京:中國科學(xué)院計算技術(shù)研究所,2006:15-35.
[4] webBrower控件實現(xiàn)winform和webpage交互[EB/EL].(2008-03-28)[2012-10-23].http://www.cnblogs.com/AganCN/archive/2008/03/28/1090737.html.
[5] (美)Jeffrey E.F.Friedl.Mastering regular expressions[M].O'Reilly,2007:14-37.
[6] VietSpider網(wǎng)站[EB/EL].(2012-03-13)[2012-10-19].http://binhgiang.sourceforge.net/webextractor.
[7] 羅剛,王振東.自己動手寫網(wǎng)絡(luò)爬蟲[M].北京:清華大學(xué)出版社,2010:24-36.endprint
(1)“原始數(shù)據(jù)”中經(jīng)常出現(xiàn)諸如“?”、“&”等HTML文本,我們需要將這些占位符去除。
(2)對于零散的原始信息,需要將其加工成規(guī)范格式,(例如新聞等信息,就要把標(biāo)題,作者,發(fā)布日期等信息統(tǒng)一為諸如:某單位.關(guān)于召開XXX技術(shù)應(yīng)用區(qū)域推進(jìn)研討會的通知[圖].2009-5-5.http://jyjs.e21.cn/e21web/content.php?acticle_id=489)
(3)某些信息(比如作者信息,發(fā)布日期等)存在于一大段文字中的括號引號之內(nèi),或者在某些標(biāo)點符號(逗號,冒號)之后,需要用正則表達(dá)式定位目標(biāo)信息并將其進(jìn)一步抽取出來。此項涉及到自然語言處理等[5]。
(4)對于圖片,PDF文檔,RAR壓縮包等文件,需要得到下載URL,然后導(dǎo)入下載程序進(jìn)行下載。
3 系統(tǒng)實現(xiàn)
為了驗證上述所提方法的有效性,這里通過實現(xiàn)一個簡單案例來證明。數(shù)據(jù)提取內(nèi)容為教育技術(shù)資源網(wǎng)(http://www.chinaret.com)下教育資訊欄目的信息。獲取的信息內(nèi)容主要是信息標(biāo)題和信息URL鏈接地址。
首先加載WEB頁面,通過XX Encoding.GetBytes("gbk")設(shè)置編碼信息,然后定位目標(biāo)數(shù)據(jù)所在位置,這里用到了Xpath表達(dá)式XX.GetElementbyId("content"),實際獲得的值為http://www.chinaret.com/column.aspx?id=241/*[@id="content"],意思為獲取這個頁面下所有ID為"content"中的信息,接著通過SelectNodes()來判斷相應(yīng)代碼下是否包含要提取的信息,如本例中要提取的是鏈接信息,相應(yīng)的代碼就應(yīng)該表示為SelectNodes("http://a"),最后將Xpath表達(dá)是定位在要提取的數(shù)據(jù)節(jié)點上,提取節(jié)點信息,代碼為GetAttributeValue()。
通過上述實驗證明,采用本文所提出的技術(shù)能夠很好的來實現(xiàn)對WEB頁面信息的采集,可以應(yīng)用到教育技術(shù)領(lǐng)域,為教育信息采集服務(wù)。
4 其他信息采集方法
在本研究中,除了上述介紹的C#語言編寫的,采用HtmlAgilityPack+Xpath的采集方式外。還嘗試了其他兩種采用JAVA語音編寫的網(wǎng)絡(luò)信息采集方法。
其中VietSpider HtmlParser是一個純JAVA的HTML DOM解析器,是一種開源的網(wǎng)絡(luò)數(shù)據(jù)采集器。它提供一個圖形化界面方便用戶使用,可以用于特定主題、目的的網(wǎng)絡(luò)信息搜索、采集和分類。其最大特色在于提供的圖形化界面,使得數(shù)據(jù)采集簡單化,正如其口號所說:Getting Web Data={Clicks}[6]。其主要特色如下:采用web3.0爬蟲技術(shù),提出網(wǎng)站模板解析概念,網(wǎng)絡(luò)爬蟲可以為每一個站點提供代理和多線程配置;VietSpider服務(wù)器可以在Linux/Windows系統(tǒng)下運行,管理員可以通過VietSpider的遠(yuǎn)程客戶端進(jìn)行管理;支持多種數(shù)據(jù)庫系統(tǒng),如:MySQL、MS SQL、ORACLE、Postgres、H2等;VietSpider提供了內(nèi)置瀏覽器功能,支持JavaScript解析;支持多種數(shù)據(jù)輸出格式,如MS Excel、CSV、XML等,支持?jǐn)?shù)據(jù)除雜和改造。VietSpider的應(yīng)用非常簡單,所需專業(yè)知識較少,方便使用。
另外一種方法是采用Heritrix + HtmlParser組合系統(tǒng)方法。Heritrix是一個純由JAVA開發(fā)的、開源的Web網(wǎng)絡(luò)爬蟲,用戶可以使用它從網(wǎng)絡(luò)上抓取想要的資源。Heritrix出色之處在于它的擴展性,使用者可以擴展它的各個組件,來實現(xiàn)自己的抓取邏輯。HtmlParser是一個用來解析HTML文件的JAVA包,主要用于轉(zhuǎn)化、抽取兩個方面。利用HtmlParser,可以實現(xiàn)文本抽取、鏈接抽取、資源抽取、鏈接檢查、站點檢查、URL重寫、廣告清除和將HTML頁面轉(zhuǎn)化為XML頁面[7]。
從作者運行效果來看,三種方法各有優(yōu)勢。總的而言,從便捷性和提取速率來看,VietSpider較HtmlAgilityPack+Xpath和Heritrix + HtmlParser有較大優(yōu)勢;從存儲格式上看,HtmlAgilityPack+Xpath的存儲類型多樣,并更容易與數(shù)據(jù)庫結(jié)合;從靈活性而言,HtmlAgilityPack+Xpath和Heritrix+HtmlParser又較VietSpider簡單,擴展性較強;從采集方式而言,Heritrix+HtmlParser需要分為兩步,而VietSpider和HtmlAgilityPack+Xpath采用的是在線采集方式,一步到位。因此,結(jié)合以上分析,作者最后采用HtmlAgilityPack+Xpath方式來實現(xiàn)WEB數(shù)據(jù)的在線采集。
5 結(jié)語
網(wǎng)絡(luò)信息采集技術(shù)屬于數(shù)據(jù)挖掘領(lǐng)域,是WEB數(shù)據(jù)挖掘研究的熱點。本研究中通過對網(wǎng)絡(luò)信息采集過程中URL地址查新技術(shù)、基于HtmlAgilityPack和Xpath的數(shù)據(jù)提取技術(shù)、模擬填充和自動點擊功能,數(shù)據(jù)精加工等關(guān)鍵技術(shù)的介紹,為讀者提供了一種實用工具和研究思路。通過在教育技術(shù)資源網(wǎng)信息采集中的應(yīng)用,實現(xiàn)了在教育領(lǐng)域?qū)π畔⒉杉夹g(shù)的嘗試。同時通過對筆者在研究過程中嘗試的幾種方法的介紹和對比,方便讀者在以后的研究和工作,研究者可以采用適合自己的工具進(jìn)行相應(yīng)研究。
參考文獻(xiàn)
[1] 羅剛.使用C#開發(fā)搜索引擎[M].北京:清華大學(xué)出版社,2012:22-114.
[2] 孟憲軍.互聯(lián)網(wǎng)文本聚類與檢索技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009:89-108.
[3] 于滿全.面向人物追蹤的知識挖掘研究[D].北京:中國科學(xué)院計算技術(shù)研究所,2006:15-35.
[4] webBrower控件實現(xiàn)winform和webpage交互[EB/EL].(2008-03-28)[2012-10-23].http://www.cnblogs.com/AganCN/archive/2008/03/28/1090737.html.
[5] (美)Jeffrey E.F.Friedl.Mastering regular expressions[M].O'Reilly,2007:14-37.
[6] VietSpider網(wǎng)站[EB/EL].(2012-03-13)[2012-10-19].http://binhgiang.sourceforge.net/webextractor.
[7] 羅剛,王振東.自己動手寫網(wǎng)絡(luò)爬蟲[M].北京:清華大學(xué)出版社,2010:24-36.endprint
(1)“原始數(shù)據(jù)”中經(jīng)常出現(xiàn)諸如“?”、“&”等HTML文本,我們需要將這些占位符去除。
(2)對于零散的原始信息,需要將其加工成規(guī)范格式,(例如新聞等信息,就要把標(biāo)題,作者,發(fā)布日期等信息統(tǒng)一為諸如:某單位.關(guān)于召開XXX技術(shù)應(yīng)用區(qū)域推進(jìn)研討會的通知[圖].2009-5-5.http://jyjs.e21.cn/e21web/content.php?acticle_id=489)
(3)某些信息(比如作者信息,發(fā)布日期等)存在于一大段文字中的括號引號之內(nèi),或者在某些標(biāo)點符號(逗號,冒號)之后,需要用正則表達(dá)式定位目標(biāo)信息并將其進(jìn)一步抽取出來。此項涉及到自然語言處理等[5]。
(4)對于圖片,PDF文檔,RAR壓縮包等文件,需要得到下載URL,然后導(dǎo)入下載程序進(jìn)行下載。
3 系統(tǒng)實現(xiàn)
為了驗證上述所提方法的有效性,這里通過實現(xiàn)一個簡單案例來證明。數(shù)據(jù)提取內(nèi)容為教育技術(shù)資源網(wǎng)(http://www.chinaret.com)下教育資訊欄目的信息。獲取的信息內(nèi)容主要是信息標(biāo)題和信息URL鏈接地址。
首先加載WEB頁面,通過XX Encoding.GetBytes("gbk")設(shè)置編碼信息,然后定位目標(biāo)數(shù)據(jù)所在位置,這里用到了Xpath表達(dá)式XX.GetElementbyId("content"),實際獲得的值為http://www.chinaret.com/column.aspx?id=241/*[@id="content"],意思為獲取這個頁面下所有ID為"content"中的信息,接著通過SelectNodes()來判斷相應(yīng)代碼下是否包含要提取的信息,如本例中要提取的是鏈接信息,相應(yīng)的代碼就應(yīng)該表示為SelectNodes("http://a"),最后將Xpath表達(dá)是定位在要提取的數(shù)據(jù)節(jié)點上,提取節(jié)點信息,代碼為GetAttributeValue()。
通過上述實驗證明,采用本文所提出的技術(shù)能夠很好的來實現(xiàn)對WEB頁面信息的采集,可以應(yīng)用到教育技術(shù)領(lǐng)域,為教育信息采集服務(wù)。
4 其他信息采集方法
在本研究中,除了上述介紹的C#語言編寫的,采用HtmlAgilityPack+Xpath的采集方式外。還嘗試了其他兩種采用JAVA語音編寫的網(wǎng)絡(luò)信息采集方法。
其中VietSpider HtmlParser是一個純JAVA的HTML DOM解析器,是一種開源的網(wǎng)絡(luò)數(shù)據(jù)采集器。它提供一個圖形化界面方便用戶使用,可以用于特定主題、目的的網(wǎng)絡(luò)信息搜索、采集和分類。其最大特色在于提供的圖形化界面,使得數(shù)據(jù)采集簡單化,正如其口號所說:Getting Web Data={Clicks}[6]。其主要特色如下:采用web3.0爬蟲技術(shù),提出網(wǎng)站模板解析概念,網(wǎng)絡(luò)爬蟲可以為每一個站點提供代理和多線程配置;VietSpider服務(wù)器可以在Linux/Windows系統(tǒng)下運行,管理員可以通過VietSpider的遠(yuǎn)程客戶端進(jìn)行管理;支持多種數(shù)據(jù)庫系統(tǒng),如:MySQL、MS SQL、ORACLE、Postgres、H2等;VietSpider提供了內(nèi)置瀏覽器功能,支持JavaScript解析;支持多種數(shù)據(jù)輸出格式,如MS Excel、CSV、XML等,支持?jǐn)?shù)據(jù)除雜和改造。VietSpider的應(yīng)用非常簡單,所需專業(yè)知識較少,方便使用。
另外一種方法是采用Heritrix + HtmlParser組合系統(tǒng)方法。Heritrix是一個純由JAVA開發(fā)的、開源的Web網(wǎng)絡(luò)爬蟲,用戶可以使用它從網(wǎng)絡(luò)上抓取想要的資源。Heritrix出色之處在于它的擴展性,使用者可以擴展它的各個組件,來實現(xiàn)自己的抓取邏輯。HtmlParser是一個用來解析HTML文件的JAVA包,主要用于轉(zhuǎn)化、抽取兩個方面。利用HtmlParser,可以實現(xiàn)文本抽取、鏈接抽取、資源抽取、鏈接檢查、站點檢查、URL重寫、廣告清除和將HTML頁面轉(zhuǎn)化為XML頁面[7]。
從作者運行效果來看,三種方法各有優(yōu)勢。總的而言,從便捷性和提取速率來看,VietSpider較HtmlAgilityPack+Xpath和Heritrix + HtmlParser有較大優(yōu)勢;從存儲格式上看,HtmlAgilityPack+Xpath的存儲類型多樣,并更容易與數(shù)據(jù)庫結(jié)合;從靈活性而言,HtmlAgilityPack+Xpath和Heritrix+HtmlParser又較VietSpider簡單,擴展性較強;從采集方式而言,Heritrix+HtmlParser需要分為兩步,而VietSpider和HtmlAgilityPack+Xpath采用的是在線采集方式,一步到位。因此,結(jié)合以上分析,作者最后采用HtmlAgilityPack+Xpath方式來實現(xiàn)WEB數(shù)據(jù)的在線采集。
5 結(jié)語
網(wǎng)絡(luò)信息采集技術(shù)屬于數(shù)據(jù)挖掘領(lǐng)域,是WEB數(shù)據(jù)挖掘研究的熱點。本研究中通過對網(wǎng)絡(luò)信息采集過程中URL地址查新技術(shù)、基于HtmlAgilityPack和Xpath的數(shù)據(jù)提取技術(shù)、模擬填充和自動點擊功能,數(shù)據(jù)精加工等關(guān)鍵技術(shù)的介紹,為讀者提供了一種實用工具和研究思路。通過在教育技術(shù)資源網(wǎng)信息采集中的應(yīng)用,實現(xiàn)了在教育領(lǐng)域?qū)π畔⒉杉夹g(shù)的嘗試。同時通過對筆者在研究過程中嘗試的幾種方法的介紹和對比,方便讀者在以后的研究和工作,研究者可以采用適合自己的工具進(jìn)行相應(yīng)研究。
參考文獻(xiàn)
[1] 羅剛.使用C#開發(fā)搜索引擎[M].北京:清華大學(xué)出版社,2012:22-114.
[2] 孟憲軍.互聯(lián)網(wǎng)文本聚類與檢索技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009:89-108.
[3] 于滿全.面向人物追蹤的知識挖掘研究[D].北京:中國科學(xué)院計算技術(shù)研究所,2006:15-35.
[4] webBrower控件實現(xiàn)winform和webpage交互[EB/EL].(2008-03-28)[2012-10-23].http://www.cnblogs.com/AganCN/archive/2008/03/28/1090737.html.
[5] (美)Jeffrey E.F.Friedl.Mastering regular expressions[M].O'Reilly,2007:14-37.
[6] VietSpider網(wǎng)站[EB/EL].(2012-03-13)[2012-10-19].http://binhgiang.sourceforge.net/webextractor.
[7] 羅剛,王振東.自己動手寫網(wǎng)絡(luò)爬蟲[M].北京:清華大學(xué)出版社,2010:24-36.endprint