书签 分享 收藏 举报 版权申诉 / 6

一种基于HTML网页的数据抽取系统.pdf

  • 上传人:1***
  • 文档编号:4903101
  • 上传时间:2018-11-26
  • 格式:PDF
  • 页数:6
  • 大小:305.33KB
  • 摘要
    申请专利号:

    CN201310200116.5

    申请日:

    2013.05.27

    公开号:

    CN103309954A

    公开日:

    2013.09.18

    当前法律状态:

    撤回

    有效性:

    无权

    法律详情:

    登录超时

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    复旦大学

    发明人:

    王新; 陈功锁; 权恒星

    地址:

    200433 上海市杨浦区邯郸路220号

    优先权:

    专利代理机构:

    上海正旦专利代理有限公司 31200

    代理人:

    陆飞;盛志范

    PDF完整版下载: PDF下载
    内容摘要

    本发明属于计算机网络技术领域,具体为一种基于html网页的数据抽取系统。其由xml解析器,html引擎以及数据管理器三个模块组成。本发明的优点在于:只需要在xml文件中描述html网页中哪些节点信息需要抓取,以及xml中其他一些配置信息,就可以快速的抓取所需要的数据,其方法简单、快捷。

    权利要求书

    权利要求书
    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文件以及数据库。

    说明书

    说明书一种基于html网页的数据抽取系统
    技术领域
    本发明属于计算机网络技术领域,具体的说,涉及一种基于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$='.TIF']" 选取所有 href 值以 ".TIF" 结尾的元素。
    · 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 引擎模块解析,得到我们想要的目标节点的结构化数据;最后由数据管理器模块根据配置文件中配置的数据保存方式将其保存在相应的介质中。

    关 键  词:
    一种 基于 HTML 网页 数据 抽取 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种基于HTML网页的数据抽取系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4903101.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1