面向网络视频的分布式采集方法和系统的制作方法

文档序号:7720057阅读:174来源:国知局

专利名称::面向网络视频的分布式采集方法和系统的制作方法
技术领域
:本发明涉及信息采集与发现
技术领域
,特别是涉及面向网络(web)视频的分布式采集方法和系统。
背景技术
:随着网络带宽的增长和Web2.0技术的应用,YouTube、优酷、土豆等视频分享网站在国内外得到了快速的发展,互联网视频数量和用户规模大规模增长。据不完全统计,目前国内互联网共有超过300家视频站点,其中优酷、土豆网等网站的视频数量已突破千万。网页中的视频节目主要有多种存在形式,常见的存在形式包括网页链接指向一个视频节目、网页内嵌Object、embed对象等播放视频节目、基于专门的播放协议的音视频节目(如rtsp协议、mms协议等)等。在传统网页采集技术中,无需识别页面中是否包含视频,所有页面都是有效的链接资源,而对于视频采集,只有包含视频的页面链接才是有效资源,因此,首先需要视频页面发现技术,视频页面的发现主要是通过对网页的分析,判断一个网页中是否包含视频信息,从而实现对视频节目的发现。为了采集互联网上的海量数据,采集系统通常是由一个大的分布式集群构成,这种分布式架构的优点是能够保证数据的安全性和一致性以及通过分布式计算模型来使得计算结构化简单化。分布式采集系统是指由若干个独立的采集器协同完成整个采集任务,采集器往往分布在独立的服务器中,通过采集调度程序协调工作,并完成整个采集过程。与网页文本采集不同,网页视频采集面临许多实际限制问题。视频内容提供商和网站经营者都要采用各种技术和手段来限制视频资源的采集和下载,一方面是版权保护的需要,同时大量下载视频对服务器的压力也是一个重要因素。因此如何突破各种限制,实现视频内容的有效采集,是需要解决的一个技术难题。
发明内容本发明的目的在于提供一种面向网络(web)视频的分布式采集方法和系统,其能够实现面向Web视频的大规模并行下载。为实现本发明的目的而提供的一种面向web视频的分布式采集方法,包括下列步骤步骤100,利用预先定制的正则表达式与每一个视频网页的统一资源定位符进行匹配,识别出可能包含视频的网页;步骤200,从视频网站并行下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述网页结构分析结果合并后存储;步骤300,根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频。6所述步骤200,包括下列步骤步骤210,通过与视频网站的HTTP链接获取网页数据流,并行下载所述可能包含视频的网页;步骤220,利用开源工具对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;步骤230,将每个节点解析出的包含网页自身信息和其中的链接数据的信息,分发给其他节点,并接收来自其他节点的信息;步骤240,将所有视频网页的信息按照被采集链接的统一资源定位符的MD5值排序后存储。所述步骤220,包括下列步骤步骤221,将利用开源工具解析出的链接信息再次与预先设定的视频网站URL的正则表达式进行匹配,识别出有效的视频网页的链接地址;步骤222,分析采集到的网页的页面内容的MD5值,判断哪些网页虽然链接地址不同但是视频内容重复,忽略被判断为内容重复的网页;所述步骤230,包括下列步骤步骤231.所述节点将采集的链接数据按照定位二叉树机制,以采集的链接的统一资源定位符为键值分发到对应的其他节点上;步骤232.所述节点还将可能含有视频的网页的链接根据定位二叉树发送到相应的其他节点,为视频下载提供数据源。所述存储分为磁盘数据的存储,是将采集的数据存储在磁盘中,并按照被采集链接的统一资源定位符的MD5值建立一个B+树结构的索引表;数据缓存,将采集的数据缓存在内存中,通过控制每一轮采集数据的数量来控制当前采集结果的缓存的规模上限。所述步骤300,包括下列步骤步骤310,通过分析所述有效的视频网页的链接的统一资源定位符或检测视频播放时的流媒体地址获取视频的链接地址;步骤320,分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;步骤S330,根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;步骤S340,采用4级目录的结构存储下载的视频节目。所述步骤320,包括下列步骤步骤321,浏览器打开网页利用IE浏览器打开待分析的视频网页,若内嵌的视频对象能够自动播放,在捕获浏览器接收的流媒体数据包时检测流媒体内容的扩展名,然后在扩展名之前检测特定的协议头标识,从协议头标识到扩展名之间的字符串中获取流媒体链接地址,获取完流媒体地址后自动关闭该浏览器进程;若不能获取视频地址,则会设置响应时间,若在响应时间内仍不能获取地址,则转入步骤322;步骤322,模拟点击播放在超过步骤321中设置的响应时间后,通过HTML解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在该视频窗口中的点击行为,使得视频开始播放,从而获取流媒体地址;同样设置响应时间,若仍不能获取视频地址,则认为该视频下载失败。所述步骤330中,所述下载是采用视频下载断点恢复机制,在下载的过程中出现中断情况时,从上次下载的结束处继续下载,以节省带宽资源,提高网络利用率。步骤240或300中,对视频网页的信息存储或是对视频文件的存储都是利用Hadoop中的分布式存储系统将磁盘数据同时复制到多个节点上,其中所有数据都以块的形式进行存储。如果一个块损坏了,可以很快的对这个Block的数据进行恢复。为实现本发明的目的还提供一种面向web视频的分布式采集系统,所述系统,包括多个网页采集节点,通过并行采集网站的网页信息,利用预先定制的正则表达式与页面的统一资源定位符进行匹配,识别并下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述有效的视频网页结构分析结果合并后存储;多个视频采集节点,根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频;—个控制节点,负责管理所有所述视频网页采集节点和视频采集节点,调度所述分布式采集系统的运行。所述网页采集节点,包括网页识别模块,用于采集网站的网页信息,并利用预先定制的正则表达式与采集的网页的统一资源定位符进行匹配,识别出可能包含视频的网页;网页下载模块,通过与视频网站的HTTP链接获取网页数据流,并行下载所述可能包含视频的网页;网页分析模块,对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;网页信息汇聚模块,用于将其解析出的包含网页自身信息和其中的链接数据的信息,分发给其他网页采集节点和视频采集节点,并接收来自其他网页采集节点的信息;网页信息存储模块,用于将所有所述信息按照被采集网页的链接的统一资源定位符的MD5值排序后存储。所述视频采集节点,包括视频地址获取模块,用于通过分析所述有效的视频网页的链接的URL或检测视频播放时的流媒体地址获取视频的链接地址;视频地址分析模块,用于分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;视频下载模块,用于根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;视频存储模块,采用4级录的结构存储下载的视频节目。所述控制节点,包括节点定位管理模块,用于通过定位二叉树管理所有网页采集节点和视频采集节点;节点通讯模块,用于所有的网页采集节点和视频采集节点定期向控制节点报告当前状态。过滤模块,接收所述网页采集节点发送的MD5值,并根据所述MD5值判断哪些页面虽然链接不同但是内容重复,过滤掉那些判断为重复的页面。所述网页分析模块,包括网页链接过滤模块,用于将分析出的链接信息与预先设定的网站URL的正则表达式进行匹配,识别出有效的视频网页链接MD5值计算模块,用于计算已经采集的网页的页面内容的MD5值,并提交给控制节点进行分析。所述视频地址分析模块,包括浏览器打开模块,利用IE浏览器打开待分析的视频网页,检测流媒体内容的扩展名,获取流媒体链接地址,并设置响应时间;模拟点击播放模块,若在所述响应时间内仍不能获取地址,则通过HTML解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在该视频窗口中的点击行为,从而获取流媒体地址。所述视频下载模块,包括视频下载子模块,用于利用已有的视频下载工具下载指定的视频节目;断点恢复模块,用于针对在下载的过程中出现的中断情况,从上次下载的结束处继续下载。本发明的有益效果是1.可扩展性若有网页采集分析器(Slave节点)或视频采集器(VideoCrawler节点)加入(或退出)系统,Master节点更新Slave或VideoCrawler的定位树并分发给各节点,因此能方便快速地部署及维护系统;同时Slave节点还能进行视频网页中文本信息的采集,从而实现系统功能的扩展。2.数据的一致性定位二叉树能保证一个视频网页只被唯一的Slave节点采集,一个视频节目只被唯一的VideoCrawler节点下载;同时Master节点维护全局视频页面内容的MD5,避免重复采集,以此来保证数据的一致性。3.安全性与容错性为避免系统磁盘坏死而造成的数据丢失,系统利用Hadoop中的分布式存储系统存储视频数据,相同数据的Block会同时存储在不同的节点上,通过Hadoop的数据恢复机制快速恢复损坏或丢失的数据,保证数据的安全性与容错性。图1是本发明面向web视频的分布式采集方法的流程图;图2是本发明中对web视频网页的下载与分析的方法的流程图;图3是本发明中识别有效的视频网页的链接地址方法的流程图;图4是本发明中对采集数据的分发与合并方法的流程图;图5是本发明中对web视频的地址分析与采集方法的流程图6是本发明中分析视频的链接地址方法的流程图;图7是本发明一种面向web视频的分布式采集系统的框架图;图8是本发明一种面向web视频的分布式采集系统的结构示意图;图9是本发明中Slave节点的定位二叉树图。具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的面向web视频的分布式采集方法和系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明的面向web视频的分布式采集方法和系统,提供了一种视频下载的分布式架构,是通过对视频站点的网页内容进行采集分析,从中发现含有视频的网页并下载该含有视频的网页;对含有视频的网页进行分析以识别出有效的视频网页的链接地址;提取所述有效的视频网页的链接地址中含有视频的绝对地址,同时下载这个地址所指向的视频文件存储需要的信息。利用本发明的面向web视频的分布式采集方法和系统,能够实现面向Web视频的大规模并行下载。下面结合上述目标详细介绍本发明面向web视频的分布式采集方法,图1是本发明面向web视频的分布式采集方法的流程图,如图1所示,包括下列步骤步骤100,web视频网页的识别利用预先定制的正则表达式与每一个视频网页的统一资源定位符(UniformResourceLocation,URL)进行匹配,识别出可能包含视频的网页;通过对网页的分析,判断一个网页中是否包含视频信息,从而实现对视频网页的发现。由于视频网站的每一个视频网页通常由相同的模板生成,那么其URL也有一定的规则,因此根据视频网页的URL制定相应的正则表达式进行匹配,即可简单快速地实现视频网页的发现。由于需要采集的视频网站有限,因此可以人工为各站点预先定制URL的正则表达式。步骤200,web视频网页的下载与分析从视频网站并行下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述网页结构分析结果合并后存储;网页采集节点(SlaveNode)利用一个采集的线程池,并发地从视频网站中下载步骤100中获得的可能包含视频的网页,每下载完一个网页以后,由分配器(Dispatcher)将下载的网页分发给网页分析器(PageAnalyzer)进行网页结构分析,在所有的网页采集节点都完成某一轮网页下载与分析后,各网页采集节点向其他网页采集节点发送分析结果并合并接收到的分析结果。图2是本发明中对web视频网页的下载与分析的方法的流程图,如图2所示,所述步骤200,包括下列步骤步骤210,通过与视频网站的HTTP链接获取网页数据流,并行下载所述可能包含视频的网页;根据web服务器返回的状态码判断采集是否成功。若采集成功,则利用指定的字符集编码下载整个网页文件;对于非文本格式的网页(如图片等)则存储在本地磁盘中。步骤220,利用开源工具neko对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;由于在对所述可能包含视频的网页进行解析的过程中会发现新的链接的URL,以及存在链接地址不同但是视频内容重复的网页的情况,因此在得到可能包含视频的网页后,需要对该网页进行网页链接地址和网页内容的过滤。图3是本发明中识别有效的视频网页的链接地址方法的流程图,如图3所示,所述步骤220,包括下列步骤步骤221,网页链接地址过滤将利用开源工具neko解析出的链接信息再次与预先设定的视频网站URL的正则表达式进行匹配,识别出有效的视频网页的链接地址;每采集分析完一个网页会得到以下信息内容含义URLID被采集链接的URL的MD5值URL被采集链接的URLFetchFailed采集是否失败OutLinkNumber该页面中有效链接的个数URL1该页面中所有的有效链接URL1步骤222,页面内容过滤分析采集到的网页的页面内容的MD5值,判断哪些网页虽然链接地址不同但是视频内容重复,忽略被判断为内容重复的网页;虽然每一个网页都对应自己的URL,但是由于多个网页的内容可能一样,因此,可能存在网页链接地址不同但是视频内容相同(即不同网页的页面内容的MD5值相同)的情况,因此,需要通过计算不同网页的页面内容的MD5值来筛掉包含相同内容的网页。网页采集节点将采集到的网页的页面内容的MD5值提交给控制节点进行分析,以判断哪些网页虽然链接地址不同(即该网页的链接地址的URL的MD5值不同)但是内容重复(即被采集到的网页的页面内容的MD5值相同),被判断为内容重复的网页将被忽略;步骤230,采集数据的分发与合并每个网页采集节点将其解析出的包含网页自身信息和其中的链接数据的信息,分发给其他网页采集节点和视频采集节点,并接收来自其他网页采集节点的信息;在所有的Slave节点都完成某一轮网页采集分析以后,每个节点得到了两部分数据,即网页自身信息和其中的链接数据,然后每个Slave会向其他的Slave节点和VideoCrawler节点分发相应的数据,并接收来自其他Slave节点的数据。图4是本发明中对采集数据的分发与合并方法的流程图,如图4所示,所述步骤230,包括下列步骤11步骤231.Slave间的数据传递Slave节点将采集的链接数据按照Master节点的定位二叉树机制,以其URL为Key分发(Deliver)到对应的Slave节点上;在完成所有的分发以后,每个Slave节点上将会包含两部分数据第一部分即节点自身的采集分析结果,而第二部分为接收到从不同Slave节点(包括其本身)收集到的一系列〈URLID,URL>信息。步骤232.Slave节点与VideoCrawler节点间的数据传递Slave节点也会将可能含有视频的网页的链接根据定位二叉树发送到相应的VideoCrawler节点,为视频下载提供数据源。步骤240,网页采集节点数据的存储网页采集节点将所有所述信息按照被采集链接的URL的MD5值排序后存储;合并后的信息为<table>tableseeoriginaldocumentpage12</column></row><table>本发明中,存储分为内存中的缓存和磁盘数据的存储,因此,所述步骤240,包括下列步骤步骤241,磁盘数据的存储将采集的数据存储在磁盘中,并按照被采集链接的URL的MD5值建立一个B+树结构的索引表。当需要查询任何一条记录时可以通过B+树索引迅速的进行定位;由于整个存储结构是一个按照URLID(即对应URL的MD5值)为Key的升序建立的顺序表,为了方便读取,按照URLID建立一个B+树结构的索引表,因此需要查询任何一条记录都可以通过B+树索引迅速的进行定位。较佳地,作为一种可实施方式,由于大量的磁盘读写,导致系统磁盘坏死的概率极具增加,一旦磁盘坏死,就会引起大量数据丢失,而这种丢失往往是不可恢复的。为避免数据丢失,本发明利用Hadoop中的分布式存储系统(HDFS)将磁盘数据同时复制到多个节点上(DataNode),其中所有数据都以块(Block)的形式进行存储。如果一个Block损坏了,可以很快的对这个Block的数据进行恢复。步骤242,数据缓存将采集的数据缓存在内存中,通过控制每一轮采集数据的数量来控制当前采集结果的缓存的规模上限。步骤300,web视频的地址分析与采集根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频。图5是本发明中对web视频的地址分析与采集方法的流程图,如图5所示,所述步骤300,包括下列步骤步骤310,获取视频的链接地址通过分析所述有效的视频网页的链接的URL或检测视频播放时的流媒体地址获取视频的链接地址;步骤320,分析视频的链接地址分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;视频的链接地址一般分为三种1)网页链接指向一个视频节目;2)基于专门的播放协议的音视频节目;3)网页内嵌Object、embed对象等播放视频节目。前两种地址可通过直接分析链接地址的前缀和后缀来判断是否是视频节目(如以mms:〃为前缀、以.flv为后缀),对于第3种类型,还进一步包括步骤图6是本发明中分析视频的链接地址方法的流程图,如图6所示,所述步骤320,包括步骤321,浏览器打开网页利用IE浏览器打开待分析的视频网页,若内嵌的视频对象能够自动播放,在捕获浏览器接收的流媒体数据包时检测流媒体内容的扩展名,然后在扩展名之前检测特定的协议头标识,从协议头标识到扩展名之间的字符串中获取流媒体链接地址,获取完流媒体地址后自动关闭该浏览器进程。若不能获取视频地址,可能有两个原因1)存在网络延迟,因此一般会设置响应时间(设为30s),若在响应时间内仍不能获取地址,则可能是第2个原因,转入步骤322;步骤322,模拟点击播放由于部分网页中内嵌的视频对象并不支持自动播放,因此也会导致无法获取视频地址。在超过步骤321中设置的的响应时间后,通过HTML解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在该视频窗口中的点击行为,使得视频开始播放,从而获取流媒体地址。同样,为解决网络延迟,也设置30s的响应时间。若仍不能获取视频地址,则认为该视频下载失败。步骤S330,视频下载根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;所述步骤330,包括下列步骤步骤331.视频下载利用已有的视频下载工具(如浏览器的下载插件)下载视频节目;步骤332.视频下载断点恢复由于互联网网络传输质量的不可控制性,在下载的过程中不可避免的出现中断情况,视频断点恢复即是从上次下载的结束处继续下载,从而能节省带宽资源,提高网络利用率。步骤8340,存储视频采用4级目录的结构存储下载的视频节目。为提高后续视频访问效率,本发明中对视频数据采用文件存储方式。由于视频记录数据量非常大,文件的数量非常大,系统采用多级目录存储的方式,具体采用4级目录的结构,其中文件仅存储在4级目录中,文件名和文件定位可以通过视频地址的MD5值自动计算,实现视频数据的高效定位和获取。与视频网页的存储相同,视频文件的存储也利用Hadoop进行管理,即将同样数据的Block分别存储在不同的节点上,保证数据的容错性。相应于本发明面向web视频的分布式采集方法,还提供一种面向web视频的分布式采集系统,图7是本发明一种面向web视频的分布式采集系统的框架图,图8是本发明一种面向web视频的分布式采集系统的结构示意图,如图7和图8所示,所述系统,包括多个网页采集节点l,通过并行采集网站的网页信息,利用预先定制的正则表达式与页面的统一资源定位符进行匹配,识别并下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述有效的视频网页结构分析结果合并后存储;多个视频采集节点2,用于根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频;—个控制节点3,用于负责管理所有所述视频网页采集节点和视频采集节点,调度所述分布式采集系统的运行。作为一种可实施方式,下面将分别针对各节点的机构进行具体描述所述网页采集节点(slaveNode)l,包括网页识别模块ll,用于采集网站的网页信息,并利用预先定制的正则表达式与采集的网页的统一资源定位符进行匹配,识别出可能包含视频的网页;网页下载模块12,通过与视频网站的HTTP连接获取网页数据流,并行下载所述可能包含视频的网页;网页分析模块13,对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;网页信息汇聚模块14,用于将其解析出的包含网页自身信息和其中的链接数据的信息,分发给其他网页采集节点和视频采集节点,并接收来自其他网页采集节点的信息;网页信息存储模块15,用于将所有所述信息按照被采集网页的链接的统一资源定位符的MD5值排序后存储。所述slave节点1拥有一个Crawler的线程池,用于并发的采集互联网网页。每采集完一个网页以后,分配器(Dispatcher)会将网页分发给页面分析器(PageAnalyzer)进行网页面结构分析,在所有的Slave节点都完成某一轮网页采集分析后,各Slave节点向其他节点发送采集结果并合并接收到的数据集合。所述视频采集节点2,包括视频地址获取模块21,用于通过分析所述有效的视频网页的链接的URL或检测视频播放时的流媒体地址获取视频的链接地址;视频地址分析模块22,用于分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;视频下载模块23,用于根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;视频存储模块24,采用4级目录的结构存储下载的视频节目。所述控制节点3,包括节点定位管理模块31,用于通过定位二叉树管理所有Slave节点和VideoCrawler节点;图9是本发明中Slave节点的定位二叉树图,如图9所示,每一个Slave节点都会在Master节点上进行注册,Master节点利用一个二叉树结构对Slave节点进行管理。Master节点通过定位二叉树,管理所有Slave节点,其中每一个叶子节点表示一个Slave节点。定位二叉树是一棵满二叉树,即任何一个非叶子节点都会有两个儿子,任何一个叶子节点从根节点出发都可以用一个Ol串来描述这条路径,对于任何一个需要被采集的网页的URL,如果其MD5值的二进制表示中的前缀与某一个叶子节点的01描述路径所匹配,那么这个URL对应的网页将会被该Slave节点进行采集,因此,任何一个网页的URL利用这棵定位树便能定位到它属于哪一个Slave节点。VideoCrawler节点的定位方法与Slave相同。节点通讯模块32,用于所有的Slave节点和VideoCrawler节点定期向Master节点报告当前状态。Master节点与Slave节点,以及Master节点与VideoCrawler节点的通讯方式是Master节点作为整个系统的监控入口,所有的Slave节点和VideoCrawler节点会定期的向Master节点做heartbeat("心跳"),用来报告节点的当前状态,如采集网页数等。过滤模块33,接收所述slave节点发送的MD5值,并根据所述MD5值判断哪些页面虽然链接不同但是内容重复,过滤掉那些判断为重复的页面。由于一个页面中可能包含其它网页的链接地址,即同一个网页中包含多个URL,重复的页面内容可以通过给每一个网页建立一个MD5签名,比较签名内容进行过滤。因此,本发明中的Master节点还维护了一个全局的Hash表,存储了所有网页内容的MD5值,用于全局重复页面的过滤。所述网页分析模块13,包括网页链接过滤模块131,用于将分析出的链接信息与预先设定的网站URL的正则表达式进行匹配,识别出有效的视频网页链接MD5值计算模块132,用于计算已经采集的网页的页面内容的MD5值,并提交给Master节点进行分析。所述视频地址分析模块22,包括浏览器打开模块221,利用IE浏览器打开待分析的视频网页,检测流媒体内容的扩展名,获取流媒体链接地址,并设置响应时间;利用IE浏览器打开待分析的视频网页,若内嵌的视频对象能够自动播放,在捕获浏览器接收的流媒体数据包时检测流媒体内容的扩展名,然后在扩展名之前检测特定的协议头标识,从协议头标识到扩展名之间的字符串中获取流媒体链接地址,获取完流媒体地址后自动关闭该浏览器进程。若不能获取视频地址,可能有两个原因1)存在网络延迟,因此一般会设置响应时间(设为30s),若在响应时间内仍不能获取地址,则可能是第2个原因,触发模拟点击播放模块222;模拟点击播放模块222,通过HTML解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在该视频窗口中的点击行为,从而获取流媒体地址。由于部分网页中内嵌的视频对象并不支持自动播放,因此也会导致无法获取视频地址。在超过浏览器打开模块221设置的响应时间后,通过HTML解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在该视频窗口中的点击行为,使得视频开始播放,从而获取流媒体地址。同样,为解决网络延迟,也设置30s的响应时间。若仍不能获取视频地址,则认为该视频下载失败。所述视频下载模块23,包括视频下载子模块231,用于利用已有的视频下载工具(如浏览器的下载插件)下载指定的视频节目;断点恢复模块232,用于针对在下载的过程中出现的中断情况,从上次下载的结束处继续下载。由于互联网网络传输质量的不可控制性,在下载的过程中不可避免的出现中断情况,视频断点恢复即是从上次下载的结束处继续下载,从而能节省带宽资源,提高网络利用率。本发明的有益效果在于1.可扩展性若有网页采集分析器(Slave节点)或视频采集器(VideoCrawler节点)加入(或退出)系统,Master节点更新Slave或VideoCrawler的定位树并分发给各节点,因此能方便快速地部署及维护系统;同时Slave节点还能进行视频网页中文本信息的采集,从而实现系统功能的扩展。2.数据的一致性定位二叉树能保证一个视频网页只被唯一的Slave节点采集,一个视频节目只被唯一的VideoCrawler节点下载;同时Master节点维护全局视频页面内容的MD5,避免重复采集,以此来保证数据的一致性。3.安全性与容错性为避免系统磁盘坏死而造成的数据丢失,系统利用Hadoop中的分布式存储系统存储视频数据,相同数据的Block会同时存储在不同的节点上,通过Hadoop的数据恢复机制快速恢复损坏或丢失的数据,保证数据的安全性与容错性。通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。权利要求一种面向网络视频的分布式采集方法,其特征在于,所述方法,包括下列步骤步骤100,利用预先定制的正则表达式与每一个视频网页的统一资源定位符进行匹配,识别出可能包含视频的网页;步骤200,从视频网站并行下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述网页结构分析结果合并后存储;步骤300,根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频。2.根据权利要求l所述的面向网络视频的分布式采集方法,其特征在于,所述步骤200,包括下列步骤步骤210,通过与视频网站的HTTP链接获取网页数据流,并行下载所述可能包含视频的网页;步骤220,利用开源工具对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;步骤230,将每个节点解析出的包含网页自身信息和其中的链接数据的信息,分发给其他节点,并接收来自其他节点的信息;步骤240,将所有视频网页的信息按照被采集链接的统一资源定位符的MD5值排序后存储。3.根据权利要求2所述的面向网络视频的分布式采集方法,其特征在于,所述步骤220,包括下列步骤步骤221,将利用开源工具解析出的链接信息再次与预先设定的视频网站统一资源定位符的正则表达式进行匹配,识别出有效的视频网页的链接地址;步骤222,分析采集到的网页的页面内容的MD5值,判断哪些网页虽然链接地址不同但是视频内容重复,忽略被判断为内容重复的网页;4.根据权利要求2所述的面向网络视频的分布式采集方法,其特征在于,所述步骤230,包括下列步骤步骤231.所述节点将采集的链接数据按照定位二叉树机制,以采集的链接的统一资源定位符为键值分发到对应的其他节点上;步骤232.所述节点还将可能含有视频的网页的链接根据定位二叉树发送到相应的其他节点,为视频下载提供数据源。5.根据权利要求2所述的面向网络视频的分布式采集方法,其特征在于,步骤240中,所述存储分为磁盘数据的存储,是将采集的数据存储在磁盘中,并按照被采集链接的统一资源定位符的MD5值建立一个B+树结构的索引表;数据缓存,将采集的数据缓存在内存中,通过控制每一轮采集数据的数量来控制当前采集结果的缓存的规模上限。6.根据权利要求l所述的面向网络视频的分布式采集方法,其特征在于,所述步骤300,包括下列步骤步骤310,通过分析所述有效的视频网页的链接的统一资源定位符或检测视频播放时的流媒体地址获取视频的链接地址;步骤320,分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;步骤S330,根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;步骤S340,采用4级目录的结构存储下载的视频节目。7.根据权利要求6所述的面向网络视频的分布式采集方法,其特征在于,所述步骤320,包括下列步骤步骤321,浏览器打开网页利用IE浏览器打开待分析的视频网页,若内嵌的视频对象能够自动播放,在捕获浏览器接收的流媒体数据包时检测流媒体内容的扩展名,然后在扩展名之前检测特定的协议头标识,从协议头标识到扩展名之间的字符串中获取流媒体链接地址,获取完流媒体地址后自动关闭该浏览器进程;若不能获取视频地址,则会设置响应时间,若在响应时间内仍不能获取地址,则转入步骤322;步骤322,模拟点击播放在超过步骤321中设置的响应时间后,通过HTML解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在该视频窗口中的点击行为,使得视频开始播放,从而获取流媒体地址;同样设置响应时间,若仍不能获取视频地址,则认为该视频下载失败。8.根据权利要求6所述的面向网络视频的分布式采集方法,其特征在于,所述步骤330中,所述下载是采用视频下载断点恢复机制,在下载的过程中出现中断情况时,从上次下载的结束处继续下载,以节省带宽资源,提高网络利用率。9.根据权利要求2或6所述的面向网络视频的分布式采集方法,其特征在于,步骤240或300中,对视频网页的信息存储或是对视频文件的存储都是利用Hadoop中的分布式存储系统将磁盘数据同时复制到多个节点上,其中所有数据都以块的形式进行存储;如果一个块损坏了,可以很快的对这个块的数据进行恢复。10.—种面向网络视频的分布式采集系统,其特征在于,所述系统,包括多个网页采集节点,通过并行采集网站的网页信息,利用预先定制的正则表达式与页面的统一资源定位符进行匹配,识别并下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述有效的视频网页结构分析结果合并后存储;多个视频采集节点,根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频;一个控制节点,负责管理所有所述视频网页采集节点和视频采集节点,调度所述分布式采集系统的运行。11.根据权利要求io所述的面向网络视频的分布式采集系统,其特征在于,所述网页采集节点,包括网页识别模块,用于采集网站的网页信息,并利用预先定制的正则表达式与采集的网页的统一资源定位符进行匹配,识别出可能包含视频的网页;网页下载模块,通过与视频网站的HTTP链接获取网页数据流,并行下载所述可能包含视频的网页;网页分析模块,对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;网页信息汇聚模块,用于将其解析出的包含网页自身信息和其中的链接数据的信息,分发给其他网页采集节点和视频采集节点,并接收来自其他网页采集节点的信息;网页信息存储模块,用于将所有所述信息按照被采集网页的链接的统一资源定位符的MD5值排序后存储。12.根据权利要求IO所述的面向网络视频的分布式采集系统,其特征在于,所述视频采集节点,包括视频地址获取模块,用于通过分析所述有效的视频网页的链接的统一资源定位符或检测视频播放时的流媒体地址获取视频的链接地址;视频地址分析模块,用于分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;视频下载模块,用于根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;视频存储模块,采用4级目录的结构存储下载的视频节目。13.根据权利要求10所述的面向网络视频的分布式采集系统,其特征在于,所述控制节点,包括节点定位管理模块,用于通过定位二叉树管理所有网页采集节点和视频采集节点;节点通讯模块,用于所有的网页采集节点和视频采集节点定期向控制节点报告当前状态;过滤模块,接收所述网页采集节点发送的MD5值,并根据所述MD5值判断哪些页面虽然链接不同但是内容重复,过滤掉那些判断为重复的页面。14.根据权利要求11所述的面向网络视频的分布式采集系统,其特征在于,所述网页分析模块,包括网页链接过滤模块,用于将分析出的链接信息与预先设定的网站统一资源定位符的正则表达式进行匹配,识别出有效的视频网页链接MD5值计算模块,用于计算已经采集的网页的页面内容的MD5值,并提交给控制节点进行分析。15.根据权利要求12所述的面向网络视频的分布式采集系统,其特征在于,所述视频地址分析模块,包括浏览器打开模块,利用IE浏览器打开待分析的视频网页,检测流媒体内容的扩展名,获取流媒体链接地址,并设置响应时间;模拟点击播放模块,若在所述响应时间内仍不能获取地址,则通过HTML解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在该视频窗口中的点击行为,从而获取流媒体地址。16.根据权利要求12所述的面向网络视频的分布式采集系统,其特征在于,所述视频下载模块,包括视频下载子模块,用于利用已有的视频下载工具下载指定的视频节目;、断点恢复模块,用于针对在下载的过程中出现的中断情况,从上次下载的结束处继续全文摘要本发明公开了一种面向网络视频的分布式采集方法和系统。所述方法,包括下列步骤利用预先定制的正则表达式与每一个视频网页的统一资源定位符进行匹配,识别出可能包含视频的网页;从视频网站并行下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述网页结构分析结果合并后存储;根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频。文档编号H04L29/08GK101715004SQ20091023759公开日2010年5月26日申请日期2009年11月12日优先权日2009年11月12日发明者张勇东,郑刚,郭俊波申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1