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