昌吉學院計算機工程系 仇 崗
烏魯木齊八一中學義教部 楊 琴
Web數據抽取技術的研究和探討
昌吉學院計算機工程系 仇 崗
烏魯木齊八一中學義教部 楊 琴
隨著電子商務的迅猛發展,網絡購物受到了大多數人的青睞,怎么樣才能從眾多的購物網站中找到自己需要的產品,是數據抽取技術的焦點。由于Web數據具有半結構化的特征,使得數據抽取技術更加復雜。如何發展Web數據抽取技術要充分利用網絡資源,發揮Web數據抽取潛力。
Web數據抽??;Xpath;信息抽?。荒P?/p>
隨著電子商務的不斷發展,網絡購物成為購物的主要渠道,如淘寶網、拍拍網、58同城網、趕集網等大型購物網站的購物交易,已經徹底打破了原來面對面的交易方式。但購物網站太多,往往同一產品在不同網站或者同一網站的不同網店銷售價格存在差異,客戶需要花費大量時間和精力在茫茫網店中淘出價格合理的商品, Web數據抽取技術顯得尤為重要。
文章對Web數據抽取的定義和數據抽取技術探討和研究,并提出了基于XPath及正規表示法的Web數據抽取方法,最后簡單介紹了基于XPath及正規表示法Web數據抽取方法在購物網站的應用。
Web數據抽取就是從頁面集合中抽取出相關的數據,并將這些數據用某種易于查詢的數據模型來表示。
Web數據抽取的主要目的是從半結構化或非結構化的數據中抽取出可用數據。如購物網站中的商品品牌、名稱、價格等信息等。數據抽取出來后將數據保存到相應的數據庫或XML中以備使用。
Web數據抽取技術主要包括網頁獲取、抽取方法、抽取規則、數據校驗和數據集成等。在抽取購物網站的頁面中,一般使用網頁包轉器對頁面進行處理,Web數據抽取過程可以做如下定義:

圖2-1 Web數據抽取模型
Web數據抽取包括網頁獲取,數據抽取,數據驗證、數據轉換、數據存儲等五個步驟。其中網頁獲取是根據指定一組領域網站網址的URL集合使用網絡爬蟲技術從網站中獲取網頁材料;數據抽取式使用網頁包裝器根據抽取規則對Web頁面進行解析處理,抽取數據項;數據驗證是為了保證數據抽取質量以及數據規范性,數據轉換時應用相關領域知識和機器學習等技術進行數據糾錯,并轉化成格式嚴格的XML文檔,如使用Tidy工具對網頁進行編碼情況修改存在標記錯誤,并轉化成XML文檔;數據存儲是根據客戶需求進行對已有數據庫查詢或者是從網頁也中獲得數據,并將客戶的所需資料分類,存儲到關系數據庫中。
基于XPath的正規表示法的數據抽取方法。屬于HTML結構分析方法主要包括使用正規表示法確定抽取點、利用XPath表示相對路徑法進行數據定位和數據驗證。基于XPath及正規表示法的數據抽取方法抽取過程如圖3-1:

圖3-1 基于XPath和正規表示法的Web數據抽取方法的抽取過程
基于XPath的正規表示法第一需要從網站中下載頁面,第二需要Tidy工具處理轉換為XSL的文檔,第三對抽取的數據進行保存。
商品信息來源于不同網站的不同頁面,要實現相同商品在同一網站或不同網站價格的對比必須進行Web數據抽取。通過基于XPath及正規表示法的Web數據抽取方法,將不同頁面上的商品信息提取到關系數據庫中,并設計出B/S模式的價格對比完整。
4.1 購物網站的數據抽取流程
購物網站由網站搜索、數據規則定義、數據抽取,數據存儲等四部分組成,定時進行數據更新。系統通過用戶定義發現相關網站的數據,并對用戶定義模式進行存儲,方便下次使用,不同用戶的數據抽取規則可以共享,形成一個數據規則庫從而達到數據據自動提取的目的。如圖4-1系統模塊結構圖:

圖4-1 系統模塊結構圖
其中網站搜索模塊是對用戶提交的主頁面的商品品牌和型號進行詞頻分析,然后提交到數據檢索模塊中進行檢索,最后將結果返回到頁面中;數據規則定義模塊是用戶定義或從共享數據庫中提取;數據抽取模塊包括包裝器和規則生成模塊,數據抽取模塊是將數據源HTML頁面通過Tidy修復規范化后轉換為XHTML,使用基于Xpath的正規表示法對數據進行抽取,并執行XSL轉換,完成數據抽取工作;數據存儲模塊是對數據庫添加新的抽取規則或者存儲相關網站數據的。
4.2 購物網站數據庫設計
主要數據表有商品明細表、信息表、信息更新表:

表4.1 商品明細表

表4.2 信息表

表4.3 信息更新表
4.3 部分XPath的生成代碼
Public class XPathGet{
Public ArrayListgetXPath(char a,Stringkeyword)
ThrowsMException,NException{
ArrayListarraylist=newArrayList ()∶
Eleroot=a.getEle()∶
NodeListnl=root.getChildrenNodes()∶
intchangdu=root.getchangdu();
for(inti=0;i〈changdu;i++){
getMaNode(arraylist,nl.item(i),keyword);
輸入的關鍵字并在Arraylist中查找xpath節點。
4.4 Web數據抽取部分的代碼
String htmlStr=Postlnfor(this.nextPage);
Html str=XMLHelp.tidy(html str);//修正HTML數據
XMLFormString(htmlstr);//將HTM數據轉換成XML
XMLHelp.XMLFromFile(txt1File);//對XSL文件進行處理
XMLHelp.transformXML(doc_str,txt1);//得到相應的商品
saveinfor(data);//保存相應的商品
XMLHelp.ParseXMLFromFile(txt1linkpath)∶//處理XSL頁面的鏈接的文件
XMLHelp.transformXML(doc_str,nextlink)∶
//得到一個頁面的鏈接的集合,賦予給Hashset后返回
本文主要介紹了Web數據抽取的以及Web數據抽取流程模型,并提出了基于XPath及正規表示法的Web數據抽取方法。如何發展Web數據抽取技術要充分利用網絡資源,發揮Web數據抽取潛力。
項目名稱:Web信息抽取與數據挖掘技術及其在網絡輿情監測中的應用研究,項目編號:2012YJQT03。