CN104598462B - 提取结构化数据的方法及装置 - Google Patents
提取结构化数据的方法及装置 Download PDFInfo
- Publication number
- CN104598462B CN104598462B CN201310529428.0A CN201310529428A CN104598462B CN 104598462 B CN104598462 B CN 104598462B CN 201310529428 A CN201310529428 A CN 201310529428A CN 104598462 B CN104598462 B CN 104598462B
- Authority
- CN
- China
- Prior art keywords
- xpath
- css
- nodes
- labels
- label
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种提取结构化数据的方法及装置,该方法包括:将网页划分为主体区域和辅助区域,构建用于表示所述主体区域的XPATH标记树;将所述XPATH标记树中的XPATH节点与CSS标签进行对应,并根据CSS标签内容的相似度将所述CSS标签进行分组;若所述XPATH标记树中各个XPATH节点的CSS标签均属于同一分组,且所述各个XPATH节点的CSS标签是属于同一父标签下的子标签,则提取所述XPATH标记树中各个XPATH节点对应的数据作为正文内容。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种提取结构化数据的方法及装置。
背景技术
网络上所公开的文档通常称作网页,其一般都是用称作HTML的语言来进行公开,而HTML为文档规定了标准格式。虽然将网络信息以HTML格式呈现时,用户可以非常便利地进行阅读,但是若用户想从HTML文档中进行信息检索以便进行自动化处理则较为困难。这是因为网页中的数据较繁杂,一些信息,例如导航(菜单)信息和广告信息等,会导致搜索引擎的结果中出现大量垃圾信息,从而导致网络挖掘的精度下降。
发明内容
本发明实施例所要解决的技术问题在于,针对现有技术中网络数据挖掘精度不足的缺陷,提供一种高效精确的提取结构化数据的方法及装置。
为了解决上述技术问题,本发明实施例提供了一种提取结构化数据的方法,包括:
将网页划分为主体区域和辅助区域,构建用于表示所述主体区域的XPATH标记树;
将所述XPATH标记树中的XPATH节点与CSS标签进行对应,并根据CSS标签内容的相似度将所述CSS标签进行分组;
若所述XPATH标记树中各个XPATH节点的CSS标签均属于同一分组,且所述各个XPATH节点的CSS标签是属于同一父标签下的子标签,则提取所述XPATH标记树中各个XPATH节点对应的数据作为正文内容。
其中,所述将网页划分为主体区域和辅助区域,构建用于表示所述主体区域的XPATH标记树的步骤包括:
解析网页,获取所述网页的XPATH节点;
根据所述XPATH节点的属性对所述XPATH节点进行过滤,获取体现网页结构布局的XPATH节点;
将所述体现网页结构布局的XPATH节点划分为用于表示主体区域的XPATH节点和用于表示辅助区域的XPATH节点,提取用于表示所述主体区域的XPATH节点构建XPATH标记树。
其中,所述根据CSS标签内容的相似度将所述CSS标签进行分组的步骤包括:
提取所述CSS标签内容中的特征属性,所述特征属性包括字体大小、颜色和/或行间距;
将所述特征属性一致的CSS标签作为一个分组。
其中,所述方法还包括:
若所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签,则选择CSS标签数量最多的分组作为最优分组,提取所述最优分组中的CSS标签所对应的XPATH节点下的数据作为正文内容。
其中,所述方法还包括:
若所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签,则统计各个分组中的CSS标签的数量,剔除数量最少的一组CSS标签对应的XPATH节点,提取所述XPATH标记树中剩余XPATH节点对应的数据作为正文内容。
相应地,本发明还提供了一种提取结构化数据的装置,包括:
主体区域提取模块,用于将网页划分为主体区域和辅助区域,构建用于表示所述主体区域的XPATH标记树;
CSS标签对应模块,用于将所述XPATH标记树中的XPATH节点与CSS标签进行对应;
CSS标签分组模块,用于根据CSS标签内容的相似度将所述CSS标签进行分组;
正文提取模块,用于若所述XPATH标记树中各个XPATH节点的CSS标签均属于同一分组,且所述各个XPATH节点的CSS标签是属于同一父标签下的子标签,则提取所述XPATH标记树中各个XPATH节点对应的数据作为正文内容。
其中,所述主体区域提取模块包括:
网页解析模块,用于解析网页,获取所述网页的XPATH节点;
粗略过滤模块,用于根据所述XPATH节点的属性对所述XPATH节点进行过滤,获取体现网页结构布局的XPATH节点;
XPATH标记树构建模块,用于将所述体现网页结构布局的XPATH节点划分为用于表示主体区域的XPATH节点和用于表示辅助区域的XPATH节点,提取用于表示所述主体区域的XPATH节点构建XPATH标记树。
其中,所述CSS标签分组模块包括:
特征属性提取模块,用于提取所述CSS标签内容中的特征属性,所述特征属性包括字体大小、颜色和/或行间距;
特征属性对比模块,用于将所述特征属性一致的CSS标签作为一个分组。
其中,所述装置还包括:
第一优化模块,用于若所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签,则选择CSS标签数量最多的分组作为最优分组,提取所述最优分组中的CSS标签所对应的XPATH节点下的数据作为正文内容。
其中,所述装置还包括:
第二优化模块,用于若所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签,则统计各个分组中的CSS标签的数量,剔除数量最少的一组CSS标签对应的XPATH节点,提取所述XPATH标记树中剩余XPATH节点对应的数据作为正文内容。
实施本发明实施例,具有如下有益效果:通过将XPATH标记树和CSS标签相结合,构建网页页面标记树,能更好更准确地识别网页页面正文内容,提高网页结构化解析的能力,结构化解析后的结果数据更加精准。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的提取结构化数据的方法的流程图;
图2是本发明第二实施例提供的提取结构化数据的方法的流程图;
图3是网页节点标记的XML树状结构图;
图4是本发明第一实施例提供的提取结构化数据的装置的结构示意图;
图5是本发明第二实施例提供的提取结构化数据的装置的结构示意图;
图6是一网页的主体区域的示意图;
图7是本发明一实施例提供的CSS标签树的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
垂直搜索引擎是相对通用搜索引擎的信息量大、查询不准确、深度不够等缺点提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务,其特点就是“专、精、深”,且具有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。
垂直搜索引擎的数据依赖爬虫搜集,并做了深度加工而来的,因此要求垂直搜索引擎的索引数据倾向于结构化数据和元数据。
垂直搜索引擎和普通的网页搜索引擎的最大区别是对网页信息进行了结构化信息抽取,也就是将网页的非结构化数据抽取成特定的结构化信息数据,垂直搜索是以结构化数据为最小单位,然后将这些数据存储到数据库,进行进一步的加工处理,如:去重、分类等,最后分词、索引再以搜索的方式满足用户的需求。整个过程中,数据由非结构化数据抽取成结构化数据,经过深度加工处理后以非结构化的方式和结构化的方式返回给用户。
网页文件通常由标记语言(如HTML)描述,通过标记指明页面文本的显示格式。对不同网站的网页进行大量观察和分析后,可以发现:
①相同URL目录下的网页存在大量由同一模板生成的网页;
②由同一模板生成的网页的结构布局、CSS(Cascading Style Sheets,层叠样式表单)是基本一致的;
③不同网站尽管风格各异,但从页面结构和内容上来看有着类似的组成区域,大都由内容主体、单位标识、导航栏和交互信息等区域中的一个或多个区域构成,而且主体区域通常是页面布局中最大的一块区域。
由此可以推论:任何一个页面都可以划分为主体区域和其他的辅助区域,内容主体与和辅助区域还分别可依样划分为更小的区域,同一网站同一主题的所有网页具有相同的划分方式。
用户在访问网页(或者说是软件系统在处理网页)时,往往关心的仅仅是网页的主体区域中的正文内容。因此,对网页进行区域划分后,在进行页面处理时只需对主体区域中的信息加以处理而忽略别的区域,这样可以减少页面处理在时间和空间上的不必要花费。
因此在对页面进行分析时,可以根据这些标记来构建一棵页面标记树进行分析,保留其中有用信息的那部分标记子树,抛弃其它标记子树,从而达到净化页面,快速获取网页正文内容的目的。
请参见图1,是本发明第一实施例提供的提取结构化数据的方法的流程图,该方法包括:
S101、将网页划分为主体区域和辅助区域,构建用于表示所述主体区域的XPATH(XML Path Language,XML路径语言)标记树。其中,XPATH是一种用来确定XML文档中某部分位置的语言。XPATH基于XML的树状结构,提供在数据结构树中找寻节点的能力。例如,步骤S101中,可以利用XPATH技术,选择相同网站或者相同页面结构、显示风格的目标页面进行分析,构建一棵页面标记树,保留其中有用信息的那部分标记子树,抛弃其它标记子树,从而达到快速获取网页页面主要内容的目的。如图3所示,主体区域是用户关注的主要区域,辅助区域包括单位标识区域、导航信息区域、交互信息区域和版权声明区域等,在一些网页中,版权声明区域也可能位于主体区域内。在网页的XML树状结构中,每个XPATH节点可以对应于网页页面中的一个矩形区域,一个网页页面可以分成多个矩形区域,每个矩形区域里面还可以再划分成多个子区域,依次类推。最后根据这些区域里面内容的多少,如文字数目的多少,进行对比,在XML树状结构中采用自下而上的方式计算出所有节点的文字数目,通过对比各个区域的文字内容的多少,选择内容最多的一个作为主体区域,图6就是一个示例性的主体区域的示意图。
S102、将所述XPATH标记树中的XPATH节点与CSS标签进行对应,并根据CSS标签内容的相似度将所述CSS标签进行分组。
S103、若所述XPATH标记树中各个XPATH节点的CSS标签均属于同一分组,且所述各个XPATH节点的CSS标签属于同一父标签下的子标签,则提取所述XPATH标记树中各个XPATH节点对应的数据作为正文内容。
本发明实施例提供的提取结构化数据的方法,通过将XPATH标记树和CSS标签相结合,构建网页页面标记树,能更好更准确地识别网页页面正文内容,提高网页结构化解析的能力,结构化解析后的结果数据更加精准。
请参见图2,是本发明第二实施例提供的提取结构化数据的方法的流程图,该方法包括:
S201、解析网页,获取所述网页的XPATH节点。
S202、根据所述XPATH节点的属性对所述XPATH节点进行过滤,获取体现网页结构布局的XPATH节点。在网页的XML树状结构中,根节点<root>下可以划分为多层次的XPATH节点,这些XPATH节点可以用节点标记来表示,例如节点标记<img>、<br>、<table>、<div>、<tr>、<td>、<ul>、<li>等。不同的节点标记代表了不同的节点属性,例如节点标记<img>属于图片标记,节点标记<table>属于容器标记,节点标记<tr>和<td>属于内部嵌套标记等,因此可以根据节点标记来对XPATH节点进行粗略过滤。具体地,步骤S202可以包括:滤除对标记树结构不会构成影响的XPATH节点;保留体现网页结构布局的XPATH节点。例如,可以滤除对目标页面的标记树结构不会构成影响的节点标记诸如<img>、<br>等,留下体现页面结构布局的节点标记诸如容器标记<table>、<div>及其内部嵌套的<tr>、<td>和<ul>、<li>等。通过对XPATH节点进行粗略过滤,可以减轻后续精细过滤操作的负担,从而缩短操作时间,提高操作效率。
S203、将所述体现网页结构布局的XPATH节点划分为用于表示主体区域的XPATH节点和用于表示辅助区域的XPATH节点,提取用于表示所述主体区域的XPATH节点构建XPATH标记树。图7就是一个示例性的用于表示主体区域的XPATH标记树的示意图,在该XPATH标记树中,主要包含一些容器标记及其内部嵌套标记。在对XPATH节点进行划分时,可以利用自动或半自动方法、采用自下而上的方式计算出每个XPATH节点所对应的网页区域的文字数目,选择文字数目最多的上级XPATH节点及其下级节点作为主体区域的XPATH节点。
S204、将所述XPATH标记树中的XPATH节点与CSS标签进行对应,并根据CSS标签内容的相似度将所述CSS标签进行分组。如图7所示,可以在XPATH标记树中的节点标记下分别标注其对应的CSS标签名称,构成CSS标签树,例如,在图7所示的节点1-节点35中,节点3、4、……、8具有相同的CSS标签“.g”,节点10、13、16具有相同的CSS标签“.g.r”。在CSS标签树中,上下级标签节点可能具有父子关系,例如,节点10是节点4的子节点,或者说节点4是节点10的父节点。通常来说,子节点可以继承父节点的CSS标签内容。
具体地,CSS标签通常为以下形式:
S205、判断所述XPATH标记树中各个XPATH节点的CSS标签是否均属于同一分组,且所述各个XPATH节点的CSS标签是否为属于同一父标签下的子标签。
若步骤S205的判断结果为是,则执行步骤S206。S206、提取所述XPATH标记树中各个XPATH节点对应的数据作为正文内容。具体地,根据所述XPATH标记树生成XPATH表达式;根据所述XPATH表达式提取数据作为正文内容。
若步骤S205的判断结果为否,则执行步骤S207。S207、统计各个分组中的CSS标签的数量,剔除数量最少的一组CSS标签对应的XPATH节点,提取所述XPATH标记树中剩余XPATH节点对应的数据作为正文内容,即根据所述XPATH标记树中剩余的XPATH节点生成XPATH表达式;根据所述XPATH表达式提取数据作为正文内容。
图2仅仅是本发明的一个优选实施例,在本发明的其它实施例中,还可以采用其它方法进行精细过滤,例如,在步骤S207中,还可以选择CSS标签数量最多的分组作为最优分组,提取所述最优分组中的CSS标签所对应的XPATH节点下的数据作为正文内容。
优选地,在步骤S204中,根据CSS标签内容的相似度对CSS标签进行分组时,为了简化相似度分析过程,通常只获取CSS标签内容中的特征属性,例如字体大小、颜色、行间距等作为相似度分析的依据。具体地,所述根据CSS标签内容的相似度将所述CSS标签进行分组的步骤包括:提取所述CSS标签内容中的特征属性,所述特征属性包括字体大小、颜色和/或行间距;将所述特征属性一致的CSS标签作为一个分组。由于特征属性是CSS标签内容的主要部分,因此可以认为特征属性一致时,CSS相似度极高。
具体地,以下列CSS标签为例:
其中,.main_con2标签节点与.main_con2.tit标签节点为父子关系,因此.main_con2标签节点中的CSS标签内容可以被.main_con2.tit标签节点继承。这样,.main_con2.tit标签节点的CSS标签内容与.con2_tit标签节点的CSS标签内容在特征属性color和font-size上一致,因此可以将.main_con2.tit标签节点与.con2_tit标签节点归并到一组。
图6示例性地示出了一网页的主体区域,该网页的主体区域的XPATH标记树为:html/body/div[3]/div/div[3]/div[1]/div[2]/div[3]。除了用户需要的正文内容以外,该主体区域中还包含广告信息和版权说明信息。现有技术中一般只依据XPATH标记树进行数据采集,这样会将与正文无关的信息(例如版权声明的文字)也采集进来作为正文内容。但是,在本发明的实施例中,在构建用于表示主体区域的XPATH标记树后,还通过识别主体区域的XPATH节点的CSS标签,构建对应于XPATH标记树的CSS标签树如下:
第一层CSS标签:.text
css内容:
第二层CSS标签:.text>p正文文字内容区域
根据CSS标签树的结构和内容进行相似度分析处理,并分成三组,可以得知.text>p组中的CSS标签节点数最多,因此将主体区域中html/body/div[3]/div/div[3]/div[1]/div[2]/div[3]各个XPATH节点的CSS标签为.text>p的XPATH节点作为用于表示正文内容的标记树,即获取XPATH表达式:html/body/div[3]/div/div[3]/div[1]/div[2]/div[3]/p下的数据内容。
本发明实施例,优化选择XPATH节点后,通过封装和扩展Java的HTML解析器——jsoup,构建XPATH表达式或CSS选择器,对预结构化解析的网页页面进行处理,获取页面内容,构建结构化数据。
请参见图4,是本发明第一实施例提供的提取结构化数据的装置400的结构示意图,该装置400包括:
主体区域提取模块410,用于将网页划分为主体区域和辅助区域,构建用于表示所述主体区域的XPATH(XML Path Language,XML路径语言)标记树。其中,XPATH是一种用来确定XML文档中某部分位置的语言。XPATH基于XML的树状结构,提供在数据结构树中找寻节点的能力。例如,步骤S101中,可以利用XPATH技术,选择相同网站或者相同页面结构、显示风格的目标页面进行分析,构建一棵页面标记树,保留其中有用信息的那部分标记子树,抛弃其它标记子树,从而达到快速获取网页页面主要内容的目的。如图3所示,主体区域是用户关注的主要区域,辅助区域包括单位标识区域、导航信息区域、交互信息区域和版权声明区域等,在一些网页中,版权声明区域也可能位于主体区域内。在网页的XML树状结构中,每个XPATH节点可以对应于网页页面中的一个矩形区域,一个网页页面可以分成多个矩形区域,每个矩形区域里面还可以再划分成多个子区域,依次类推。最后根据这些区域里面内容的多少,如文字数目的多少,进行对比,在XML树状结构中采用自下而上的方式计算出所有节点的文字数目,通过对比各个区域的文字内容的多少,选择内容最多的一个作为主体区域,图6就是一个示例性的主体区域的示意图。
CSS标签对应模块420,用于将所述XPATH标记树中的XPATH节点与CSS标签进行对应。
CSS标签分组模块430,用于根据CSS标签内容的相似度将所述CSS标签进行分组。
正文提取模块440,用于若所述XPATH标记树中各个XPATH节点的CSS标签均属于同一分组,且所述各个XPATH节点的CSS标签属于同一父标签下的子标签,则提取所述XPATH标记树中各个XPATH节点对应的数据作为正文内容。具体地,正文提取模块440根据所述XPATH标记树生成XPATH表达式;根据所述XPATH表达式提取数据作为正文内容。
本发明实施例提供的提取结构化数据的装置,通过将XPATH标记树和CSS标签相结合,构建网页页面标记树,能更好更准确地识别网页页面正文内容,提高网页结构化解析的能力,结构化解析后的结果数据更加精准。
请参见图5,是本发明第二实施例提供的提取结构化数据的装置500的结构示意图,该装置500包括主体区域提取模块410、CSS标签对应模块420、CSS标签分组模块430和正文提取模块440,其中,主体区域提取模块410包括网页解析模块411、粗略过滤模块412和XPATH标记树构建模块413,CSS标签分组模块430包括特征属性提取模块431和特征属性对比模块432。
网页解析模块411,用于解析网页,获取所述网页的XPATH节点。
粗略过滤模块412,用于根据所述XPATH节点的属性对所述XPATH节点进行过滤,获取体现网页结构布局的XPATH节点。在网页的XML树状结构中,根节点<root>下可以划分为多层次的XPATH节点,这些XPATH节点可以用节点标记来表示,例如节点标记<img>、<br>、<table>、<div>、<tr>、<td>、<ul>、<li>等。不同的节点标记代表了不同的节点属性,例如节点标记<img>属于图片标记,节点标记<table>属于容器标记,节点标记<tr>和<td>属于内部嵌套标记等,因此可以根据节点标记来对XPATH节点进行粗略过滤。具体地,步骤S202可以包括:滤除对标记树结构不会构成影响的XPATH节点;保留体现网页结构布局的XPATH节点。例如,可以滤除对目标页面的标记树结构不会构成影响的节点标记诸如<img>、<br>等,留下体现页面结构布局的节点标记诸如容器标记<table>、<div>及其内部嵌套的<tr>、<td>和<ul>、<li>等。通过对XPATH节点进行粗略过滤,可以减轻后续精细过滤操作的负担,从而缩短操作时间,提高操作效率。
XPATH标记树构建模块413,用于将所述体现网页结构布局的XPATH节点划分为用于表示主体区域的XPATH节点和用于表示辅助区域的XPATH节点,提取用于表示所述主体区域的XPATH节点构建XPATH标记树。图7就是一个示例性的用于表示主体区域的XPATH标记树的示意图,在该XPATH标记树中,主要包含一些容器标记及其内部嵌套标记。在对XPATH节点进行划分时,可以利用自动或半自动方法、采用自下而上的方式计算出每个XPATH节点所对应的网页区域的文字数目,选择文字数目最多的上级XPATH节点及其下级节点作为主体区域的XPATH节点。
CSS标签对应模块420,用于将所述XPATH标记树中的XPATH节点与CSS标签进行对应,并根据CSS标签内容的相似度将所述CSS标签进行分组。如图7所示,可以在XPATH标记树中的节点标记下分别标注其对应的CSS标签名称,构成CSS标签树,例如节点3、4、……、8具有相同的CSS标签“.g”,节点10、13、16具有相同的CSS标签“.g.r”。在CSS标签树中,上下级标签节点可能具有父子关系,例如,节点10是节点4的子节点,或者说节点4是节点10的父节点。通常来说,子节点可以继承父节点的CSS标签内容。
具体地,CSS标签通常为以下形式:
特征属性提取模块431,用于提取所述CSS标签内容中的特征属性,所述特征属性包括字体大小、颜色和/或行间距。
特征属性对比模块432,用于将所述特征属性一致的CSS标签作为一个分组。由于特征属性是CSS标签内容的主要部分,因此可以认为特征属性一致时,CSS相似度极高。
具体地,以下列CSS标签为例:
其中,.main_con2标签节点与.main_con2.tit标签节点为父子关系,因此.main_con2标签节点中的CSS标签内容可以被.main_con2.tit标签节点继承。这样,.main_con2.tit标签节点的CSS标签内容与.con2_tit标签节点的CSS标签内容在特征属性color和font-size上一致,因此特征属性对比模块432可以将.main_con2.tit标签节点与.con2_tit标签节点归并到一组。
若正文提取模块440确定所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签时,装置400、500还可以包括第一优化模块和/或第二优化模块。
第一优化模块,用于在所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签时,统计各个分组中的CSS标签的数量,选择CSS标签数量最多的分组作为最优分组,提取所述最优分组中的CSS标签所对应的XPATH节点下的数据作为正文内容。
第二优化模块,用于在所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签时,统计各个分组中的CSS标签的数量,剔除数量最少的一组CSS标签对应的XPATH节点,提取所述XPATH标记树中剩余XPATH节点对应的数据作为正文内容,即根据所述XPATH标记树中剩余的XPATH节点生成XPATH表达式;根据所述XPATH表达式提取数据作为正文内容。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (8)
1.一种提取结构化数据的方法,其特征在于,包括:
将网页划分为主体区域和辅助区域,构建用于表示所述主体区域的XPATH标记树,该步骤包括:解析网页,获取所述网页的XPATH节点;根据所述XPATH节点的属性对所述XPATH节点进行过滤,获取体现网页结构布局的XPATH节点;将所述体现网页结构布局的XPATH节点划分为用于表示主体区域的XPATH节点和用于表示辅助区域的XPATH节点,提取用于表示所述主体区域的XPATH节点构建XPATH标记树;
将所述XPATH标记树中的XPATH节点与CSS标签进行对应,并根据CSS标签内容的相似度将所述CSS标签进行分组;
若所述XPATH标记树中各个XPATH节点的CSS标签均属于同一分组,且所述各个XPATH节点的CSS标签是属于同一父标签下的子标签,则提取所述XPATH标记树中各个XPATH节点对应的数据作为正文内容。
2.如权利要求1所述的提取结构化数据的方法,其特征在于,所述根据CSS标签内容的相似度将所述CSS标签进行分组的步骤包括:
提取所述CSS标签内容中的特征属性,所述特征属性包括字体大小、颜色和/或行间距;
将所述特征属性一致的CSS标签作为一个分组。
3.如权利要求1所述的提取结构化数据的方法,其特征在于,所述方法还包括:
若所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签,则选择CSS标签数量最多的分组作为最优分组,提取所述最优分组中的CSS标签所对应的XPATH节点下的数据作为正文内容。
4.如权利要求1所述的提取结构化数据的方法,其特征在于,所述方法还包括:
若所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签,则统计各个分组中的CSS标签的数量,剔除数量最少的一组CSS标签对应的XPATH节点,提取所述XPATH标记树中剩余XPATH节点对应的数据作为正文内容。
5.一种提取结构化数据的装置,其特征在于,包括:
主体区域提取模块,用于将网页划分为主体区域和辅助区域,构建用于表示所述主体区域的XPATH标记树;所述主体区域提取模块包括:网页解析模块,用于解析网页,获取所述网页的XPATH节点;粗略过滤模块,用于根据所述XPATH节点的属性对所述XPATH节点进行过滤,获取体现网页结构布局的XPATH节点;XPATH标记树构建模块,用于将所述体现网页结构布局的XPATH节点划分为用于表示主体区域的XPATH节点和用于表示辅助区域的XPATH节点,提取用于表示所述主体区域的XPATH节点构建XPATH标记树;
CSS标签对应模块,用于将所述XPATH标记树中的XPATH节点与CSS标签进行对应;
CSS标签分组模块,用于根据CSS标签内容的相似度将所述CSS标签进行分组;
正文提取模块,用于若所述XPATH标记树中各个XPATH节点的CSS标签均属于同一分组,且所述各个XPATH节点的CSS标签是属于同一父标签下的子标签,则提取所述XPATH标记树中各个XPATH节点对应的数据作为正文内容。
6.如权利要求5所述的提取结构化数据的装置,其特征在于,所述CSS标签分组模块包括:
特征属性提取模块,用于提取所述CSS标签内容中的特征属性,所述特征属性包括字体大小、颜色和/或行间距;
特征属性对比模块,用于将所述特征属性一致的CSS标签作为一个分组。
7.如权利要求5所述的提取结构化数据的装置,其特征在于,所述装置还包括:
第一优化模块,用于若所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签,则选择CSS标签数量最多的分组作为最优分组,提取所述最优分组中的CSS标签所对应的XPATH节点下的数据作为正文内容。
8.如权利要求5所述的提取结构化数据的装置,其特征在于,所述装置还包括:
第二优化模块,用于若所述XPATH标记树中各个XPATH节点的CSS标签不属于同一分组,或所述各个XPATH节点的CSS标签不是属于同一父标签下的子标签,则统计各个分组中的CSS标签的数量,剔除数量最少的一组CSS标签对应的XPATH节点,提取所述XPATH标记树中剩余XPATH节点对应的数据作为正文内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310529428.0A CN104598462B (zh) | 2013-10-30 | 2013-10-30 | 提取结构化数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310529428.0A CN104598462B (zh) | 2013-10-30 | 2013-10-30 | 提取结构化数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598462A CN104598462A (zh) | 2015-05-06 |
CN104598462B true CN104598462B (zh) | 2018-08-07 |
Family
ID=53124260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310529428.0A Active CN104598462B (zh) | 2013-10-30 | 2013-10-30 | 提取结构化数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598462B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339455B (zh) * | 2016-08-26 | 2019-06-04 | 电子科技大学 | 基于文本标签特征挖掘的网页正文提取方法 |
CN106372042B (zh) * | 2016-08-31 | 2019-09-24 | 北京奇艺世纪科技有限公司 | 一种文档内容获取方法和装置 |
CN106372049A (zh) * | 2016-08-31 | 2017-02-01 | 符文忠 | Word文档编辑器 |
CN108073646B (zh) * | 2016-11-18 | 2021-12-24 | 北大方正集团有限公司 | 目录提取方法及装置 |
CN106777281B (zh) * | 2016-12-29 | 2020-07-17 | 深圳市华傲数据技术有限公司 | 用于提高网络爬虫稳定性、可用性的数据处理方法及装置 |
CN107391675B (zh) * | 2017-07-21 | 2021-03-09 | 百度在线网络技术(北京)有限公司 | 用于生成结构化信息的方法和装置 |
CN107943838B (zh) * | 2017-10-30 | 2021-09-07 | 北京大数元科技发展有限公司 | 一种自动获取xpath生成爬虫脚本的方法及系统 |
CN109062876B (zh) * | 2018-07-20 | 2019-07-12 | 北京开普云信息科技有限公司 | 一种基于dom网页剪枝的相似网页查找方法及系统 |
CN112099778B (zh) * | 2020-11-13 | 2021-02-02 | 北京智慧星光信息技术有限公司 | 基于xpath的数据采集方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786947A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 基于网页页面布局提取网页核心内容的系统、方法和程序 |
CN102135976A (zh) * | 2010-09-27 | 2011-07-27 | 华为技术有限公司 | 超文本标识语言页面结构化数据提取方法及装置 |
CN102314497A (zh) * | 2011-08-26 | 2012-01-11 | 百度在线网络技术(北京)有限公司 | 一种用于识别标记语言文件主体内容的方法和设备 |
CN103092973A (zh) * | 2013-01-24 | 2013-05-08 | 浪潮(北京)电子信息产业有限公司 | 信息抽取方法和装置 |
CN103309954A (zh) * | 2013-05-27 | 2013-09-18 | 复旦大学 | 一种基于html网页的数据抽取系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8825686B2 (en) * | 2011-06-27 | 2014-09-02 | International Business Machines Corporation | Expression evaluation over multiple data models |
-
2013
- 2013-10-30 CN CN201310529428.0A patent/CN104598462B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786947A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 基于网页页面布局提取网页核心内容的系统、方法和程序 |
CN102135976A (zh) * | 2010-09-27 | 2011-07-27 | 华为技术有限公司 | 超文本标识语言页面结构化数据提取方法及装置 |
CN102314497A (zh) * | 2011-08-26 | 2012-01-11 | 百度在线网络技术(北京)有限公司 | 一种用于识别标记语言文件主体内容的方法和设备 |
CN103092973A (zh) * | 2013-01-24 | 2013-05-08 | 浪潮(北京)电子信息产业有限公司 | 信息抽取方法和装置 |
CN103309954A (zh) * | 2013-05-27 | 2013-09-18 | 复旦大学 | 一种基于html网页的数据抽取系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104598462A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104598462B (zh) | 提取结构化数据的方法及装置 | |
CN101025738B (zh) | 一种免模板动态网站生成方法 | |
JP4997749B2 (ja) | 文書処理方法、プログラム及びシステム | |
US20120303645A1 (en) | System and method for extraction of structured data from arbitrarily structured composite data | |
CN100444591C (zh) | 获取网页关键字的方法及其应用系统 | |
JP2005092889A (ja) | ウェブページのための情報ブロック抽出装置及び情報ブロック抽出方法 | |
CN101727498A (zh) | 一种基于web结构的网页信息自动提取方法 | |
CN108920434A (zh) | 一种通用的网页主题内容提取方法和系统 | |
CN102270206A (zh) | 一种有效网页内容的抓取方法及装置 | |
TW201250492A (en) | Method and system of extracting web page information | |
CN101727461A (zh) | 一种网页的正文抽取方法 | |
JP2005526314A (ja) | 文書構造識別器 | |
CN103678509B (zh) | 生成网页模板的方法及装置 | |
CN106709032A (zh) | 抽取电子表格文档中结构化信息的方法及装置 | |
US20070204215A1 (en) | Device for analyzing log files generated by process automation tools | |
Huynh et al. | Enabling web browsers to augment web sites' filtering and sorting functionalities | |
CN102254009A (zh) | 一种网页表格数据抽取的方法 | |
CN102117289B (zh) | 一种从网页中抽取评论内容的方法和装置 | |
CN102662969A (zh) | 一种基于网页结构语义的互联网信息对象定位方法 | |
CN111382192B (zh) | 一种数据列表展示方法、装置和电子设备 | |
CN104346405B (zh) | 一种从网页中抽取信息的方法及装置 | |
CN104217038A (zh) | 一种针对财经新闻的知识网络构建方法 | |
US20150269138A1 (en) | Publication Scope Visualization and Analysis | |
CN104142985A (zh) | 一种半自动化的垂直爬虫生成工具及方法 | |
CN102637172A (zh) | 网页分块标注方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |