admin 管理员组

文章数量: 1086019


2024年4月20日发(作者:java程序设计期末考试题库)

第33卷第2期 

2012年2月 

通化师范学院学报 

JOURNAL OF TONGHUA NORMAL UNIVERS兀Y 

Vo1.33№2 

Feb.2012 

基于XML的WEB数据抽取模型研究 

黄淑芹 

(安徽财经大学管理科学与工程学院,安徽蚌埠233030) 

摘要:介绍了基于XML技术的WEB信息抽取方法.搭建了WEB信息抽取的三层数据模型,重点在于数据抽取层,在该层 

先借助于Tidy工具将HTML转换成XHTML,通过Path路径定位与抽取内容相关的锚,再利用XSL将抽取结果映射成XML文件. 

该XML文件可以直接作为辅助决策的信息源,也可以直接存入数据库为其他所用.这是由非结构化数据向结构化数据转换的一 

种方法,为应用程序利用WEB中的数据提供了可能.并实现了有关天气预报信息抽取的系统实例,抽取规则简单、健壮,代码移植 

性好. 

关键词:可扩展标记语言;WEB信息抽取;可扩展样式表语言;非结构化数据;结构化数据 

中图分类号:TP391文献标志码:A文章编号:1008—7974(2012)02—0031—03 

基金项目:安徽高校优秀青年人才基金资助项目(2011SQRL069),安徽高校自然科学基金资助项目(KJ2011Z007),安徽财经 

大学青年科研项目(ACKYQ1129) 

收稿日期:2011—08—10 

作者简介:黄淑芹(1976一),女,安徽砀山人,安徽财经大学讲师. 

当前互联网已经成为最流行的信息发布媒体和最具潜 

①给定URL地址,获取HTML文档对象. 

力的资源,但目前Web上的数据大都以HTML形式出现, ②使用HTML解析器解析获得的HTML文档对象,获得 

HTML通常是一个很难用程序手段处理的媒体.由于Web页 

XHTML文档. 

面中的很多内容的格式编排不合理,使得现在的Web浏览 

③根据用户需求,分析XHTML文档,构造XSL文件. 

器在进行HTML语法分析时非常不严谨,另外,现有的WEB 

④根据XSL文件将XHTML文档映射成XML文件. 

数据主要目的是为了显示,用于浏览器浏览,缺乏对数据本 ⑤将XML数据写入数据库. 

身的描述,不含清晰的语义信息,模式也不太明确,这使得应 

在H mL向XI-ITML的转化过程中,借助于Tidy工具实 

用程序无法直接解析并利用Web上海量的信息,造成资源 现.Tidy 是一个免费使用的产品,可用于改正HTML文档 

极大的浪费 ,如何充分应用web数据成为数据库技术研究 中的常见错误并生成格式编排良好的XHTML文档.Tidy对 

的热点. 

文档进行数据清洗 后,采用基于树路径的抽取规则,用 

本文针对Web上半结构化的数据,构建一个半结构化 

XSL确定数据内的引用点,并处理清洗过的XHTML文档,根 

的数据模型;然后研究一种半结构化模型抽取技术,它能自 

据用户需求,抽取出信息,形成XML结构化文档. 

动地从现有数据中抽取半结构化模型的数据. 

3基于XML的WEB数据抽取模型 

1 XML技术的优点 

3.1基于XML的WEB数据抽取模型 

W3C开发的XML_2 是一种半结构化的数据模型,能使 

基于XML的WEB数据抽取模型分成三个层次:用户接 

不同结构的数据很容易结合在一起 ]J,其数据内容和显示数 

口层,数据抽取层,数据存储层.如图1所示.用户接口层负 

据的格式是分离的,并且容易将XML的文档描述与关系数 

责将用户提交的查询命令提交给数据抽取层,并返回查询结 

据库中的属性一一对应起来,实施精确地查询与模型抽 

果.数据抽取层完成数据的清洗、转换和抽取,将HTML文档 

取 J.XML提供了一个直接处理Web数据的通用方法,从根 

进行规范化处理;把规范化后的HTML文档转化为XML文 

本上解决了Web文档和其他资源描述所面临的问题.基于 

档,得到结构良好的数据.并将抽取结果返回用户界面或存 

XML从Web文档中抽取有用信息,以更为结构化的方式显 

人数据库.数据存储层保存上一层抽取的结构化数据,以结 

示出来,为应用程序利用Web中的数据提供了可能. 

构化数据库形式进行存储.由于XML强调数据语义与元素 

2基于XML的WEB数据抽取原理 

之间的关系,因此可以很容易将XML的文档描述与关系数 

从XML文档中提取信息的技术已经比较成熟,这里将 

据库中的属性对应起来.在数据存储层建立多层次Web数 

信息接口和组织形式各不相同的非结构化的Web数据进行 

据库,提供Web的多维分析与层次化视图 . 

结构化处理.先将HTML转化成XHTML,然后根据抽取规则 

3.2基于XML的数据抽取的系统实现 

对XHTML文档进行处理,根据用户需求抽取有用信息形成 

用户界面用Java类来实现,因为Java的基本类提供了 

XML文档.具体实现步骤如下: 

套全面的图形用户界面类库. 

3l・ 

情阡H J=EⅨ, JnVn日 Jl,u ; 无,J工, 疋一1’r用J 

执行SQL语句的Java API,可以为多种关系数据库提供统一 

访问,它由一组用Java语言编写的类和接口组成. 

XML文档写入数据库时,先是建立与XML文档相对应 

的表结构,然后把数据写入DataTable,通过sqldataadapter直 

接把DataTable中的数据Update到数据库 

图1基于XML的WEB数据抽取模型 

4基于XML的WEB数据抽取的实例 

4.1获取Web页并映射成XHTML 

这里以天气预报信息抽取为例.天气的变化使每天的预 

报信息都有所更新,及时分析和抽取各网页的天气预报信 

息,对做好恶劣天气防范工作、减少经济损失有重要意义.由 

于各个网站页面风格不同,这给用户获取信息造成不便.图2 

显示了2011年6月5 13 yahoo网站发布的蚌埠天气预报信 

息的屏幕快照.现在想抽取天气的温度、气压、湿度、可见度、 

露点、风力等信息. 

图2 Yahoo发布的蚌埠天气预报信息网页 

信息的抽取通过一个Java类Parse瑚 L110xML实现.抽 

取的第一步首先将HTML数据转换成XHTML.通过Tidy库 

提供的函数在ParseHr】['ML1loXML.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://weath— 

el".yahoo.eom/ehina/anhui/bengbu一2127869/”); 

ParseXHTMLToXML.OUtputXMLToFile(doc。“XML”+File.sepa. 

rator+“FORECASTS.xml”); 

}catch(ParseXHTMLToXMLException xmle){ 

...

} 

j 

转化成XHTML文档的界面如图3所示. 

32・ 

翌 i 蜷磐攀鏊鬣 鍪翟越 篷 蕊 2釜鏊美 伫 ==:

::::’ , : … 

 T

r— 罢嚣 r一

 ===意 

—::==:= —— E 

: 

圆圈 

L—= 茹: 

………… 

i 一… 

图3文档清洗后形成XHTML的部分关键区域 

4.2查找数据内的引用点 

Tidy清洗与格式化后文档中大多数信息依然与最终数 

据表现形式无关,因此需要在XML文档中找出特定区域,从 

该区域中抽取数据,而无需过多关心其他冗余数据….根据 

XHTML文档可以知道要抽取的信息在一个<div>标记内. 

设置该<div>为锚点,然后用xp砒h c 路径表达式确定锚. 

XPath是一种专门用来在XML文档中查找信息的语言,我们 

用XPath路径来确定表达式.锚点table在全文档中的绝对路 

径表示为: 

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

这个表达式指定了从根<html>元素到锚div的路径. 

绝对路径表达式的方法会导致页面布局发生改变时查找失 

效.所以采用仅与内容相关而与格式无关的相对路径指定 

锚.这时XPath表达式改为: 

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

4.3将数据映射成XML 

XSL是由XML派生的语言,使用XSLT通过模式与模板 

相结合来转换XML文档 ”],主要用于设置数据的格式,实 

现了信息内容和显示格式分离.这里建立一个XSL文件,用 

来标识锚,指定如何从锚获取查找的数据,以我们所需的格 

式构造一个XML输出文件显示查找的数据. 

XSL文件部分代码如下: 

<xsl:template match=‘‘/html”> 

<RESULT> 

<FORECASTS> 

<xsl:apply—templates/> 

</FORECASTS> 

</RESULT> 

</xsl:template> 

<xal:template match=“text()”></xsl:template> 

