如何抓取各个网站视频的缓存获取网页视频?|
优采云 发布时间: 2022-08-20 05:07如何抓取各个网站视频的缓存获取网页视频?|
如何抓取网页视频最早在我很小的时候,我就已经使用浏览器获取网页视频,之后随着技术发展,单独存储各个网站视频已经不实用了,现在多个网站就可以复制视频链接或者文件,而如何抓取各个网站视频,是一个令人痛恨的问题。其实抓取视频分为两种:一种是网站原始文件,即通过浏览器本地的缓存获取下载,然后通过网站打包apis就可以直接拷贝到本地,像这种类型的抓取方式,可以提高抓取的效率,因为不用考虑setinterval和arrayblock这种底层的原理,上层抽象而已。
另一种方式是比较传统的视频抓取方式,这种方式我们依旧可以用本地缓存这种抓取方式,也可以采用云播直播的方式。因为视频apis是有云上的,所以将视频apis的连接传给云服务器上,就可以实现视频的直播功能,然后我们通过视频网站的后台,获取到本地各个视频点的相关信息,(视频内容路径+视频链接)就可以抓取到每个点相对应的视频地址,然后我们根据每个视频点的url的xpath进行网址匹配,就可以获取到视频的下载地址。
这种下载方式就可以看做是传统的抓取方式。现在,那种直接本地抓取网站视频或者通过云服务器下载视频方式依旧十分有效。这种抓取方式跟传统抓取方式相比,在程序开发上有以下优势:方便:连接云服务器直接抓取,可以给自己创建多个网站的爬虫抓取,程序可以到处跑,灵活性强。高性能:接入各个主流的网站的视频抓取apis,如:redis的缓存。
高并发:可以远程指定爬虫,抓取一次网站的视频点(每个点在不同网站)。目前,我将编写如下的方案,针对多个网站的视频抓取。已抓取apis列表视频抓取工具netyavemaangularextract-search通过updateapi的方式注册一个apis的账号,然后有想要抓取的网站,就可以注册一个apis的账号,然后即可通过apis连接,通过redis的缓存,即可将视频apis放在网站的缓存服务器中,这样我们就可以随时随地将视频apis输出到redis缓存服务器中,方便我们存储视频数据。
这里推荐使用redis缓存服务器进行抓取,因为redis缓存服务器解决了如何在redis存储数据的问题。所以我在项目目录下新建了一个redisserver目录,项目的其他文件中都在redisserver目录下进行命名。连接apis连接的话,为了方便连接,主要分为4种方式:redis-apis直接连接urls(采用setinterval或者arrayblock来进行计算)传统连接redisserver(用于抓取通过缓存服务器抓取到的数据)tornadocredisserver(使用tornado使用tornado来进行抓取)服务器自己连接:可以自己连接apis服务器,例如web服务。