999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XML的WEB數據抽取模型研究

2012-01-11 07:03:06黃淑芹
通化師范學院學報 2012年2期
關鍵詞:數據庫用戶信息

黃淑芹

(安徽財經大學 管理科學與工程學院,安徽 蚌埠 233030)

當前互聯網已經成為最流行的信息發布媒體和最具潛力的資源,但目前Web上的數據大都以HTML形式出現,HTML通常是一個很難用程序手段處理的媒體.由于Web頁面中的很多內容的格式編排不合理,使得現在的Web瀏覽器在進行HTML語法分析時非常不嚴謹,另外,現有的WEB數據主要目的是為了顯示,用于瀏覽器瀏覽,缺乏對數據本身的描述,不含清晰的語義信息,模式也不太明確,這使得應用程序無法直接解析并利用Web上海量的信息,造成資源極大的浪費[1],如何充分應用web數據成為數據庫技術研究的熱點.

本文針對Web上半結構化的數據,構建一個半結構化的數據模型;然后研究一種半結構化模型抽取技術,它能自動地從現有數據中抽取半結構化模型的數據.

1 XML技術的優點

W3C開發的XML[2]是一種半結構化的數據模型,能使不同結構的數據很容易結合在一起[3],其數據內容和顯示數據的格式是分離的,并且容易將XML的文檔描述與關系數據庫中的屬性一一對應起來,實施精確地查詢與模型抽取[4].XML提供了一個直接處理Web數據的通用方法,從根本上解決了Web文檔和其他資源描述所面臨的問題.基于XML從Web文檔中抽取有用信息,以更為結構化的方式顯示出來,為應用程序利用Web中的數據提供了可能.

2 基于XML的WEB數據抽取原理

從XML文檔中提取信息的技術已經比較成熟,這里將信息接口和組織形式各不相同的非結構化的Web數據進行結構化處理.先將HTML轉化成XHTML,然后根據抽取規則對XHTML文檔進行處理,根據用戶需求抽取有用信息形成XML文檔.具體實現步驟如下:

①給定URL地址,獲取HTML文檔對象.

②使用HTML解析器解析獲得的HTML文檔對象,獲得XHTML文檔.

③根據用戶需求,分析XHTML文檔,構造XSL文件.

④根據XSL文件將XHTML文檔映射成XML文件.

⑤將XML數據寫入數據庫.

在HTML向XHTML的轉化過程中,借助于Tidy工具實現.Tidy[5]是一個免費使用的產品,可用于改正HTML文檔中的常見錯誤并生成格式編排良好的XHTML文檔.Tidy對文檔進行數據清洗[6]后,采用基于樹路徑的抽取規則,用XSL確定數據內的引用點,并處理清洗過的XHTML文檔,根據用戶需求,抽取出信息,形成XML結構化文檔.

3 基于XML的WEB數據抽取模型

3.1 基于XML的WEB數據抽取模型

基于XML的WEB數據抽取模型分成三個層次:用戶接口層,數據抽取層,數據存儲層.如圖1所示.用戶接口層負責將用戶提交的查詢命令提交給數據抽取層,并返回查詢結果.數據抽取層完成數據的清洗、轉換和抽取,將HTML文檔進行規范化處理;把規范化后的HTML文檔轉化為XML文檔,得到結構良好的數據.并將抽取結果返回用戶界面或存入數據庫.數據存儲層保存上一層抽取的結構化數據,以結構化數據庫形式進行存儲.由于XML強調數據語義與元素之間的關系,因此可以很容易將XML的文檔描述與關系數據庫中的屬性對應起來.在數據存儲層建立多層次Web數據庫,提供Web的多維分析與層次化視圖[7].

3.2 基于XML的數據抽取的系統實現

用戶界面用Java類來實現,因為Java的基本類提供了一套全面的圖形用戶界面類庫.

數據庫的連接用Java的JDBC實現,JDBC是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成.

XML文檔寫入數據庫時,先是建立與XML文檔相對應的表結構,然后把數據寫入DataTable,通過sqldataadapter直接把DataTable中的數據Update到數據庫.

圖1 基于XML的WEB數據抽取模型

4 基于XML的WEB數據抽取的實例

4.1 獲取Web頁并映射成XHTML

