一种基于浏览器的视频获取方法及系统

文档序号:1395823 发布日期:2020-02-28 浏览:8次 >En<

阅读说明:本技术 一种基于浏览器的视频获取方法及系统 (Video acquisition method and system based on browser ) 是由 夏光升 孙涛 于 2019-10-31 设计创作,主要内容包括:本发明属于互联网技术领域,特别涉及一种基于浏览器的视频获取方法及系统。所述视频获取方法包括:获得非视频网络地址数据,根据所述非视频网络地址,下载网络页面中的视频数据;对完成下载的所述视频数据进行去重复化处理,并进行保存。实现对静态页面和动态页面中视频的下载。(The invention belongs to the technical field of internet, and particularly relates to a video acquisition method and system based on a browser. The video acquisition method comprises the following steps: acquiring non-video network address data, and downloading video data in a network page according to the non-video network address; and performing de-duplication processing on the downloaded video data, and storing the video data. And the downloading of the videos in the static page and the dynamic page is realized.)

一种基于浏览器的视频获取方法及系统

技术领域

本发明属于互联网技术领域,特别涉及一种基于浏览器的视频获取方法及系统。

背景技术

近年来随着计算机技术、网络技术和多媒体技术的飞速发展,媒体获取、传输和发布方式发生了巨大的变革,云计算、多媒体都得到了广泛的应用。越来越多用户已经可以方便地实现网络视频通信,订阅和播放网络上的多媒体数据。这些应用使得对网络多媒体的安全监控成为必然。多媒体安全涵盖了政治、经济、技术、文化、人身等多个层面。由于多媒体内容信息安全所占据的主导地位,在很大程度上其他的安全形态都由它延伸出来。但多媒体网络节点分散、强动态变化等特性使得其不易管理和安全性较差,因此,开展违规视频检测与分析将具有重要的意义。

在对互联网中的视频进行检测前,需要对互联网中的视频数据进行获取。由于互联网中存在巨量的网络地址数据,其中包含着大量的视频网络地址数据,其对应的视频数据量大、类型多,并且不同网站的实现技术也不同。部分不同视频网络地址数据,还对应着相同的视频数据。多数网站已经应用反爬虫系统。因此,大批量自动下载互联网中的视频数据难度较大。

发明内容

针对上述问题,本发明提供了一种基于浏览器的视频获取方法,所述视频获取方法包括:

获得非视频网络地址数据;

根据所述非视频网络地址数据,使用浏览器自动化测试方法抓取网络页面中的视频网络地址数据;

根据所述视频网络地址数据下载视频数据、保存视频数据。

进一步地,所述下载视频数据包括:

对所述视频网络地址数据进行IO流处理;

通过所述IO流,下载网页中的视频数据。

进一步地,使用浏览器自动化测试方法抓取包括:

调用ChromeOptions设置渲染方式;

调用ChromeDriver加载浏览器,获取视频网络地址。

进一步地,所述抓取网络页面中的视频网络地址数据还包括:

抓取所述网络页面中视频网络地址数据,抓取所述网络页面的链接网络页面中的视频网络地址数据。

进一步地,对下载的视频进行去重复视频操作。

进一步地,若抓取所述网络页面中的视频网络地址数据失败,则自动重新抓取;

自动重新抓取次数超过重爬阈值,则停止抓取;

将所述网络页面对应的网络地址数据保存至数据库服务器中,等待再次被调取执行。

进一步地,若所述下载视频数据失败,则自动重新下载;

自动下载次数超过重下阈值,则停止下载;

将所述视频数据对应的视频网络地址数据保存至数据库服务器中,等待再次被调取执行。

进一步地,所述抓取页面中的视频网络地址数据和所述下载视频数据为自动执行。

进一步地,所述视频获取方法还包括:

自动登录网站;

登录后抓取网络页面中的视频网络地址数据;

登录后下载视频数据。

本发明还提供一种基于浏览器的视频获取系统,其特征在于,所述视频获取系统包括:

任务生成单元,用于根据获得的非网络地址数据,生成视频抓取任务;

视频抓取单元,用于执行所述视频抓取任务,抓取网页中的视频网络地址;

视频下载单元,根据所述的视频网络地址,下载网页中的视频数据;

数据库服务器,用于对完成去重复化处理的视频数据进行保存,对未完成网页抓取任务对应的网络地址数据进行保存,对下载视频数据失败对应的视频网络地址数据进行保存。

进一步地,所述视频获取系统还包括:

视频去重单元,用于对下载的视频数据进行去重复化处理;

网络地址数据整理单元,用于对网络地址数据和视频网络地址数据进行整理;

登录单元,用于自动登录网站。

本发明可以对海量的视频数据实现下载,处理能力强、系统可靠。可以根据实际需要,适应性的自动登录系统进行下载,实现对静态页面和动态页面中视频的下载。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例的一种基于浏览器的视频获取方法的流程示意图;

图2示出了本发明实施例的一种基于浏览器的视频获取系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明公开了一种基于浏览器的视频获取方法,如图1所示,所述方法的具体步骤如下:

步骤一、获得非视频网络地址数据。

具体的,获得非视频网络地址数据步骤如下:

步骤1.1、获得网络地址数据;

示例性的,获取网络地址数据方法有多种。可以使用且不限于以下方式获取。

方法一:互联网数据中心(Internet Data Center,IDC)访问日志会自动记录普通大众用户浏览访问的URL(Uniform Resoure Locator,统一资源定位符),所述URL数据即为网络地址数据。从互联网数据中心获得日志文件,可以提取网络地址数据。

方法二:互联网(Internet)是一组全球信息资源的总汇,是一个全球计算机互联网络。万维网(WorldWide Web,WWW)是Internet上集文本、声音、图像、视频等多媒体信息于一身的全球信息资源网络,是Internet上的重要组成部分。万维网使用超文件标记语言(Hyper Text Markup Language,HTML),使用超文件标记语言的文本为超文本。超文本中不仅含有文本信息,还包括图形、声音、图像、视频等多媒体信息。超文本中还含着指向其它超文本的链接,这种链接称为超链接(Hyper Links)。通过访问互联网上的某一页面,收集其中所有超链接。根据收集的超链接,打开新的页面,再收集新的页面中的超链接。这样循环收集下去,直到收集的超链接数目达到要求。收集的所述超链接组合,即为网络地址数据。

方法三:域名系统(DomainName System,DNS)上记录着大量网址信息。通过收集域名系统中网址信息,对该地址所对应的网站进行所有超链接抓取。所述网址信息组合,即是网络地址数据;收集的超链接组合,是更详细的网络地址数据。

方法四:全国互联网安全管理服务平台上记录着大量的网址信息。通过收集平台上的网址信息,对该地址所对应的网站进行超链接抓取。所述网址信息组合,即是网络地址数据;收集的超链接组合,是更详细的网络地址数据。

步骤1.2、找出网络地址数据中的视频网络地址数据并记录,剩下地址数据为非网络地址数据。

具体的,视频网络地址数据的后缀为视频文件类型,例如:.mp4、.avi、.rm等。在网络地址数据中,根据网络地址数据的后缀,找出视频网络地址数据。

示例性的,可以使用但不限于以下方式找出视频网络地址数据。.mp4、.avi、.rm等视频网络地址数据的后缀,可以通过提前收集好存入字典表。对网络地址数据后缀与字典表中数据进行比较。当网络地址数据后缀在字典表内,则认为该网络地址数据为视频网络地址数据。

例如,在某网站某页面中,存在如下网络地址:https://p3.img.cctvpic.com/uploadimg/mp4/2019/10/15/PtTfw8OhZsaRsGy5xyXo191015.mp4。该网络地址后缀为.mp4。该后缀与字典表中数据进行比较,存在于字典表内,则认为所述网络地址为视频网络地址,对应的视频文件类型为mp4型。

步骤1.3、整理视频网络地址数据。

删除视频网络地址数据中,不符合视频网络地址正确格式的数据。

对视频网络地址数据进行整理,删除重复的视频网络地址数据。

示例性的,视频网络地址中,默认使用是半角英文字符。当某地址中出现全角字符时,可以认为该地址不符合视频网络地址正确格式。删除此地址。

示例性的,视频网络地址中,不含有某些字符,如“@”。当某地址中出现“@”符号时,可以认为该地址不符合视频网络地址正确格式。删除此地址。

具体的,整理后视频网络地址数据,是第一视频网络地址数据。从网络地址数据中删除第一视频网络地址数据,剩下的为非视频地址数据。

步骤二:根据所述非视频网络地址数据,使用浏览器自动化测试方法抓取网页中的视频网络地址数据。

利用Kafka流处理平台和Storm分布式实时计算系统,对所述非视频地址数据进行分类,生成网页抓取任务。

具体的,将上述生产者(Kafka数据源)写入Kafka流处理平台的Topic类别,Kafka流处理平台将Topic类别的信息流分发到各节点中流入Storm集群等待消费。示例性地,Kafka流处理平台将所述非视频网络地址数据分发到集群中各个节点服务器中。各节点服务器通过Storm分布式实时计算系统的Spout获取所述非视频网络地址数据,Spout将所述非视频网络地址数据分发给不同的Bolt。Bolt对网络地址数据进行处理,将视频网络地址数据通过IO流保存;根据非视频网络地址数据则生成网页抓取任务。

具体的,Kafka流处理平台是一个开源的分布式流媒体平台,是基于发布订阅的容错消息系统。其主要包括三个功能:

(1)发布和订阅消息流,该功能类似于消息队列。

(2)以容错的方式记录消息流;具体的,Kafka流处理平台以文件的方式来存储消息流。

(3)可以在消息发布的过程中,对消息进行处理。

具体的,Storm分布式实时计算系统是一个开源式系统,可以实时处理流数据。Storm分布式实时计算系统的核心技术分为两种:Spout(喷嘴)和Bolt(闩)。

Spout是Storm分布式实时计算系统中流的来源,是拓扑(topology)的消息生产者。通常Spout从外部数据源(如Kafka流处理平台输出的消息队列)中读取元组数据(tuple,如网页抓取任务)并输送至拓扑中。在拓扑中所有的计算逻辑都是在Bolt中实现的。一个Bolt可以处理任意数量的输入流,产生任意数量的输出流(IO流)。Bolt可以做函数处理、过滤、流的合并、聚合、存储到数据库等操作。Storm分布式实时计算系统中可以设置多个Spout和多个Bolt,多个Spout和多个Bolt之间可以实现信息交叉传输。

具体的,Kafka流处理平台对网络地址数据的分发处理、Storm分布式实时计算系统对视频数据下载。

示例性的,可以采用而不限于以下方式,抓取网页中的视频网络地址数据。

抓取使用浏览器自动化测试方法。

具体的,浏览器自动化测试框架(Selenium)是一个用于Web应用程序测试的工具。浏览器自动化测试方法指使用浏览器自动化测试框架(Selenium)直接运行在浏览器中的方法。浏览器自动化测试方法可以模仿用户在浏览器上的操作方式。浏览器自动化测试框架(Selenium)支持的浏览器包括IE、MozillaFirefox、Safari、Google Chrome、Opera等。

示例性的,浏览器自动化测试方法使用但不限于Selenium+Google Chrome技术。

采用浏览器自动化测试框架(Selenium)+Google Chrome浏览器的网页信息抓取技术,实现了页面中视频网络地址数据的获取。

具体的,大多数网站使用反网络爬虫技术用于阻止爬虫爬取网络。

示例性的,用户使用浏览器访问该网站时,其访问请求页面的User-Agent字段会显示该用户访问该网站的浏览器的信息。如果该网站在User-Agent字段没有找到浏览器信息,该网站会认为该用户正使用爬虫技术而拒绝该用户访问。

具体的,浏览器自动化测试框架(Selenium)可以驱动浏览器去执行请求和操作,这些执行请求和操作的信号不是来源于鼠标或键盘,而是来源于浏览器自动化测试框架(Selenium)的应用程序接口(API)。自然人用户通过计算机输入设备对网络页面的所有操作,浏览器自动化测试框架均可以通过驱动浏览器来实现。对网页的操作包括输入、点击、滑动、验证等。这种使用Selenium+Google Chrome方式,可以很好地模拟自然人对网站的操作,使得网站认为访问网站的是自然人而不是爬虫,而不会拒绝访问。

示例性地,将浏览器自动化测试框架(Selenium)在Google Chrome浏览器上运行。浏览器自动化测试框架根据网页抓取任务,在浏览器上打开网页抓取任务对应的网络页面。若该网络页面上存在视频数据,则获取所述网络页面对应的视频网络地址数据。若该网络页面内无视频数据,浏览器自动化测试框架自动导航浏览器进入所述网络页面的其它链接页面。若所述链接页面存在视频数据,则获取所述链接页面对应的视频网络地址数据。若所述链接页面无视频数据,浏览器自动化测试框架自动导航浏览器进入所述链接网络页面的其它链接页面。以此循环,浏览器自动化测试框架(Selenium)+Google Chrome浏览器的网页信息抓取技术,实现了页面中视频网络地址数据的获取。

视频网络地址数据获取使用到ChromeOptions与ChromeDriver两个对象。其中,Selenium调用ChromeOptions设置JS、CSS等渲染方式;调用ChromeDriver,使用其中getPageSource函数加载浏览器,获取视频网络地址。

对获取的视频网络地址数据进行整理,删除其中不符合网络地址正确格式的数据,剩下的视频网络地址数据为第二视频网络地址数据。

对第一视频网络地址数据和第二视频网络地址数据去重复化处理,处理后的数据为第三视频网络地址数据。

在页面抓取过程中,因种种原因,部分页面无法打开,部分页面打开后无法进行抓取。对于此类网页进行自动重新抓取,直至超过重爬阈值。将超过重爬阈值的网络地址数据进行归档,用于后面进行迭代抓取。

示例性的,浏览器自动化测试框架在浏览器上对某网络页面内容进行抓取。抓取失败后,浏览器自动化测试框架控制自动重新抓取,失败后再次重新抓取。假设该网络页面的重爬阈值为4,即在连续四次重新抓取失败后,将该网络页面的网络地址数据归档保存至数据库服务器中,等待后期再次被调取,重新进行网络页面内容迭代抓取。

具体的,对于部分网站,抓取网络页面中的视频网络地址数据或下载视频数据需要登录。

登录步骤如下:

步骤2.1、获得账号和密码。

示例性的,获得账号密码方式有多种。可以使用但不限于以下方式获取:人工注册并记录或使用计算机自动注册并记录。

步骤2.2、获得登录页面结构。

具体的,登录页面结构包括登录所需要的各项信息。

示例性的,许多网站为防止使用机器自动登录,设计登录验证方式。登录页面结构包括登录验证方式。有的网站登录验证是识别图片,有的网站登录验证方式计算等。这时需要获得具体的登录验证方式。

步骤2.3、根据所获得的登录页面结构,使用账号密码登录。

具体的,根据所获得的登录页面,使用账号密码进行登录。登录验证可以使用但不限于以下方式来完成自动登录验证:Capture技术,cookie技术。

示例性的,可以使用但不限于以下方式进行登录:使用Selenium,调用WebElement对象进行模拟登陆。

步骤2.4、登录后,对网站进一步操作。

具体的,所述进一步操作包括抓取网络页面中的视频网络地址数据、下载视频数据。

步骤三:根据所述视频网络地址数据下载视频数据、保存视频数据。

所述下载视频数据包括对视频数据进行下载和对所下载视频进行去重复化。

对视频数据进行下载即对第三视频网络地址数据进行IO流处理。

示例性的,可以使用但不限于以下方式进行IO流处理。

Storm分布式实时计算系统与目标地址建立一个链接,用IO流的方式,从这个链接上把视频的二进制数据读取、下载,然后写入本地文件。

进一步地,利用浏览器自动化测试框架(Selenium)对浏览器页面进行渲染,通过IO流,下载上述第三视频网络地址数据对应的视频数据。

在视频文件下载过程中,因种种原因,部分视频无法启动下载,部分视频启动下载后下载失败。对此类视频进行自动重新下载,直至超过重下阈值。将超过重下阈值的视频网络地址数据进行归档,用于后面进行迭代下载。

示例性的,下载视频网络地址数据对应的视频数据。下载失败后,自动重新下载。假设该视频数据的重下阈值为5,即在连续五次重新下载失败后,将该视频数据的视频网络地址数据归档保存至数据库服务器中,等待后期再次被调取,重新进行迭代下载。

利用浏览器自动化测试框架技术,并不限于下载网页中的视频,也可以下载网页中的音频、图片、文字等其它数据。

下载的视频文件以mp4、avi、rm或其它视频格式保存在数据库服务器中,数据库服务器可以采用而不限于如下系统:分布式文件系统(HDFS)、数据仓库工具(Hive)、Hbase分布式存储系统等Hadoop集群服务器。

示例性的,甲网站发布视频一,乙网站下载后又在自己的网站上对视频一进行发布。此时,甲网站和乙网站上,存在两个不同的视频网络地址数据,对应的是相同的视频。对甲网站和乙网站进行视频获取,会获取到相同的视频,这时需要对所下载视频进行去重复化。

可以采用但不限于以下方法对视频文件进行去重复化。

示例性的:去重复化方法如下:

步骤3.1、记录视频文件如下数据:文件名、后缀名、文件大小。

步骤3.2、比较文件名、后缀名、文件大小;如果这三项均相同,则认为是重复视频(进一步地,计算视频MD5校验值。当三项均相同且MD5校验值也相同时,则认为是重复视频)。

步骤3.3、删除重复视频,记录被删除视频所对应的视频网络地址数据。

为实现上述视频获取方法,本发明还提供了一种基于浏览器的视频获取系统。所述视频获取系统可以采用但不限于下列结构,如图2所示。所述视频获取系统包括:任务生成单元、视频抓取单元、视频下载单元、视频去重单元、数据库服务器、网络地址数据整理单元、登录单元。

所述任务生成单元,接收非视频网络地址数据,输出视频抓取任务至视频抓取单元;用于根据获得非视频网络地址数据,生成视频抓取任务。

所述视频抓取单元,接收任务生成单元传来的视频抓取任务,输出第二视频网络地址数据至数据整理单元;用于执行所述视频抓取任务,抓取网页中的视频网络地址。视频抓取单元还输出未完成网页抓取任务对应的网络地址数据至数据库服务器。

所述网络地址数据整理单元,用于对视频网络地址数据进行整理,接收第一视频网络地址数据和视频抓取单元传来的第二视频网络地址数据,输出第三视频网络地址数据至视频下载单元;用于对网络地址数据和视频网络地址数据进行整理。整理包括删除重复的数据,删除不符合网络地址正确格式的数据。

所述视频下载单元,接收网络地址数据整理单元传来的第三视频网络地址数据,输出视频数据至视频去重单元;用于根据所述的视频网络地址数据,下载网页中的视频数据。视频下载单元还输出下载视频数据失败对应的视频网络地址数据至数据库服务器。

所述视频去重单元,接收视频下载单元传来的视频数据,输出去重复化的视频数据至数据库;用于对下载的视频数据进行去重复化处理。

所述数据库服务器,接收视频抓取单元、视频下载单元、视频去重单元传来的数据,用于对完成去重复化处理的视频数据进行保存,对未完成网页抓取任务对应的网络地址数据进行保存,对下载视频数据失败对应的视频网络地址数据进行保存。

所述登录单元,根据需要使用。由视频抓取单元或视频下载单元调用,用于自动登录网站。

本发明提出的视频获取系统可以使用单个主机进行下载,也可以设置多台服务器进行下载。采用多台服务器进行海量视频的分布式下载,分布式下载的优势在于扩展性好、可靠性强。多台服务器运行大幅提高了系统的可靠性,同时可以根据需求规模的增减,对系统的规模进行高效的动态伸缩,及时调整系统中服务器的数量。

所述视频获取系统以浏览器自动化测试框架(Selenium)为控制台,将需要爬取的搜索源根据策略划分为多个网页抓取任务,控制台将网页抓取任务以文件的形式传递给各云端爬取服务器。各服务器接收网页抓取任务之后进行爬取,同时将爬取到的结果存放到数据库集群服务器上。控制台对各爬虫服务器爬取到的数据进行归纳、汇总,同时为用户提供前台数据展现。

所述视频获取系统可以存放在单个主机或文件存储服务器上,也可以通过云存储的方式,对下载完成的视频进行留存。云存储是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。使用云存储可以提高系统数据的稳定性和安全性。

尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:视频画质增强传输方法以及相关装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类