CN103309954A - 一种基于html网页的数据抽取系统 - Google Patents
一种基于html网页的数据抽取系统 Download PDFInfo
- Publication number
- CN103309954A CN103309954A CN2013102001165A CN201310200116A CN103309954A CN 103309954 A CN103309954 A CN 103309954A CN 2013102001165 A CN2013102001165 A CN 2013102001165A CN 201310200116 A CN201310200116 A CN 201310200116A CN 103309954 A CN103309954 A CN 103309954A
- Authority
- CN
- China
- Prior art keywords
- html
- data
- xml
- selector switch
- page
- 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.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机网络技术领域,具体为一种基于html网页的数据抽取系统。其由xml解析器,html引擎以及数据管理器三个模块组成。本发明的优点在于:只需要在xml文件中描述html网页中哪些节点信息需要抓取,以及xml中其他一些配置信息,就可以快速的抓取所需要的数据,其方法简单、快捷。
Description
技术领域
本发明属于计算机网络技术领域,具体的说,涉及一种基于html网页的数据抽取系统。首先通过http get请求获取目标网页文档,然后通过在配置文件中使用我们定义的标记描述目标节点,最后经过我们的html engine解析,得到我们想要的目标数据。
背景技术
伴随着中国经济的快速发展,互联网正在悄然发生着突飞猛进的变化。电子商务网站,门户网站,博客,微博等各种类型的信息都发布在互联网上。虽然互联网上充斥着非常非常多的信息,但是同时我们也注意到,这些信息大多是非结构化数据,有时候为了科学研究或者其他需要,我们希望从互联网上获取数据,并将它们转化为结构化数据保存,利用这些结构化数据验证我们的模型。
传统的获得结构化数据的做法是先通过html get请求获得该页面资源,然后针对每一个具有相同页面结构的html页面编写一个html解析器,再获得目标节点的数据,保存在相应的介质中。但是这样的做法会带来一些问题,如我们需要解析的页面非常多,且这些页面的页面结构大多不一样,那么需要编写的html页面解析器就会非常的多。当需要解析的页面非常多时,这种方法是比较低下的,且效率不高,实现起来比较麻烦。
出于上述方面的考虑,我们提出了一种基于html网页的数据抽取系统。该系统通过利用我们的规则,描述具有相同页面结构的html的目标节点,然后由html引擎解析配置文件,从而得到我们想要的目标节点的结构化数据。通过这种方式,我们不需要为每个具有不同页面结构的html网页编写页面解析器,而只需要在我们的配置文件中,描述清楚这类具有相同页面结构的html网页的目标节点信息,这大大的减少了html网页解析器的用量,提高了效率。
发明内容
本发明主要提出了一种通用的html网页数据抽取系统。通过在xml配置文件中描述具有相同页面结构的目标节点,然后由html 引擎来统一处理所有的html页面。
本发明提出的一种基于html网页的数据抽取系统,该系统由三个模块组成,分别是xml解析器模块,html引擎模块以及数据管理器模块,关于三个模块的功能描述如下:
一:xml解析器模块
xml解析器模块负责解析sysconfig.xml文件,得到系统初始化参数、页面的url地址以及目标节点的描述信息;
xml解析器模块获得pages节点下的所有,page信息,在page信息中描述具有相同页面结构的一组url链接地址信息。
二:html引擎模块
html引擎模块首先验证sysconfig.xml文件配置信息的有效性,如果有效则继续执行,否则提示用户检查xml文件配置信息。Xml文件配置通过验证之后,根据配置信息中的页面链接地址,获取该页面的html文档,然后再调用html解析器来解析html文档,根据sysconfig.xml中定义的目标节点获取规则,获得html中目标元素,从而获得该元素的数据。
html引擎模块为系统的核心模块,主要完成xml文件的验证,验证xml配置信息是否正确,尤其是xml文件中关于html页面目标抓取节点的描述是否有效。如果验证未能通过则提示用户修正xml文件。
通过上述验证之后,根据xml解析器模块获得的html页面url地址,经httpget请求得到该页面的html字符串,再由html解析器将html字符串转化为具有dom树结构的html文档,根据sysconfig.xml中配置的目标节点选择器描述信息,最终得到dom树中的目标节点,从而得到所需的数据。
三:数据管理器模块
数据管理模块主要是负责数据的持久化工作,根据用户在sysconfig.xml中配置的数据保存方式,选择相应的数据管理器来完成数据的持久化工作。
数据管理器模块提供多种不同的数据持久化方式,包括文本文件,excel文件以及数据库等等,根据上述html数据抓取引擎获得的数据以及sysconfig.xml中配置的数据保存方式,最终由数据管理器完成数据的持久化工作。
数据管理器模块提供了一组统一的接口供上层应用程序调用,如文件的打开,文件的读取,文件的写入,以及文件的关闭。上层应用程序通过该接口完成数据的读取和写入,从而完成数据的持久化工作。
本发明中,系统进行数据抽取的工作流程如下:
首先,html引擎模块根据xml解析器模块获得的html页面url地址,通过http get请求获取目标网页文档;
接着xml解析器模块根据xml配置文件中的目标节点选择器,描述具有相同html页面结构的目标节点;
再经过我们的html 引擎模块解析,得到我们想要的目标节点的结构化数据;
最后由数据管理器模块根据配置文件中配置的数据保存方式将其保存在相应的介质中。
本发明的有益效果在于:为获得、保存结构化数据,我们不再需要为每个具有不同页面结构的html网页编写页面解析器,而只需要在我们的配置文件中,描述清楚这类具有相同页面结构的html网页的目标节点信息,这大大的减少了html网页解析器的用量,提高了效率。数据抽取系统只需要在xml 文件中描述html网页中哪些节点信息需要抓取,以及xml中其他一些配置信息,就可以快速的抓取您所需要的数据。这种方法简单、快捷。
具体实施方式
本发明提出的数据抽取系统,从功能上主要分为xml解析器,html引擎以及数据管理器三个部分。
一、xml解析器
通过xml解析器解析sysconfig.xml文件,得到在sysconfig.xml中配置系统启动参数、具有相同页面结构的页面链接地址url以及目标节点的描述信息。
以下为一个示例sysconfig.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<sysconfig>
<pages>
<page>
<pageMode>
<url></url>
<url></url>
<url></url>
</pageMode>
<pageDescriptors>
<pageDescriptor>
<key></key>
<value></value>
</pageDescriptor>
</pageDescriptors>
</page>
<page>…</page>
</pages>
</sysconfig>
在page节点下定义具有相同页面结构的html页面配置信息,在pageMode下的 url定义具有相同页面结构的一组html页面url链接地址,在pageDescriptor下定义html页面中需要抓取数据的目标节点的描述信息,其中key表示数据保存时的字段名称,value表示按照我们定义的规则对目标节点的描述信息。
目标节点选择器的描述规则如下:
通过定义目标节点选择器规则来描述html页面中目标节点。
· 元素选择器
使用 CSS 选择器来选取 HTML 元素,如:
"p" 选取 <p> 元素。
"p.intro" 选取所有 class="intro" 的 <p> 元素。
"p#demo" 选取 id="demo" 的第一个 <p> 元素。
·属性选择器
使用 XPath 表达式来选择带有给定属性的元素,如:
"[href]" 选取所有带有 href 属性的元素。
"[href='#']" 选取所有带有 href 值等于 "#" 的元素。
"[href!='#']" 选取所有带有 href 值不等于 "#" 的元素。
"[href$='.jpg']" 选取所有 href 值以 ".jpg" 结尾的元素。
· CSS 选择器
CSS 选择器可用于改变 HTML 元素的 CSS 属性。
二、html引擎
根据xml解析器对xml文件的解析,html engine会得到一组page信息,然后依次对这组page信息做如下处理:
依次遍历pageMode下的url地址,根据url地址,构造http get请求,得到html文档,然后根据目标节点的描述信息,通过html engine解析得到结构化数据。
三、数据管理器
根据html引擎得到的结构化数据,由数据管理器根据用户配置的数据保存方式,再调用具体的数据管理器来保存这些结构化数据。
本发明中,首先,html引擎模块根据xml解析器模块获得的html页面url地址,通过http get请求获取目标网页文档,接着xml解析器模块根据xml配置文件中的目标节点选择器,描述具有相同html页面结构的目标节点;再经过我们的html 引擎模块解析,得到我们想要的目标节点的结构化数据;最后由数据管理器模块根据配置文件中配置的数据保存方式将其保存在相应的介质中。
Claims (3)
1.一种基于html网页的数据抽取系统,其特征在于:其由xml解析器,html引擎以及数据管理器三个模块组成;其中:
所述xml解析器模块负责解析sysconfig.xml文件,得到系统初始化参数、页面的url地址和目标节点的描述信息;
所述html引擎模块首先验证sysconfig.xml文件配置信息的有效性,如果有效则继续执行,否则提示用户检查xml文件配置信息;xml文件配置通过验证之后,根据配置信息中的页面链接地址,获取该页面的html文档,然后再调用html解析器来解析html文档,根据sysconfig.xml中配置的目标节点选择器描述信息,获得html中目标元素,从而获得该元素的数据;
所述数据管理模块主要是负责数据的持久化工作,根据用户在sysconfig.xml中配置的数据保存方式,选择相应的数据管理器来完成数据的持久化工作;
所述系统进行数据抽取的工作流程如下:
首先,html引擎模块根据xml解析器模块获得的html页面url地址,通过http get请求获取目标网页文档;
接着xml解析器模块根据xml文件中的配置目标节点选择器,描述具有相同html页面结构的目标节点;
再经过我们的html 引擎模块解析,得到我们想要的目标节点的结构化数据;
最后由数据管理器模块根据配置文件中配置的数据保存方式将其保存在相应的介质中。
2.根据权利要求1所述的基于html网页的数据抽取系统,其特征在于:所述目标节点选择器,包括元素选择器、属性选择器以及选择器;其中,所述元素选择器为CSS 选择器;所述属性选择器,使用 XPath 表达式来选择带有给定属性的元素;所述CSS 选择器,用于改变 HTML 元素的 CSS 属性。
3.根据权利要求1所述的基于html网页的数据抽取系统,其特征在于:数据管理器模块中所述数据保存方式包括文本文件,excel文件以及数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102001165A CN103309954A (zh) | 2013-05-27 | 2013-05-27 | 一种基于html网页的数据抽取系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102001165A CN103309954A (zh) | 2013-05-27 | 2013-05-27 | 一种基于html网页的数据抽取系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103309954A true CN103309954A (zh) | 2013-09-18 |
Family
ID=49135172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102001165A Pending CN103309954A (zh) | 2013-05-27 | 2013-05-27 | 一种基于html网页的数据抽取系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103309954A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927370A (zh) * | 2014-04-23 | 2014-07-16 | 焦点科技股份有限公司 | 一种组合文字和图片信息的网络资讯批量采集方法 |
CN104331295A (zh) * | 2014-11-05 | 2015-02-04 | 北京中科辅龙信息技术有限公司 | 页面生成方法和系统 |
CN104598462A (zh) * | 2013-10-30 | 2015-05-06 | 深圳市国信互联科技有限公司 | 提取结构化数据的方法及装置 |
CN113392298A (zh) * | 2020-03-14 | 2021-09-14 | 天津挺哥网络科技有限公司 | 一种基于xml数据库的定点暗网情报挖掘分析系统的设计方法 |
CN116126426A (zh) * | 2023-04-10 | 2023-05-16 | 杭州城市大数据运营有限公司 | 基于Web服务系统的自动化组件解耦方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233365A1 (en) * | 2002-04-12 | 2003-12-18 | Metainformatics | System and method for semantics driven data processing |
CN101251852A (zh) * | 2008-01-11 | 2008-08-27 | 孟小峰 | 面向领域的Web数据集成系统和方法 |
CN102591971A (zh) * | 2011-12-31 | 2012-07-18 | 北京百度网讯科技有限公司 | 一种网页信息提取的方法和设备 |
-
2013
- 2013-05-27 CN CN2013102001165A patent/CN103309954A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233365A1 (en) * | 2002-04-12 | 2003-12-18 | Metainformatics | System and method for semantics driven data processing |
CN101251852A (zh) * | 2008-01-11 | 2008-08-27 | 孟小峰 | 面向领域的Web数据集成系统和方法 |
CN102591971A (zh) * | 2011-12-31 | 2012-07-18 | 北京百度网讯科技有限公司 | 一种网页信息提取的方法和设备 |
Non-Patent Citations (1)
Title |
---|
田宇: "基于XML的WEB信息抽取系统研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598462A (zh) * | 2013-10-30 | 2015-05-06 | 深圳市国信互联科技有限公司 | 提取结构化数据的方法及装置 |
CN104598462B (zh) * | 2013-10-30 | 2018-08-07 | 深圳市国信互联科技有限公司 | 提取结构化数据的方法及装置 |
CN103927370A (zh) * | 2014-04-23 | 2014-07-16 | 焦点科技股份有限公司 | 一种组合文字和图片信息的网络资讯批量采集方法 |
CN103927370B (zh) * | 2014-04-23 | 2015-02-18 | 焦点科技股份有限公司 | 一种组合文字和图片信息的网络资讯批量采集方法 |
CN104331295A (zh) * | 2014-11-05 | 2015-02-04 | 北京中科辅龙信息技术有限公司 | 页面生成方法和系统 |
CN113392298A (zh) * | 2020-03-14 | 2021-09-14 | 天津挺哥网络科技有限公司 | 一种基于xml数据库的定点暗网情报挖掘分析系统的设计方法 |
CN116126426A (zh) * | 2023-04-10 | 2023-05-16 | 杭州城市大数据运营有限公司 | 基于Web服务系统的自动化组件解耦方法及系统 |
CN116126426B (zh) * | 2023-04-10 | 2023-08-29 | 杭州城市大数据运营有限公司 | 基于Web服务系统的自动化组件解耦方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101771681B (zh) | 一种页面显示控制方法、服务器及系统 | |
US8131753B2 (en) | Apparatus and method for accessing and indexing dynamic web pages | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
US9734147B2 (en) | Clustering repetitive structure of asynchronous web application content | |
CN104881488A (zh) | 基于关系表的可配置信息抽取方法 | |
CN103309954A (zh) | 一种基于html网页的数据抽取系统 | |
CN104572934B (zh) | 一种基于dom的网页关键内容抽取方法 | |
CN102646039A (zh) | 基于XML Schema的软件界面生成系统及方法 | |
CN104063401A (zh) | 一种网页样式地址合并的方法和装置 | |
CN103853770B (zh) | 一种抽取论坛网页中帖子内容的方法及系统 | |
CN104317948A (zh) | 页面数据抓取方法和系统 | |
CN102880679B (zh) | 一种网页信息存储方法和装置 | |
CN104142985A (zh) | 一种半自动化的垂直爬虫生成工具及方法 | |
US20160085875A1 (en) | Method for configuring browser bookmarks, device and terminal thereof | |
CN104317845A (zh) | 一种深度网络数据自动抽取方法及系统 | |
CN101446964A (zh) | 一种数据钻取的方法及计算机设备 | |
CN102236713A (zh) | 一种数字电视交互服务页面的信息提取方法及其装置 | |
KR20120122959A (ko) | 웹 컨텐츠 수집방법 및 수집장치, 그 기록매체 | |
US20190146954A1 (en) | Hierarchical seedlists for application data | |
CN104866312A (zh) | 一种基于asp点net的伪静态实现方法 | |
CN103823855B (zh) | 面向语义网的中文百科知识组织与集成方法 | |
CN105740997A (zh) | 一种控制任务流程的方法、装置及数据库管理系统 | |
CN110020054A (zh) | 网页内容爬取方法、装置、计算机设备和存储介质 | |
Kaur et al. | Research on the application of web mining technique based on XML for unstructured web data using LINQ | |
Ge et al. | Robots exclusion and guidance protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130918 |