這里以天氣預報信息抽取為例.天氣的變化使每天的預報信息都有所更新,及時分析和抽取各網頁的天氣預報信息,對做好惡劣天氣防范工作、減少經濟損失有重要意義.由于各個網站頁面風格不同,這給用戶獲取信息造成不便.圖2顯示了2011年6月5日yahoo網站發布的蚌埠天氣預報信息的屏幕快照.現在想抽取天氣的溫度、氣壓、濕度、可見度、露點、風力等信息.

圖2 Yahoo發布的蚌埠天氣預報信息網頁

信息的抽取通過一個Java類ParseHTMLToXML實現.抽取的第一步首先將HTML數據轉換成XHTML.通過Tidy庫提供的函數在ParseHTMLToXML.tidyHTML()方法中轉換.tidyHTML()方法接收一個由URL指定的Web地址作為參數,并將其轉化為輸入流(InputStream)對象,然后利用tidy的Parse方法清洗輸入流,格式化后生成XHTML文檔流(OutputStream)對象.outputXMLToFile()方法用于將XHTML文檔流對象輸出到一個指定路徑的文件中.實現HTML轉換成XHTML(XML的子集)的代碼如下.

public static void main(String args[]) {

try {

Document doc = ParseXHTMLToXML.tidyHTML(“http://weather.yahoo.com/china/anhui/bengbu-2127869/”);

ParseXHTMLToXML.outputXMLToFile(doc, “XML” + File.separator + “FORECASTS.xml”);

} catch (ParseXHTMLToXMLException xmle) {

... }

}

轉化成XHTML文檔的界面如圖3所示.

圖3 文檔清洗后形成XHTML的部分關鍵區域

4.2 查找數據內的引用點

Tidy清洗與格式化后文檔中大多數信息依然與最終數據表現形式無關,因此需要在XML文檔中找出特定區域,從該區域中抽取數據,而無需過多關心其他冗余數據[8].根據XHTML文檔可以知道要抽取的信息在一個

標記內.設置該
為錨點,然后用Xpath[9]路徑表達式確定錨.XPath是一種專門用來在XML文檔中查找信息的語言,我們用XPath路徑來確定表達式.錨點table在全文檔中的絕對路徑表示為:

/html/body/div/div/div/div/div/div

這個表達式指定了從根 元素到錨div的路徑.絕對路徑表達式的方法會導致頁面布局發生改變時查找失效.所以采用僅與內容相關而與格式無關的相對路徑指定錨.這時XPath表達式改為:

//div[starts-with(normalize-space(.), 'Feels Like')]

4.3 將數據映射成 XML

XSL是由XML派生的語言,使用XSLT通過模式與模板相結合來轉換XML文檔[10],主要用于設置數據的格式,實現了信息內容和顯示格式分離.這里建立一個XSL文件,用來標識錨,指定如何從錨獲取查找的數據,以我們所需的格式構造一個XML輸出文件顯示查找的數據.

XSL文件部分代碼如下:

應用XSL文件把前面得到的XHTML文檔轉化為XML文檔,實現該轉化的代碼如下:

public static void main(String args[]) {

try {

Document xhtml = ParseHTMLToXML.parseXMLFromURLString(“file://FORECASTS.xml”);

Document xsl= ParseHTMLToXML.parseXMLFromURLString(“file://XSL/FORECASTS.xsl”);

Document xml = ParseHTMLToXML.transformXML(xhtml, xsl);

ParseXHTMLToXML.outputXMLToFile(“XML” + File.separator + “result.xml”);

} catch (ParseXHTMLToXMLException xmle) {

// ... Do Something ...

}

}

其中parseXMLFromURLString()和transformXML()方法實現對抽取的XHTML文檔在指定的XSL的映射下進行變換,并調用outputXMLToFile()方法將其輸出到一個xml文件中.

4.4 合并結果并處理數據

如果僅抽取一次,建立一個XML輸出文件就完成了.如果執行多次抽取,則可以通過建立的MergeXML方法,把當前抽取中獲得的數據合并到以前抽取數據的XML文件中,并可以通過該文件觀察數據抽取的正確性.

4.5 抽取結果入庫保存

抽取的數據可以直接作為結果輔助決策,也可以存入數據庫直接保存.直接存入數據庫的代碼如下:

DriverManager.registerDriver(new oracle jdbc driver OracleDriver());

Connection conn=DriverManager. getConnection(“jdbc oracle oci8@”, “username”, “password”);

Oracle.xml.sql.dml.OracleXMLSave Sav=new OracleXMLSave(conn,“tblname”);

Sav.insertXML(xmlOut);

Sav.close();

5 結束語

隨著網絡的迅猛發展,WEB信息抽取會變得越來越重要.本系統移植性較好,大部分代碼可以重復使用,通過選擇與內容相關但與格式無關的錨,可以方便、快捷地抽取所需的信息.

參考文獻:

[1]陳佳,胡燕,軒艷艷.一種基于XML的Web信息抽取方法[J].計算機數字與工程,2007,38(6):101~103.

[2]范立峰.XML實用教程[M].北京:人民郵電出版社,2009:1~13.

[3]周曉梅,王潛平,蘇琳.基于XML的Web數據挖掘模型的設計[J].計算機工程與設計,2007,28(2):272~274,277.

[4]李姍,黃水源.基于XML的WEB信息抽取模型設計[J].微計算機信息,2009,25(3-3):207~208,211.

[5]HTML Tidy[EB/OL].http://www.w3.org/MarkUp/

[6]毛國君,段立娟,等.數據挖掘原理與算法[M].北京:清華大學出版社,2007:39~43.

[7]周翔.基于XML的web內容挖掘研究[D].重慶:重慶大學,2007.

[8]蓋磊,王海軍,劉俊民.一種基于XML的Web地震信息抽取的實現[J].計算機應用與軟件,2007,24(8):103~105.

[9]陳佳.基于XML的Web信息抽取技術的應用研究[D].湖北:武漢理工大學,2007.

[10]陳景霞,張鵬偉.基于XML的Web數據挖掘模型的研究[J].情報雜志,2006(11):100~102.

猜你喜歡
數據庫用戶信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: www.狠狠| 无码aaa视频| 色综合婷婷| 欧美亚洲一区二区三区导航| www精品久久| 国产天天射| 国产特级毛片aaaaaaa高清| 在线观看热码亚洲av每日更新| 亚洲一区黄色| 欧美精品xx| 伊人大杳蕉中文无码| 又污又黄又无遮挡网站| 中文字幕一区二区视频| 日韩AV手机在线观看蜜芽| 欧美日本不卡| 亚洲成人77777| 婷五月综合| 国产在线观看一区精品| 国产成人一级| 国产哺乳奶水91在线播放| 欧美无专区| 亚洲黄网在线| 国产成人精品高清不卡在线| 国产成本人片免费a∨短片| 干中文字幕| 免费一极毛片| 成人综合网址| 在线视频亚洲色图| 国产精品自在线拍国产电影| 看看一级毛片| 国产成人午夜福利免费无码r| 国产午夜福利在线小视频| 国产一级裸网站| 老司国产精品视频91| 色首页AV在线| 亚洲天堂视频网站| 青草91视频免费观看| 成年人免费国产视频| 一级毛片免费观看不卡视频| 色综合中文| 国产一区三区二区中文在线| 国产精品人成在线播放| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产xx在线观看| 一本久道热中字伊人| 免费毛片全部不收费的| 91在线播放国产| 天天干天天色综合网| 国产精品黄色片| 97se亚洲综合在线天天 | 国产情侣一区| 欧美激情福利| 国产特级毛片| 有专无码视频| 精品福利视频导航| 在线视频亚洲欧美| 欧美劲爆第一页| 一级片一区| 国产成人乱码一区二区三区在线| 国产精品第一区在线观看| 蜜臀AV在线播放| 永久免费av网站可以直接看的| 人妻丝袜无码视频| 婷婷中文在线| 国产性生交xxxxx免费| 亚洲最大福利网站| 亚洲成aⅴ人片在线影院八| 欧洲熟妇精品视频| 91无码网站| 99热国产在线精品99| 色成人亚洲| 激情亚洲天堂| 婷婷色丁香综合激情| 免费 国产 无码久久久| 五月婷婷综合色| 亚洲天堂日韩在线| 国产精品自在在线午夜| 天天躁夜夜躁狠狠躁图片| 亚洲日韩Av中文字幕无码| 国产在线啪| 青青热久麻豆精品视频在线观看| 2021亚洲精品不卡a|