CN101715004B - 面向网络视频的分布式采集方法和系统 - Google Patents
面向网络视频的分布式采集方法和系统 Download PDFInfo
- Publication number
- CN101715004B CN101715004B CN 200910237595 CN200910237595A CN101715004B CN 101715004 B CN101715004 B CN 101715004B CN 200910237595 CN200910237595 CN 200910237595 CN 200910237595 A CN200910237595 A CN 200910237595A CN 101715004 B CN101715004 B CN 101715004B
- Authority
- CN
- China
- Prior art keywords
- video
- webpage
- address
- node
- chained address
- 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.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种面向网络视频的分布式采集方法和系统。所述方法,包括下列步骤:利用预先定制的正则表达式与每一个视频网页的统一资源定位符进行匹配,识别出可能包含视频的网页;从视频网站并行下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述网页结构分析结果合并后存储;根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频。
Description
技术领域
本发明涉及信息采集与发现技术领域,特别是涉及面向网络(web)视频的分布式采集方法和系统。
背景技术
随着网络带宽的增长和Web2.0技术的应用,YouTube、优酷、土豆等视频分享网站在国内外得到了快速的发展,互联网视频数量和用户规模大规模增长。据不完全统计,目前国内互联网共有超过300家视频站点,其中优酷、土豆网等网站的视频数量已突破千万。
网页中的视频节目主要有多种存在形式,常见的存在形式包括:网页链接指向一个视频节目、网页内嵌Object、embed对象等播放视频节目、基于专门的播放协议的音视频节目(如rtsp协议、mms协议等)等。在传统网页采集技术中,无需识别页面中是否包含视频,所有页面都是有效的链接资源,而对于视频采集,只有包含视频的页面链接才是有效资源,因此,首先需要视频页面发现技术,视频页面的发现主要是通过对网页的分析,判断一个网页中是否包含视频信息,从而实现对视频节目的发现。
为了采集互联网上的海量数据,采集系统通常是由一个大的分布式集群构成,这种分布式架构的优点是能够保证数据的安全性和一致性以及通过分布式计算模型来使得计算结构化简单化。分布式采集系统是指由若干个独立的采集器协同完成整个采集任务,采集器往往分布在独立的服务器中,通过采集调度程序协调工作,并完成整个采集过程。
与网页文本采集不同,网页视频采集面临许多实际限制问题。视频内容提供商和网站经营者都要采用各种技术和手段来限制视频资源的采集和下载,一方面是版权保护的需要,同时大量下载视频对服务器的压力也是一个重要因素。因此如何突破各种限制,实现视频内容的有效采集,是需要解决的一个技术难题。
发明内容
本发明的目的在于提供一种面向网络(web)视频的分布式采集方法和系统,其能够实现面向Web视频的大规模并行下载。
为实现本发明的目的而提供的一种面向web视频的分布式采集方法,包括下列步骤:
步骤100,利用预先定制的正则表达式与每一个视频网页的统一资源定位符进行匹配,识别出可能包含视频的网页;
步骤200,从视频网站并行下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述网页结构分析结果合并后存储;
步骤300,根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频。
所述步骤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或Video Crawler的定位树并分发给各节点,因此能方便快速地部署及维护系统;同时Slave节点还能进行视频网页中文本信息的采集,从而实现系统功能的扩展。
2.数据的一致性:定位二叉树能保证一个视频网页只被唯一的Slave节点采集,一个视频节目只被唯一的Video Crawler节点下载;同时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视频网页的识别:利用预先定制的正则表达式与每一个视频网页的统一资源定位符(Uniform Resource Location,URL)进行匹配,识别出可能包含视频的网页;
通过对网页的分析,判断一个网页中是否包含视频信息,从而实现对视频网页的发现。由于视频网站的每一个视频网页通常由相同的模板生成,那么其URL也有一定的规则,因此根据视频网页的URL制定相应的正则表达式进行匹配,即可简单快速地实现视频网页的发现。
由于需要采集的视频网站有限,因此可以人工为各站点预先定制URL的正则表达式。
步骤200,web视频网页的下载与分析:从视频网站并行下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述网页结构分析结果合并后存储;
网页采集节点(Slave Node)利用一个采集的线程池,并发地从视频网站中下载步骤100中获得的可能包含视频的网页,每下载完一个网页以后,由分配器(Dispatcher)将下载的网页分发给网页分析器(Page Analyzer)进行网页结构分析,在所有的网页采集节点都完成某一轮网页下载与分析后,各网页采集节点向其他网页采集节点发送分析结果并合并接收到的分析结果。
图2是本发明中对web视频网页的下载与分析的方法的流程图,如图2所示,所述步骤200,包括下列步骤:
步骤210,通过与视频网站的HTTP链接获取网页数据流,并行下载所述可能包含视频的网页;
根据web服务器返回的状态码判断采集是否成功。若采集成功,则利用指定的字符集编码下载整个网页文件;对于非文本格式的网页(如图片等)则存储在本地磁盘中。
步骤220,利用开源工具neko对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;
由于在对所述可能包含视频的网页进行解析的过程中会发现新的链接的URL,以及存在链接地址不同但是视频内容重复的网页的情况,因此在得到可能包含视频的网页后,需要对该网页进行网页链接地址和网页内容的过滤。
图3是本发明中识别有效的视频网页的链接地址方法的流程图,如图3所示,所述步骤220,包括下列步骤:
步骤221,网页链接地址过滤:将利用开源工具neko解析出的链接信息再次与预先设定的视频网站URL的正则表达式进行匹配,识别出有效的视频网页的链接地址;
每采集分析完一个网页会得到以下信息:
步骤222,页面内容过滤:分析采集到的网页的页面内容的MD5值,判断哪些网页虽然链接地址不同但是视频内容重复,忽略被判断为内容重复的网页;
虽然每一个网页都对应自己的URL,但是由于多个网页的内容可能一样,因此,可能存在网页链接地址不同但是视频内容相同(即不同网页的页面内容的MD5值相同)的情况,因此,需要通过计算不同网页的页面内容的MD5值来筛掉包含相同内容的网页。
网页采集节点将采集到的网页的页面内容的MD5值提交给控制节点进行分析,以判断哪些网页虽然链接地址不同(即该网页的链接地址的URL的MD5值不同)但是内容重复(即被采集到的网页的页面内容的MD5值相同),被判断为内容重复的网页将被忽略;
步骤230,采集数据的分发与合并:每个网页采集节点将其解析出的包含网页自身信息和其中的链接数据的信息,分发给其他网页采集节点和视频采集节点,并接收来自其他网页采集节点的信息;
在所有的Slave节点都完成某一轮网页采集分析以后,每个节点得到了两部分数据,即网页自身信息和其中的链接数据,然后每个Slave会向其他的Slave节点和Video Crawler节点分发相应的数据,并接收来自其他Slave节点的数据。
图4是本发明中对采集数据的分发与合并方法的流程图,如图4所示,所述步骤230,包括下列步骤:
步骤231.Slave间的数据传递:Slave节点将采集的链接数据按照Master节点的定位二叉树机制,以其URL为Key分发(Deliver)到对应的Slave节点上;
在完成所有的分发以后,每个Slave节点上将会包含两部分数据:第一部分即节点自身的采集分析结果,而第二部分为接收到从不同Slave节点(包括其本身)收集到的一系列<URLID,URL>信息。
步骤232.Slave节点与Video Crawler节点间的数据传递:Slave节点也会将可能含有视频的网页的链接根据定位二叉树发送到相应的Video Crawler节点,为视频下载提供数据源。
步骤240,网页采集节点数据的存储:网页采集节点将所有所述信息按照被采集链接的URL的MD5值排序后存储;
合并后的信息为:
内容 | 含义 |
URLID | 被采集链接的URL的MD5值 |
URL | 被采集链接的URL |
Status | 该链接的当前状态:正在采集、未采集、采集成功、采集失败 |
本发明中,存储分为内存中的缓存和磁盘数据的存储,因此,所述步骤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.视频下载断点恢复:由于互联网网络传输质量的不可控制性,在下载的过程中不可避免的出现中断情况,视频断点恢复即是从上次下载的结束处继续下载,从而能节省带宽资源,提高网络利用率。
步骤S340,存储视频:采用4级目录的结构存储下载的视频节目。
为提高后续视频访问效率,本发明中对视频数据采用文件存储方式。由于视频记录数据量非常大,文件的数量非常大,系统采用多级目录存储的方式,具体采用4级目录的结构,其中文件仅存储在4级目录中,文件名和文件定位可以通过视频地址的MD5值自动计算,实现视频数据的高效定位和获取。与视频网页的存储相同,视频文件的存储也利用Hadoop进行管理,即将同样数据的Block分别存储在不同的节点上,保证数据的容错性。
相应于本发明面向web视频的分布式采集方法,还提供一种面向web视频的分布式采集系统,图7是本发明一种面向web视频的分布式采集系统的框架图,图8是本发明一种面向web视频的分布式采集系统的结构示意图,如图7和图8所示,所述系统,包括:
多个网页采集节点1,通过并行采集网站的网页信息,利用预先定制的正则表达式与页面的统一资源定位符进行匹配,识别并下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述有效的视频网页结构分析结果合并后存储;
多个视频采集节点2,用于根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频;
一个控制节点3,用于负责管理所有所述视频网页采集节点和视频采集节点,调度所述分布式采集系统的运行。
作为一种可实施方式,下面将分别针对各节点的机构进行具体描述:
所述网页采集节点(slave Node)1,包括:
网页识别模块11,用于采集网站的网页信息,并利用预先定制的正则表达式与采集的网页的统一资源定位符进行匹配,识别出可能包含视频的网页;
网页下载模块12,通过与视频网站的HTTP连接获取网页数据流,并行下载所述可能包含视频的网页;
网页分析模块13,对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;
网页信息汇聚模块14,用于将其解析出的包含网页自身信息和其中的链接数据的信息,分发给其他网页采集节点和视频采集节点,并接收来自其他网页采集节点的信息;
网页信息存储模块15,用于将所有所述信息按照被采集网页的链接的统一资源定位符的MD5值排序后存储。
所述slave节点1拥有一个Crawler的线程池,用于并发的采集互联网网页。每采集完一个网页以后,分配器(Dispatcher)会将网页分发给页面分析器(Page Analyzer)进行网页面结构分析,在所有的Slave节点都完成某一轮网页采集分析后,各Slave节点向其他节点发送采集结果并合并接收到的数据集合。
所述视频采集节点2,包括:
视频地址获取模块21,用于通过分析所述有效的视频网页的链接的URL或检测视频播放时的流媒体地址获取视频的链接地址;
视频地址分析模块22,用于分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;
视频下载模块23,用于根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;
视频存储模块24,采用4级目录的结构存储下载的视频节目。
所述控制节点3,包括:
节点定位管理模块31,用于通过定位二叉树管理所有Slave节点和VideoCrawler节点;
图9是本发明中Slave节点的定位二叉树图,如图9所示,每一个Slave节点都会在Master节点上进行注册,Master节点利用一个二叉树结构对Slave节点进行管理。Master节点通过定位二叉树,管理所有Slave节点,其中每一个叶子节点表示一个Slave节点。定位二叉树是一棵满二叉树,即任何一个非叶子节点都会有两个儿子,任何一个叶子节点从根节点出发都可以用一个01串来描述这条路径,对于任何一个需要被采集的网页的URL,如果其MD5值的二进制表示中的前缀与某一个叶子节点的01描述路径所匹配,那么这个URL对应的网页将会被该Slave节点进行采集,因此,任何一个网页的URL利用这棵定位树便能定位到它属于哪一个Slave节点。
Video Crawler节点的定位方法与Slave相同。
节点通讯模块32,用于所有的Slave节点和Video Crawler节点定期向Master节点报告当前状态。
Master节点与Slave节点,以及Master节点与Video Crawler节点的通讯方式是: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或Video Crawler的定位树并分发给各节点,因此能方便快速地部署及维护系统;同时Slave节点还能进行视频网页中文本信息的采集,从而实现系统功能的扩展。
2.数据的一致性:定位二叉树能保证一个视频网页只被唯一的Slave节点采集,一个视频节目只被唯一的Video Crawler节点下载;同时Master节点维护全局视频页面内容的MD5,避免重复采集,以此来保证数据的一致性。
3.安全性与容错性:为避免系统磁盘坏死而造成的数据丢失,系统利用Hadoop中的分布式存储系统存储视频数据,相同数据的Block会同时存储在不同的节点上,通过Hadoop的数据恢复机制快速恢复损坏或丢失的数据,保证数据的安全性与容错性。
通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
Claims (14)
1.一种面向网络视频的分布式采集方法,其特征在于,所述方法,包括下列步骤:
步骤100,利用预先定制的正则表达式与每一个视频网页的统一资源定位符进行匹配,识别出可能包含视频的网页;
步骤200,从视频网站并行下载所述可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述网页结构分析结果合并后存储;
步骤300,根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频;
所述步骤200,包括下列步骤:
步骤210,通过与视频网站的HTTP链接获取网页数据流,并行下载所述可能包含视频的网页;
步骤220,利用开源工具对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;
步骤230,将每个节点解析出的包含网页自身信息和其中的链接数据的信息,分发给其他节点,并接收来自其他节点的信息;
步骤240,将所有视频网页的信息按照被采集链接的统一资源定位符的MD5值排序后存储。
2.根据权利要求1所述的面向网络视频的分布式采集方法,其特征在于,所述步骤220,包括下列步骤:
步骤221,将利用开源工具解析出的链接信息再次与预先设定的视频网站统一资源定位符的正则表达式进行匹配,识别出有效的视频网页的链接地址;
步骤222,分析采集到的网页的页面内容的MD5值,判断哪些网页虽然链接地址不同但是视频内容重复,忽略被判断为内容重复的网页。
3.根据权利要求1所述的面向网络视频的分布式采集方法,其特征在于,所述步骤230,包括下列步骤:
步骤231.所述节点将采集的链接数据按照定位二叉树机制,以采集的链 接的统一资源定位符为键值分发到对应的其他节点上;
步骤232.所述节点还将可能含有视频的网页的链接根据定位二叉树发送到相应的其他节点,为视频下载提供数据源。
4.根据权利要求1所述的面向网络视频的分布式采集方法,其特征在于,步骤240中,所述存储分为:
磁盘数据的存储,是将采集的数据存储在磁盘中,并按照被采集链接的统一资源定位符的MD5值建立一个B+树结构的索引表;
数据缓存,将采集的数据缓存在内存中,通过控制每一轮采集数据的数量来控制当前采集结果的缓存的规模上限。
5.根据权利要求1所述的面向网络视频的分布式采集方法,其特征在于,所述步骤300,包括下列步骤:
步骤310,通过分析所述有效的视频网页的链接的统一资源定位符或检测视频播放时的流媒体地址获取视频的链接地址;
步骤320,分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;
步骤S330,根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;
步骤S340,采用4级目录的结构存储下载的视频节目。
6.根据权利要求5所述的面向网络视频的分布式采集方法,其特征在于,所述步骤320,包括下列步骤:
步骤321,浏览器打开网页:利用IE浏览器打开待分析的视频网页,若内嵌的视频对象能够自动播放,在捕获浏览器接收的流媒体数据包时检测流媒体内容的扩展名,然后在扩展名之前检测特定的协议头标识,从协议头标识到扩展名之间的字符串中获取流媒体链接地址,获取完流媒体地址后自动关闭浏览器进程;若不能获取视频地址,则会设置响应时间,若在响应时间内仍不能获取地址,则转入步骤322;
步骤322,模拟点击播放:在超过步骤321中设置的响应时间后,通过HTML解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在视频窗口中的点击行为,使得视频开始播放,从而获取流媒体地址;同样设置响应时间,若仍不能获取视频地址, 则认为该视频下载失败。
7.根据权利要求5所述的面向网络视频的分布式采集方法,其特征在于,所述步骤330中,所述下载是采用视频下载断点恢复机制,在下载的过程中出现中断情况时,从上次下载的结束处继续下载,以节省带宽资源,提高网络利用率。
8.根据权利要求1或5所述的面向网络视频的分布式采集方法,其特征在于,步骤240或300中,对视频网页的信息存储或是对视频文件的存储都是利用Hadoop中的分布式存储系统将磁盘数据同时复制到多个节点上,其中所有数据都以块的形式进行存储;如果一个块损坏了,能够很快的对这个块的数据进行恢复。
9.一种面向网络视频的分布式采集系统,其特征在于,所述系统,包括:
多个网页采集节点,通过并行采集网站的网页信息,利用预先定制的正则表达式与页面的统一资源定位符进行匹配,识别并下载可能包含视频的网页,分别对下载的所述可能包含视频的网页进行网页结构分析,识别出有效的视频网页的链接地址,并将所述有效的视频网页结构分析结果合并后存储;
多个视频采集节点,根据所述有效的视频网页的链接地址,获取所述有效的视频网页中隐藏的视频的链接地址,并分析所述视频的链接地址以获取真实的视频的链接地址,下载并存储所述真实的视频的链接地址对应的视频;
一个控制节点,负责管理所有所述网页采集节点和视频采集节点,调度所述分布式采集系统的运行;
所述网页采集节点,包括:
网页识别模块,用于采集网站的网页信息,并利用预先定制的正则表达式与采集的网页的统一资源定位符进行匹配,识别出可能包含视频的网页;
网页下载模块,通过与视频网站的HTTP链接获取网页数据流,并行下载所述可能包含视频的网页;
网页分析模块,对所述可能包含视频的网页进行解析,形成半结构化的HTML数据格式,识别出有效的视频网页的链接地址;
网页信息汇聚模块,用于将其解析出的包含网页自身信息和其中的链接数据的信息,分发给其他网页采集节点和视频采集节点,并接收来自其他网页采集节点的信息;
网页信息存储模块,用于将所有所述信息按照被采集网页的链接的统一资源定位符的MD5值排序后存储。
10.根据权利要求9所述的面向网络视频的分布式采集系统,其特征在于,所述视频采集节点,包括:
视频地址获取模块,用于通过分析所述有效的视频网页的链接的统一资源定位符或检测视频播放时的流媒体地址获取视频的链接地址;
视频地址分析模块,用于分析获取的所述视频的链接地址的前缀和后缀以获取真实的视频的链接地址;
视频下载模块,用于根据获取到的真实的视频的链接地址,利用已有的视频下载工具下载视频并支持断点续传;
视频存储模块,采用4级目录的结构存储下载的视频节目。
11.根据权利要求9所述的面向网络视频的分布式采集系统,其特征在于,所述控制节点,包括:
节点定位管理模块,用于通过定位二叉树管理所有网页采集节点和视频采集节点;
节点通讯模块,用于所有的网页采集节点和视频采集节点定期向控制节点报告当前状态;
过滤模块,接收所述网页采集节点发送的MD5值,并根据所述MD5值判断哪些页面虽然链接不同但是内容重复,过滤掉那些判断为重复的页面。
12.根据权利要求9所述的面向网络视频的分布式采集系统,其特征在于,所述网页分析模块,包括:
网页链接过滤模块,用于将分析出的链接信息与预先设定的网站统一资源定位符的正则表达式进行匹配,识别出有效的视频网页链接:
MD5值计算模块,用于计算已经采集的网页的页面内容的MD5值,并提交给控制节点进行分析。
13.根据权利要求10所述的面向网络视频的分布式采集系统,其特征在于,所述视频地址分析模块,包括:
浏览器打开模块,利用IE浏览器打开待分析的视频网页,检测流媒体内容的扩展名,获取流媒体链接地址,并设置响应时间;
模拟点击播放模块,若在所述响应时间内仍不能获取地址,则通过HTML 解析器定位到网页中内嵌的object对象和embed对象所在的节点,获取该节点在客户端窗口中的坐标,并模拟用户在视频窗口中的点击行为,从而获取流媒体地址。
14.根据权利要求10所述的面向网络视频的分布式采集系统,其特征在于,所述视频下载模块,包括:
视频下载子模块,用于利用已有的视频下载工具下载指定的视频节目;
断点恢复模块,用于针对在下载的过程中出现的中断情况,从上次下载的结束处继续下载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910237595 CN101715004B (zh) | 2009-11-12 | 2009-11-12 | 面向网络视频的分布式采集方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910237595 CN101715004B (zh) | 2009-11-12 | 2009-11-12 | 面向网络视频的分布式采集方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101715004A CN101715004A (zh) | 2010-05-26 |
CN101715004B true CN101715004B (zh) | 2013-01-09 |
Family
ID=42418280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910237595 Active CN101715004B (zh) | 2009-11-12 | 2009-11-12 | 面向网络视频的分布式采集方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101715004B (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102457488B (zh) * | 2010-10-22 | 2016-04-27 | 腾讯数码(天津)有限公司 | 一种网络视频信息分享方法及其系统、网关服务器 |
CN103905915B (zh) * | 2010-12-15 | 2017-06-16 | 北京小度互娱科技有限公司 | 在线视频嗅探下载方法及装置 |
CN102360349B (zh) * | 2011-07-21 | 2014-12-03 | 深圳万兴信息科技股份有限公司 | 一种获取网页中音/视频链接地址的方法及装置 |
CN102510499A (zh) * | 2011-10-19 | 2012-06-20 | 清华大学 | 一种云环境中基于图像组的视频转码方法 |
CN102523248A (zh) * | 2011-11-24 | 2012-06-27 | 深圳市万兴软件有限公司 | 播放网页flash视频的方法、客户端和服务器 |
CN102542062B (zh) * | 2011-12-30 | 2014-03-05 | 深圳万兴信息科技股份有限公司 | 一种下载网页上视频的方法和装置 |
CN103294717B (zh) * | 2012-02-29 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 一种基于双内核浏览器的网页打开方法和装置 |
CN102722377B (zh) * | 2012-06-28 | 2015-05-20 | 上海美琦浦悦通讯科技有限公司 | 基于ace框架的网络视频应用处理系统 |
CN102880674A (zh) * | 2012-09-10 | 2013-01-16 | 杭州电子科技大学 | 基于视频网站的主题类视频自动采集方法 |
CN104038471B (zh) * | 2013-03-08 | 2017-08-11 | 中国移动通信集团浙江有限公司 | 一种在互联网中管理idc资源的方法和运营商网络 |
CN103259802A (zh) * | 2013-06-03 | 2013-08-21 | 贝壳网际(北京)安全技术有限公司 | 媒体文件的下载方法、装置及客户端设备 |
CN104284250A (zh) * | 2013-07-12 | 2015-01-14 | 贝壳网际(北京)安全技术有限公司 | 一种视频处理方法、装置、服务器和客户端设备 |
CN103678700A (zh) * | 2013-12-27 | 2014-03-26 | 纳容众慧(北京)科技有限公司 | 网页数据的处理方法和装置 |
CN104866512B (zh) * | 2014-02-26 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 提取网页内容的方法、装置及系统 |
CN104978340B (zh) * | 2014-04-08 | 2020-05-15 | 北京奇虎科技有限公司 | 一种链接地址生成方法、设备和服务器 |
CN104093062A (zh) * | 2014-07-31 | 2014-10-08 | 上海斐讯数据通信技术有限公司 | 一种用于移动终端的网页视频加载系统及其加载方法 |
CN105450600B (zh) * | 2014-08-19 | 2018-09-11 | 阿里巴巴集团控股有限公司 | 操作的识别方法及服务器 |
CN105528355A (zh) * | 2014-09-29 | 2016-04-27 | 优视科技有限公司 | 一种下载处理方法及装置 |
CN105516746B (zh) * | 2014-10-14 | 2019-10-25 | 鸿富锦精密工业(深圳)有限公司 | 视频预下载系统及其方法 |
CN105635038B (zh) * | 2014-10-27 | 2018-08-21 | 任子行网络技术股份有限公司 | 一种甄别音视频网站的方法及系统 |
CN104679842A (zh) * | 2015-02-12 | 2015-06-03 | 北京集奥聚合科技有限公司 | 一种实时识别用户搜索关键字的方法 |
CN104936043A (zh) * | 2015-07-08 | 2015-09-23 | 蓝汛网络科技(北京)有限公司 | 视频资源识别方法和装置 |
CN105207852A (zh) * | 2015-10-09 | 2015-12-30 | 西安未来国际信息股份有限公司 | 一种基于分布式网络数据定向采集的方法 |
CN105677739B (zh) * | 2015-12-29 | 2019-04-30 | 东方网力科技股份有限公司 | 一种视频索引设置方法和装置 |
CN105763893A (zh) * | 2016-01-15 | 2016-07-13 | 北京傲游天下科技有限公司 | 一种下载页面播放器中播放的视频方法 |
WO2018027491A1 (zh) * | 2016-08-08 | 2018-02-15 | 吕秋萍 | 打开文件路径时的信息推送方法以及文件系统 |
CN106331888A (zh) * | 2016-08-31 | 2017-01-11 | 乐视控股(北京)有限公司 | 浏览器操作方法及其装置 |
CN108475275A (zh) * | 2016-09-26 | 2018-08-31 | 微软技术许可有限责任公司 | 识别视频页面 |
CN106454393A (zh) * | 2016-11-23 | 2017-02-22 | 天脉聚源(北京)传媒科技有限公司 | 一种视频缓存方法及装置 |
CN106844475A (zh) * | 2016-12-23 | 2017-06-13 | 北京奇虎科技有限公司 | 确定隐藏的url的方法及装置 |
CN109286510B (zh) * | 2017-07-19 | 2021-11-05 | 北京国双科技有限公司 | 日志数据的收集方法和装置 |
CN107423446B (zh) * | 2017-08-11 | 2021-09-24 | 义乌工商职业技术学院 | 基于云存储的新媒体自动化可信部署系统和方法 |
CN108170803B (zh) * | 2017-12-28 | 2021-12-21 | 南京烽火天地通信科技有限公司 | 一种互联网信息分层采集方法 |
CN108829703A (zh) * | 2018-04-28 | 2018-11-16 | 尚谷科技(天津)有限公司 | 一种基于多源树图结构的遥感海拔数据的处理方法 |
CN109857953A (zh) * | 2018-11-08 | 2019-06-07 | 北京达佳互联信息技术有限公司 | 音视频分离方法、装置、电子设备及可读存储介质 |
CN110351437A (zh) * | 2019-06-05 | 2019-10-18 | 北京达佳互联信息技术有限公司 | 来电提醒方法、装置、电子设备及可读存储介质 |
CN110298177A (zh) * | 2019-06-26 | 2019-10-01 | 电子科技大学成都学院 | 基于环境的漏洞扫描器 |
CN110442766A (zh) * | 2019-07-11 | 2019-11-12 | 新华三大数据技术有限公司 | 网页数据采集方法、装置、设备及存储介质 |
CN110866165A (zh) * | 2019-10-31 | 2020-03-06 | 天津市国瑞数码安全系统股份有限公司 | 一种网络视频采集方法及系统 |
CN113065055B (zh) * | 2021-04-21 | 2024-04-02 | 深圳赛安特技术服务有限公司 | 新闻资讯抓取方法、装置、电子设备及存储介质 |
CN118172790A (zh) * | 2024-05-11 | 2024-06-11 | 中移(苏州)软件技术有限公司 | 页面识别方法、装置、电子设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446954A (zh) * | 2008-11-25 | 2009-06-03 | 北京邮电大学 | 针对视频网站的广域网爬虫系统 |
-
2009
- 2009-11-12 CN CN 200910237595 patent/CN101715004B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446954A (zh) * | 2008-11-25 | 2009-06-03 | 北京邮电大学 | 针对视频网站的广域网爬虫系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101715004A (zh) | 2010-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101715004B (zh) | 面向网络视频的分布式采集方法和系统 | |
CN102054028B (zh) | 一种网络爬虫系统实现页面渲染功能的方法 | |
CN105824744B (zh) | 一种基于b2b平台的实时日志采集分析方法 | |
CN103475687B (zh) | 用于下载网站数据的分布式方法和系统 | |
CN101841523B (zh) | 检测恶意代码样本的网络行为的方法及系统 | |
CN101193008B (zh) | 一种回放用户的网页访问轨迹的方法及系统 | |
CN107895009A (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
CN105912587A (zh) | 一种数据采集方法和系统 | |
CN104065532B (zh) | 一种基于多路数据接入方式的未备案网站探寻方法及系统 | |
CN103853743A (zh) | 一种分布式系统及其日志查询方法 | |
CN103970788A (zh) | 一种基于网页爬取的爬虫技术 | |
CN102833233B (zh) | 一种识别网站页面的方法和装置 | |
CN107977473B (zh) | 基于Logback的分布式系统日志的检索方法和系统 | |
CN105490854A (zh) | 实时日志收集方法、系统和应用服务器集群 | |
CN103279567A (zh) | 一种基于AJAX的Web数据采集方法及系统 | |
CN102521232B (zh) | 一种互联网元数据的分布式采集处理系统及方法 | |
CN103455600A (zh) | 一种视频url抓取方法、装置及服务器设备 | |
CN101729602A (zh) | 一种获取p2p视频系统节目信息的方法 | |
CN105589782A (zh) | 基于浏览器的用户行为采集方法 | |
CN101441629A (zh) | 一种非结构化网页信息的自动采集方法 | |
CN105577528A (zh) | 一种基于虚拟机的微信公众号数据采集方法及装置 | |
CN101046806A (zh) | 搜索引擎系统和方法 | |
Malik et al. | A framework for collecting youtube meta-data | |
CN113656673A (zh) | 面向广告投放的主从分布内容爬取机器人 | |
CN104199893A (zh) | 一种快速将全媒体内容发布的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |