基于dom树匹配的视频网站媒资聚合方法和系统的制作方法

文档序号:6536330阅读:257来源:国知局
基于dom树匹配的视频网站媒资聚合方法和系统的制作方法
【专利摘要】本发明公开了一种基于DOM树匹配的视频网站媒资聚合方法和系统,所述方法包括S1)生成配置文件:根据用户的输入生成配置文件,所述配置文件的结构包括基本信息单元、媒资参数单元和DOM子树结构单元;S2)获取HTML文档并生成HTML文档的DOM树:向待聚合的网站请求并获取HTML文档,解析所述HTML文档生成HTML文档的DOM树;S3)媒资信息提取:导入所述匹配模板并生成模板DOM树;对所述HTML文档的DOM树与所述DOM模板树进行模板匹配,从所述HTML文档的DOM树中提取出满足所述最简结构的子节点,然后提取出该子节点中所包含的媒资信息。与现有技术相比,本发明具有更优的兼容性及稳定性。
【专利说明】基于DOM树匹配的视频网站媒资聚合方法和系统
【技术领域】
[0001]本发明涉及网络通信和多媒体信息处理领域,尤其是涉及基于DOM树匹配的视频网站媒资聚合方法和系统。
【背景技术】
[0002]随着国内视频网站飞速增长,网络上视频数量巨大,在线观看视频也成为越来越多人们生活中的必要需求。然而,视频网站种类繁多,视频资源分布散乱,视频格式和插件各不相同,为用户搜索和观看视频带来了一定障碍。而媒资聚合平台则能够对各大视频网站节目分类、节目信息列表、视频详细信息等信息进行聚合,使用户无需逐个登陆视频网站,便能在统一的客户端中获取最新的视频资源信息,并使用统一播放器观看视频。并且,随着广电对0TT+DVB模式的推广,OTT互联网电视成为未来智能电视的发展趋势,媒资聚合技术为用户提供了统一的多媒体资源访问入口,能向上支撑起一个简便的集成导航、注释和评论等功能的终端,以及一个统一视频播放平台,为OTT智能电视服务提供了整合多媒体资源的渠道。
[0003]作为媒资聚合平台中的关键点,如何对各大视频网站的视频节目分类、列表、详细信息等不同类型的媒资进行聚合,是本发明的重点。目前市场上的媒资聚合客户端虽然很多,但基本上都是通过调用视频网站本身提供的API方式进行聚合。开放式API是视频网站常见的一种接口,视频网站将视频内容封装成一系列的API开放出来,供开发者使用。然而,这种方式有很大局限性。首先,各个视频网站发布的视频开放式接口千差万别,不利于媒资聚合软件的开发。其次,若网站更改应用接口,则必须对软件进行调整甚至重写,以适配新的应用接口,不利于软件的维护。再次,目前国内提供开放API的视频网站很少,对于没有开放API的网站便不能进行聚合,被动的受制于视频网站。此外,目前国内视频网站利用开放API方式进行合作的方式尚不成熟,对其API的开放并不全面,有的甚至存在提供错误信息的问题,并且疏于维护,更新较慢,媒资信息时效性差。因此,采用这种方式还不能满足现阶段媒资聚合的需求,需要更加通用、稳定、易于维护的方式。
[0004]文件物件模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。

【发明内容】

[0005]本发明所要解决的技术问题是提供一种基于DOM树匹配的视频网站媒资聚合方法和系统用于提高对聚合网站的兼容性及聚合的稳定性。
[0006]本发明通过下述技术手段解决前述技术问题:
[0007]一种基于DOM树匹配的视频网站媒资聚合方法,包括以下步骤:
[0008]SI)生成配置文件:根据用户的输入生成配置文件,所述配置文件的结构包括基本信息单元、媒资参数单元和DOM子树结构单元;所述DOM子树结构单元包括匹配模板,所述匹配模板用于存储DOM子树中符合提取条件的媒资所在节点的最简结构;所述媒资参数单元定义有所述匹配模板中存放媒资信息的参数与媒资信息的映射关系;所述基本信息单元用于描述配置文件的基本信息,所述基本信息至少包括媒资类型、DOM子树结构单元个数和媒资个数;
[0009]S2)获取HTML文档并生成HTML文档的DOM树:向待聚合的网站请求并获取HTML文档,解析所述HTML文档生成HTML文档的DOM树;
[0010]S3)媒资信息提取:S31)读取所述配置文件,存储所述基本信息和所述基本信息,导入所述匹配模板并生成模板DOM树;S32)对所述HTML文档的DOM树与所述DOM模板树进行模板匹配,从所述HTML文档的DOM树中提取出满足所述最简结构的子节点,然后提取出该子节点中所包含的媒资信息。
[0011]优选地:所述DOM子树结构单元还包括关键节点模块,所述关键节点模块用于存储DOM子树的根节点的节点信息和与所述根节点对应的匹配模板信息;
[0012]所述步骤S32)包括:导入所述关键节点模块,根据关键节点模块中存储的所述根节点的节点信息,筛选出所述HTML文档的DOM树中DOM子树的根节点;遍历所述根节点下的所有节点,并在遍历过程中对每个节点进行模板匹配,提取出满足所述最简结构的子节点,提取出该子节点的媒资信息并根据所述映射关系将提取的媒资信息存储到所述媒资参数单元中。
[0013]一种基于DOM树匹配的视频网站媒资聚合系统,包括:
[0014]配置模块生成模块,用于根据用户的输入生成配置文件,所述配置文件的结构包括基本信息单元、媒资参数单元和DOM子树结构单元;所述DOM子树结构单元包括匹配模板,所述匹配模板用于存储DOM子树中符合提取条件的媒资所在节点的最简结构;所述媒资参数单元定义有所述匹配模板中存放媒资信息的参数与媒资信息的映射关系;所述基本信息单元用于描述配置文件的基本信息,所述基本信息至少包括媒资类型、DOM子树结构单元个数和媒资个数;
[0015]HTML解析及DOM树构建模块:用于向待聚合的网站请求并获取HTML文档,解析所述HTML文档生成HTML文档的DOM树;
[0016]媒资信息提取模块:用于读取所述配置文件,存储所述基本信息和所述基本信息,导入所述匹配模板并生成模板DOM树;还用于对所述HTML文档的DOM树与所述DOM模板树进行模板匹配,从所述HTML文档的DOM树中提取出满足所述最简结构的子节点,然后提取出该子节点中所包含的媒资信息。
[0017]优选地:所述DOM子树结构单元还包括关键节点模块,所述关键节点模块用于存储DOM子树的根节点的节点信息和与所述根节点对应的匹配模板信息;
[0018]所述媒资信息提取模块还用于导入所述关键节点模块,根据关键节点模块中存储的所述根节点的节点信息,筛选出所述HTML文档的DOM树中DOM子树的根节点;遍历所述根节点下的所有节点,并在遍历过程中对每个节点进行模板匹配,提取出满足所述最简结构的子节点,提取出该子节点的媒资信息并根据所述映射关系将提取的媒资信息存储到所述媒资参数单元中。
[0019]由于网站的设计与实现一般采用模板化设计,因此同一网站中同类型媒资的网页结构具有一致性,故本发明对不同视频网站和不同类型的媒资设计不同配置文件存储算法所需信息,在程序中读取配置文件,采用统一聚合算法进行DOM树模板匹配和媒资提取,使算法和具体网页结构相分离,便于软件的修改、更新、拓展和维护。本发明无需依赖视频网站API,具有很强的通用性,能够广泛支持国内视频网站,并且做到完全与视频网站信息同
步,稳定可靠。
[0020]优选方案中,采用快速定位关键节点与模板匹配结合的方式,能够快速、精确的筛选出包含媒资的DOM节点。
【专利附图】

【附图说明】
[0021]图1是本发明一种基于DOM树匹配的媒资聚合系统结构原理图;
[0022]图2是本发明HTML解析及DOM树构建模块的模型示意图;
[0023]图3是本发明通用聚合算法的流程示意图;
[0024]图4是本发明快速定位“关键节点”算法的流程示意图。
【具体实施方式】
[0025]下面对照附图并结合优选的实施方式对本发明作进一步说明。
[0026]本发明包括如下步骤:
[0027]一、配置文件生成:
[0028]通过分析视频网站的HTML脚本源码,总结该视频网站需要提取的媒资类型所在DOM子树的结构特点,输入至计算机,通过配置文件生成模块生产不同的配置文件,用于存储DOM子树匹配模板和聚合算法中所需的其他信息。该配置文件可配合聚合算法,在开发阶段对其进行不断的修改和完善。
[0029]所述需要提取的媒资类型是指,如视频分类、视频列表、视频详细信息等不同类型的媒资,在同一网站中,其网页HTML结构基本一致,可以总结到同一配置文件中进行存储。
[0030]所述DOM子树是指,包含需要提取的媒资信息的DOM树节点以及其各级子节点所构成的部分DOM树,即DOM树中含有媒资信息的部分,由于某些类型的媒资可能分布于网页中不同部分,因此该子树可能不唯一,如视频分类,主分类信息和子分类信息所在DOM子树为两个不同的子树。
[0031]所述配置文件是指,用于被媒资聚合算法读取并存有程序所需信息的辅助文件,其格式可以为xml等,同一个网站根据网页结构特点和程序需要可设计单个或多个配置文件。不同类型媒资的配置文件设计需遵循相同的基本结构。
[0032]所述配置文件基本结构包括基本信息单元、媒资参数单元、DOM子树结构单元三部分。基本信息单元部分描述了本文件的基本信息,用于辅助聚合算法进行初始化工作,包括但不限于媒资类型、DOM子树结构单元个数、媒资个数等。媒资参数单元部分定义了匹配模板及聚合算法中存放媒资信息的参数与媒资信息的对应关系,例如〈paraml〉视频名称〈/paraml〉,表示paraml参数提取的媒资信息为视频名称。DOM子树结构单元部分包括关键节点模块和匹配模板两部分:关键节点模块部分存储DOM子树根节点(后文称为关键节点)的节点信息和对应的匹配模板信息等,用于聚合算法中快速定位;匹配模板部分存储DOM子树中符合提取条件的媒资所在节点构成的最简结构,该最简结构在对网站HTML源码分析后,总结出能够区分不含媒资的节点结构,配合模板匹配算法筛选出包含媒资的节点,例如视频列表中列表所在DOM子树中每个视频的HTML最简结构,视频分类信息所在DOM子树中每一种分类的最简结构,若有多个模板则存储多个,模板中需要省略的节点由特殊节点skip进行配置,模板中需要提取的媒资用媒资参数表示,如paraml等。
[0033]二、获取HTML文档并解析生成DOM树:
[0034]1.通过网络协议向视频网站发起请求,得到HTML文档;
[0035]2.对HTML文档进行解析,包括词法分析、语法分析和语义分析;
[0036]3.根据DOM规范生成该HTML的DOM树结构,进行javascript绑定。
[0037]本领域技术人员可以采用现有的多种技术实现对HTML的解析,本发明不限于上述方法。
[0038]三、媒资信息提取
[0039]媒资信息提取模块通过通用聚合算法读取配置文件存储的信息,形成模板DOM树,对步骤二中生成的DOM树进行模板匹配,从中筛选出满足模板结构的子节点(即:满足所述最简结构的子节点),然后提取所包含的媒资信息。
[0040]具体分为以下几个步骤:
[0041]1.初始化,读取配置文件,存储基本信息单元和媒资参数单元部分的信息,导入关键节点单元部分,导入匹配模板生成模板DOM树。
[0042]2.快速定位“关键节点”,在HTML的DOM树中结合DOM操作接口函数,快速定位出满足条件的节点,并进一步利用属性值等根节点信息筛选出关键节点(即:D0M子树的根节点)。
[0043]3.遍历“关键节点”下所有节点,并在遍历过程中对每一个节点进行模板匹配,从而筛选出满足模板结构的节点,进行媒资提取。
[0044]I)模板匹配:遍历过程中,通过匹配算法对遍历中的当前节点下的DOM子树与模板DOM子树进行匹配。
[0045]2)媒资提取:遍历过程中,当匹配成功后,在该节点下的DOM子树中,对比模板中媒资参数所在位置,提取媒资信息存储到媒资参数中。
[0046]为更进一步的公开本发明的方案,下文结合更加具体的实施例对本发明进行阐述:
[0047]图1是本发明具体实施的原理图。
[0048]101为网络中各主流视频网站的网络视频服务器,在实际应用当中,视频网站可以是,优酷,土豆,56视频,乐视,新浪,搜狐等主流视频网站。
[0049]102是HTML解析及DOM树生成模块,向101所示服务器发送请求获取HTML网页,服务器响应请求后发送网页文档,102模块对其进行解析并加载相关资源,生成DOM树。其中,所述发送请求和响应请求过程的协议可以是传输控制协议(TCP),或者超文本传输协议(HTTP),或者文件传输协议(FTP)。
[0050]103是媒资信息提取模块,该模块以原DOM树和配置文件作为输入,实现通用聚合算法,对DOM树进行操作,匹配出所需节点并进行提取。
[0051]104是配置文件生产模块,用于生成配置文件,该配置文件采用xml格式,存储对应类型媒资所在的DOM子树信息和通用聚合算法所需其他信息,供103媒资信息提取模块加载读取,基本结构分为“基本信息单元”、“媒资参数单元”、“D0M子树结构单元”三个部分。[0052]下面以优酷网站的视频列表类型媒资提取为优选的实施例,进一步描述一种基于DOM匹配的媒资聚合实现方法步骤。
[0053]SI设计配置文件。
[0054]按照前文配置文件生成步骤所述,以人工辅助的形式,通过分析视频网站的HTML脚本源码,总结该视频网站需要提取的媒资类型所在DOM子树的结构特点,设计不同配置文件,存储DOM子树匹配模板和聚合算法中所需的其他信息。
[0055]S11分析网站的HTML脚本源码
[0056]通过查看HTML源码的工具,如Chrome浏览器自带的审查元素选项、Firefox浏览器的firebug插件等,查看源码结构,进行分析和总结。
[0057]本例中可以看到优酷网站中视频列表媒资的典型HTML脚本源码如图2所示。每一页的视频列表均在〈divclass=” items”〉节点下,因此该节点下所有节点构成的DOM子树为媒资所在的DOM子树,且所有媒资只包含在该DOM子树中,故DOM树数目为I,若媒资分布较远,在多个DOM子树中,则按需要在配置文件中记录下DOM子树数目。
[0058]其中每个视频的信息在〈ulclaSS=”V”>节点下,展开其结构如图3所示。所需要提取的媒资是每个视频的名称、播放页面url、缩略图url,找到他们所在的位置,可见,视频名称为第一个Ii子节点的a子节点的title属性值,播放页面url为第一个Ii子节点的a子节点的href属性值,缩略图url为第二个Ii子节点的img子节点的src属性值。
[0059]本例中,经过上述人工分析过程,优酷的视频列表中每个视频的HTML基本结构简化如下。
【权利要求】
1.一种基于DOM树匹配的视频网站媒资聚合方法,其特征在于,包括以下步骤: 51)生成配置文件:根据用户的输入生成配置文件,所述配置文件的结构包括基本信息单元、媒资参数单元和DOM子树结构单元;所述DOM子树结构单元包括匹配模板,所述匹配模板用于存储DOM子树中符合提取条件的媒资所在节点的最简结构;所述媒资参数单元定义有所述匹配模板中存放媒资信息的参数与媒资信息的映射关系;所述基本信息单元用于描述配置文件的基本信息,所述基本信息至少包括媒资类型、DOM子树结构单元个数和媒资个数; 52)获取HTML文档并生成HTML文档的DOM树:向待聚合的网站请求并获取HTML文档,解析所述HTML文档生成HTML文档的DOM树; 53)媒资信息提取:S31)读取所述配置文件,存储所述基本信息和所述基本信息,导入所述匹配模板并生成模板DOM树;S32)对所述HTML文档的DOM树与所述DOM模板树进行模板匹配,从所述HTML文档的DOM树中提取出满足所述最简结构的子节点,然后提取出该子节点中所包含的媒资信息。
2.根据权利要求1所述的方法,其特征在于: 所述DOM子树结构单元还包括关键节点模块,所述关键节点模块用于存储DOM子树的根节点的节点信息和与所述根节点对应的匹配模板信息; 所述步骤S32)包括:导入所述关键节点模块,根据关键节点模块中存储的所述根节点的节点信息,筛选出所述HTML文档的DOM树中DOM子树的根节点;遍历所述根节点下的所有节点,并在遍历过程中对每个节点进行模板匹配,提取出满足所述最简结构的子节点,提取出该子节点的媒资信息并根据所述映射关系将提取的媒资信息存储到所述媒资参数单元中。
3.一种基于DOM树匹配的视频网站媒资聚合系统,其特征在于包括: 配置模块生成模块,用于根据用户的输入生成配置文件,所述配置文件的结构包括基本信息单元、媒资参数单元和DOM子树结构单元;所述DOM子树结构单元包括匹配模板,所述匹配模板用于存储DOM子树中符合提取条件的媒资所在节点的最简结构;所述媒资参数单元定义有所述匹配模板中存放媒资信息的参数与媒资信息的映射关系;所述基本信息单元用于描述配置文件的基本信息,所述基本信息至少包括媒资类型、DOM子树结构单元个数和媒资个数; HTML解析及DOM树构建模块:用于向待聚合的网站请求并获取HTML文档,解析所述HTML文档生成HTML文档的DOM树; 媒资信息提取模块:用于读取所述配置文件,存储所述基本信息和所述基本信息,导入所述匹配模板并生成模板DOM树;还用于对所述HTML文档的DOM树与所述DOM模板树进行模板匹配,从所述HTML文档的DOM树中提取出满足所述最简结构的子节点,然后提取出该子节点中所包含的媒资信息。
4.根据权利要求3所述的系统,其特征在于: 所述DOM子树结构单元还包括关键节点模块,所述关键节点模块用于存储DOM子树的根节点的节点信息和与所述根节点对应的匹配模板信息; 所述媒资信息提取模块还用于导入所述关键节点模块,根据关键节点模块中存储的所述根节点的节点信息,筛选出所述HTML文档的DOM树中DOM子树的根节点;遍历所述根节点下的所有节点,并在遍历过 程中对每个节点进行模板匹配,提取出满足所述最简结构的子节点,提取出该子节点的媒资信息并根据所述映射关系将提取的媒资信息存储到所述媒资参数单元中。
【文档编号】G06F17/30GK103744987SQ201410026230
【公开日】2014年4月23日 申请日期:2014年1月20日 优先权日:2014年1月20日
【发明者】韦唯, 袁鑫 申请人:深圳市佳创视讯技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1