《一种基于HTML网页的数据抽取系统.pdf》由会员分享,可在线阅读,更多相关《一种基于HTML网页的数据抽取系统.pdf(6页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103309954 A (43)申请公布日 2013.09.18 CN 103309954 A *CN103309954A* (21)申请号 201310200116.5 (22)申请日 2013.05.27 G06F 17/30(2006.01) (71)申请人 复旦大学 地址 200433 上海市杨浦区邯郸路 220 号 (72)发明人 王新 陈功锁 权恒星 (74)专利代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞 盛志范 (54) 发明名称 一种基于 html 网页的数据抽取系统 (57) 摘要 本发明属于计算机网络技术领域, 具体为一 种基于h。
2、tml网页的数据抽取系统。 其由 xml解析 器, html 引擎以及数据管理器三个模块组成。本 发明的优点在于 : 只需要在 xml 文件中描述 html 网页中哪些节点信息需要抓取, 以及 xml 中其他 一些配置信息, 就可以快速的抓取所需要的数据, 其方法简单、 快捷。 (51)Int.Cl. 权利要求书 1 页 说明书 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书4页 (10)申请公布号 CN 103309954 A CN 103309954 A *CN103309954A* 1/1 页 2 1. 一种基于 html 网页的数据抽取系统,。
3、 其特征在于 : 其由 xml 解析器, html 引擎以及 数据管理器三个模块组成 ; 其中 : 所述 xml 解析器模块负责解析 sysconfig.xml 文件, 得到系统初始化参数、 页面的 url 地址和目标节点的描述信息 ; 所述html引擎模块首先验证sysconfig.xml文件配置信息的有效性, 如果有效则继续 执行, 否则提示用户检查 xml 文件配置信息 ; xml 文件配置通过验证之后, 根据配置信息中 的页面链接地址, 获取该页面的 html 文档, 然后再调用 html 解析器来解析 html 文档, 根据 sysconfig.xml 中配置的目标节点选择器描述信息。
4、, 获得 html 中目标元素, 从而获得该元 素的数据 ; 所述数据管理模块主要是负责数据的持久化工作, 根据用户在 sysconfig.xml 中配置 的数据保存方式, 选择相应的数据管理器来完成数据的持久化工作 ; 所述系统进行数据抽取的工作流程如下 : 首先, html引擎模块根据xml解析器模块获得的html页面url地址, 通过http get请 求获取目标网页文档 ; 接着 xml 解析器模块根据 xml 文件中的配置目标节点选择器, 描述具有相同 html 页面 结构的目标节点 ; 再经过我们的 html 引擎模块解析, 得到我们想要的目标节点的结构化数据 ; 最后由数据管理器。
5、模块根据配置文件中配置的数据保存方式将其保存在相应的介质 中。 2. 根据权利要求 1 所述的基于 html 网页的数据抽取系统, 其特征在于 : 所述目标节点 选择器, 包括元素选择器、 属性选择器以及选择器 ; 其中, 所述元素选择器为 CSS 选择器 ; 所述属性选择器, 使用 XPath 表达式来选择带有给定属性的元素 ; 所述 CSS 选择器, 用于 改变 HTML 元素的 CSS 属性。 3. 根据权利要求 1 所述的基于 html 网页的数据抽取系统, 其特征在于 : 数据管理器模 块中所述数据保存方式包括文本文件, excel 文件以及数据库。 权 利 要 求 书 CN 103。
6、309954 A 2 1/4 页 3 一种基于 html 网页的数据抽取系统 技术领域 0001 本发明属于计算机网络技术领域, 具体的说, 涉及一种基于 html 网页的数据抽取 系统。首先通过 http get 请求获取目标网页文档, 然后通过在配置文件中使用我们定义的 标记描述目标节点, 最后经过我们的 html engine 解析, 得到我们想要的目标数据。 背景技术 0002 伴随着中国经济的快速发展, 互联网正在悄然发生着突飞猛进的变化。电子商务 网站, 门户网站, 博客, 微博等各种类型的信息都发布在互联网上。虽然互联网上充斥着非 常非常多的信息, 但是同时我们也注意到, 这些信。
7、息大多是非结构化数据, 有时候为了科学 研究或者其他需要, 我们希望从互联网上获取数据, 并将它们转化为结构化数据保存, 利用 这些结构化数据验证我们的模型。 0003 传统的获得结构化数据的做法是先通过html get请求获得该页面资源, 然后针对 每一个具有相同页面结构的html页面编写一个html解析器, 再获得目标节点的数据, 保存 在相应的介质中。 但是这样的做法会带来一些问题, 如我们需要解析的页面非常多, 且这些 页面的页面结构大多不一样, 那么需要编写的 html 页面解析器就会非常的多。当需要解析 的页面非常多时, 这种方法是比较低下的, 且效率不高, 实现起来比较麻烦。 0。
8、004 出于上述方面的考虑, 我们提出了一种基于 html 网页的数据抽取系统。该系统通 过利用我们的规则, 描述具有相同页面结构的html的目标节点, 然后由html引擎解析配置 文件, 从而得到我们想要的目标节点的结构化数据。 通过这种方式, 我们不需要为每个具有 不同页面结构的 html 网页编写页面解析器, 而只需要在我们的配置文件中, 描述清楚这类 具有相同页面结构的html网页的目标节点信息, 这大大的减少了html网页解析器的用量, 提高了效率。 发明内容 0005 本发明主要提出了一种通用的 html 网页数据抽取系统。通过在 xml 配置文件中 描述具有相同页面结构的目标节点。
9、, 然后由 html 引擎来统一处理所有的 html 页面。 0006 本发明提出的一种基于 html 网页的数据抽取系统, 该系统由三个模块组成, 分别 是 xml 解析器模块, html 引擎模块以及数据管理器模块, 关于三个模块的功能描述如下 : 一 : xml 解析器模块 xml 解析器模块负责解析 sysconfig.xml 文件, 得到系统初始化参数、 页面的 url 地址 以及目标节点的描述信息 ; xml 解析器模块获得 pages 节点下的所有 ,page 信息, 在 page 信息中描述具有相同页 面结构的一组 url 链接地址信息。 0007 二 : html 引擎模块 。
10、html 引擎模块首先验证 sysconfig.xml 文件配置信息的有效性, 如果有效则继续执 行, 否则提示用户检查 xml 文件配置信息。Xml 文件配置通过验证之后, 根据配置信息中的 说 明 书 CN 103309954 A 3 2/4 页 4 页面链接地址, 获取该页面的 html 文档, 然后再调用 html 解析器来解析 html 文档, 根据 sysconfig.xml 中定义的目标节点获取规则, 获得 html 中目标元素, 从而获得该元素的数 据。 0008 html引擎模块为系统的核心模块, 主要完成xml文件的验证, 验证xml配置信息是 否正确, 尤其是 xml 文。
11、件中关于 html 页面目标抓取节点的描述是否有效。如果验证未能通 过则提示用户修正 xml 文件。 0009 通过上述验证之后, 根据 xml 解析器模块获得的 html 页面 url 地址, 经 httpget 请求得到该页面的 html 字符串, 再由 html 解析器将 html 字符串转化为具有 dom 树结构的 html文档, 根据sysconfig.xml中配置的目标节点选择器描述信息, 最终得到dom树中的目 标节点, 从而得到所需的数据。 0010 三 : 数据管理器模块 数据管理模块主要是负责数据的持久化工作, 根据用户在 sysconfig.xml 中配置的数 据保存方式。
12、, 选择相应的数据管理器来完成数据的持久化工作。 0011 数据管理器模块提供多种不同的数据持久化方式, 包括文本文件, excel 文件以及 数据库等等, 根据上述html数据抓取引擎获得的数据以及sysconfig.xml中配置的数据保 存方式, 最终由数据管理器完成数据的持久化工作。 0012 数据管理器模块提供了一组统一的接口供上层应用程序调用, 如文件的打开, 文 件的读取, 文件的写入, 以及文件的关闭。上层应用程序通过该接口完成数据的读取和写 入, 从而完成数据的持久化工作。 0013 本发明中, 系统进行数据抽取的工作流程如下 : 首先, html引擎模块根据xml解析器模块获。
13、得的html页面url地址, 通过http get请 求获取目标网页文档 ; 接着 xml 解析器模块根据 xml 配置文件中的目标节点选择器, 描述具有相同 html 页面 结构的目标节点 ; 再经过我们的 html 引擎模块解析, 得到我们想要的目标节点的结构化数据 ; 最后由数据管理器模块根据配置文件中配置的数据保存方式将其保存在相应的介质 中。 0014 本发明的有益效果在于 : 为获得、 保存结构化数据, 我们不再需要为每个具有不同 页面结构的 html 网页编写页面解析器, 而只需要在我们的配置文件中, 描述清楚这类具有 相同页面结构的html网页的目标节点信息, 这大大的减少了h。
14、tml网页解析器的用量, 提高 了效率。 数据抽取系统只需要在xml 文件中描述html网页中哪些节点信息需要抓取, 以及 xml 中其他一些配置信息, 就可以快速的抓取您所需要的数据。这种方法简单、 快捷。 具体实施方式 0015 本发明提出的数据抽取系统, 从功能上主要分为 xml 解析器, html 引擎以及数据 管理器三个部分。 0016 一、 xml 解析器 通过 xml 解析器解析 sysconfig.xml 文件, 得到在 sysconfig.xml 中配置系统启动参 数、 具有相同页面结构的页面链接地址 url 以及目标节点的描述信息。 说 明 书 CN 103309954 A。
15、 4 3/4 页 5 0017 以下为一个示例 sysconfig.xml 文件 : 在page节点下定义具有相同页面结构的html页面配置信息, 在pageMode下的 url定 义具有相同页面结构的一组 html 页面 url 链接地址, 在 pageDescriptor 下定义 html 页面 中需要抓取数据的目标节点的描述信息, 其中 key 表示数据保存时的字段名称, value 表示 按照我们定义的规则对目标节点的描述信息。 0018 目标节点选择器的描述规则如下 : 通过定义目标节点选择器规则来描述 html 页面中目标节点。 0019 元素选择器 使用 CSS 选择器来选取 H。
16、TML 元素, 如 : “p“ 选取 元素。 0020 “p.intro“ 选取所有 class=“intro“ 的 元素。 0021 “p#demo“ 选取 id=“demo“ 的第一个 元素。 0022 属性选择器 使用 XPath 表达式来选择带有给定属性的元素, 如 : “href“ 选取所有带有 href 属性的元素。 0023 “href=#“ 选取所有带有 href 值等于 “#“ 的元素。 0024 “href!=#“ 选取所有带有 href 值不等于 “#“ 的元素。 0025 “href$=.jpg“ 选取所有 href 值以 “.jpg“ 结尾的元素。 0026 CSS 。
17、选择器 CSS 选择器可用于改变 HTML 元素的 CSS 属性。 说 明 书 CN 103309954 A 5 4/4 页 6 0027 二、 html 引擎 根据 xml 解析器对 xml 文件的解析, html engine 会得到一组 page 信息, 然后依次对 这组 page 信息做如下处理 : 依次遍历pageMode下的url地址, 根据url地址, 构造http get请求, 得到html文档, 然后根据目标节点的描述信息, 通过 html engine 解析得到结构化数据。 0028 三、 数据管理器 根据 html 引擎得到的结构化数据, 由数据管理器根据用户配置的数据保存方式, 再调 用具体的数据管理器来保存这些结构化数据。 0029 本发明中, 首先, html 引擎模块根据 xml 解析器模块获得的 html 页面 url 地址, 通过 http get 请求获取目标网页文档, 接着 xml 解析器模块根据 xml 配置文件中的目标节 点选择器, 描述具有相同 html 页面结构的目标节点 ; 再经过我们的 html 引擎模块解析, 得 到我们想要的目标节点的结构化数据 ; 最后由数据管理器模块根据配置文件中配置的数据 保存方式将其保存在相应的介质中。 说 明 书 CN 103309954 A 6 。