<xsl ̄templatematch=“div[starts—with(normalize—slmce(.), 

FEELS Like')]”> 

<FEELSL1KE> 

<XSL:VALUE—OF SELECT=“dl/dd[1]/”> 

</FEELSLIKE> 

<BAROMETER> 

<xsl:value—of select=“dl/dd[2]’,/> 

</BAROM更 ER> 

<HUMIDn > 

<xsl:Vlaue—of select=“dl/dd[3]’’/> 

</HUMIDITY> 

<VISIBIIJ】TY> 

<xsl:value—of selcet=“dl/dd[4]”/> 

</VISIBIUrrY> 

<Dewpoint> 

<xsl:value—of select=“at/dais]”/> 

调用outputXMLToFile()方法将其输出到—个xml文件中. 

</Dewpoint> 

4.4合并结果并处理数据 

<wind> 

如果仅抽取一次,建立一个XML输出文件就完成了.如 

<xsl:value—of select:“dl/dd[6],,/> 

果执行多次抽取,则可以通过建立的MergeXML方法,把当 

</wind> 

前抽取中获得的数据合并到以前抽取数据的XML文件中, 

</xsl:template> 

并可以通过该文件观察数据抽取的正确性. 

应用XSL文件把前面得到的XHTML文档转化为XML 

文档,实现该转化的代码如下: 

4.5抽取结果入库保存 

public static void main(String args[]){ 

抽取的数据可以直接作为结果辅助决策,也可以存入数 

try{ 

据库直接保存.直接存人数据库的代码如下: 

Document xhtral=PameHTMLToXML.parseXMLFromURLString 

DriverManager.registerDriver(new oracle jdbc driver OmeleDriver 

(“file://FORECASTS.xml”); 

()); 

Document xsl=ParseHTMLToXML.parseXMLFromURLString 

Connection conn=DriverManager.getConnection(‘‘jdbc oracle oci8 

(“file://XSL/FORECASTS.xsl”); 

@”,“U ̄lTlame”,“password”); 

Document xml=Par ̄HTMLToXML.transformXML(xhtml,xs1); 

Oracle.xm1.sq1.dm1.OracleXMLSave Say=Dew OracleXMLSave 

PameXHTMLToXML.outputXMLToFile f“XML”+File.separator 

(conn,“tblname”); 

+“result.xml”); 

Sav.insertXML(xmlOut); 

}catch(ParseXHTMLToXMLExceptionⅪllle){ 

Sav.close(); 

,/…Do Something... 

5结束语 

f 

随着网络的迅猛发展,WEB信息抽取会变得越来越重 

} 

要.本系统移植性较好,大部分代码可以重复使用,通过选择 

其中parseXMLFromURLString()和transformXML()方法实 

与内容相关但与格式无关的锚,可以方便、快捷地抽取所需 

现对抽取的XHTML文档在指定的XSL的映射下进行变换,并 

的信息. 

参考文献: 

[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]HTMLTidy[EB/OL].http://www.w3.org/MarkUp/ 

[6]毛国君,段立娟,等.数据挖掘原理与算法[M].北京:清华大学出版社,2007:39-43. 

[7]周翔.基于XMI 的web内容挖掘研究[D].重庆:重庆大学,2007. 

[8]盖磊,王海军,刘俊民.一种基于XML的web地震信息抽取的实现[J].计算机应用与软件,2007,24(8):103~105. 

[9]陈佳.基于XML的Web信息抽取技术的应用研究[D].湖北:武汉理工大学,2007. 

[1O]陈景霞,张鹏伟.基于XML的Web数据挖掘模型的研究[J].情报杂志,2oo6(11):100~102. (责任编辑:王前) 

Study on WEB Data Extraction Model Based on XML 

HUANG Shu——qin 

(School of Management Science and Engineering,Anhui University fo Finance and Economws, 

Bengbu,Anhui 233030,China) 

Abstract:The paper introduced a method of WEB information extraction based on XML technology and constructed 

a three layer data model of WEB information extraction.Data extraction layer iS hte most important among 

hte three layers.First it eonve ̄ed the data from HTML t0 XHTML with Tidy tools.and then by path ori— 

entation and extracting the content—related anchor,mapped the extraction result to XML ifle with XSL. 

A system example was realized about weather forecasts ifnormation ex ̄acfion.The extraction rules are 

simple。robust and the codes can be widely adopted. 

Key words:XML;WEB information extraction:XSLT;unstructured data;structured data 

33・ 


本文标签: 数据 抽取 信息