关于Video Src 带有 blob:http的视频如何下载的问题


我们如果使用爬虫,想爬取一些视频的时候,会发现一些网站提供的视频链接打开是 404;

<video id="av-player0_html5_api" class="emav-tech js-evernote-checked" preload="meta" tabindex="-1" src="blob:http://******/8587a0ef-ef44-4dba-8f76-e134b9624772" data-evernote-id="1968"></video>

如上图HTML结构,video 里面的 src 地址格式:blob:http://******/8587a0ef-ef44-4dba-8f76-e134b9624772

一些网站的视频为了防止下载,通常会采用blob加密的做法;

其实这不是特殊的视频传输协议,只是一种 HTML5 Video Blob格式。

并且大部分网页视频的格式都是 m3u8。

1、利用Chrome 浏览器插件

在这里插入图片描述

在这里插入图片描述

刷新当前页面,插件就会自动获取后缀为.m3u8的地址:

http://**.***.com/8bcc6d63vodtransgzp1252033264/5dd1c7175285890790219893454/v.f230.m3u8?t=5ee4ea82&exper=0&us=9c9d732af7&sign=21f19b506e59ae620904b125afad1e53

点击Download, 进入下面的也没,点击链接,会开始进行解析:

在这里插入图片描述在这里插入图片描述

最后生成ts格式的视频,同样可以打开。

2、第二种方法 找到 m38u 文件, 使用 window下载工具 M3U8下载工具

打开chrome开发者工具,审查Network - XHR 搜索 m38u, 这样也找到了链接:

在这里插入图片描述

3、审查 下载的 JS 资源:

在这里插入图片描述

这样就找到了 flv 格式的视频。

在这里插入图片描述

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Blob视频是以分段方式传输的视频,因此无法直接下载。为了下载Blob视频,可以使用Python编写代码来获取视频的源地址,并进行下载。以下是使用Python获取Blob视频源地址并下载的步骤: 1. 通过网络请求获取Blob视频的URL。可以使用Python的`urllib.request`库发送GET请求,并传入相关的请求头信息。 2. 解析HTML响应,提取视频的URL。可以使用正则表达式从HTML响应中提取视频的URL,具体的正则表达式可以根据实际情况进行调整。 3. 使用得到的视频URL进行下载。可以使用Python的`urllib.request.urlretrieve`函数将视频保存到本地。 下面是一段示例代码,展示了如何使用Python下载Blob视频: ```python import urllib.request import re # 获取视频URL def get_video_url(url, headers): # GET方式请求网站 req = urllib.request.Request(url, headers=headers, method="GET") try: # 获取到HTML response = urllib.request.urlopen(req).read().decode('utf-8') except urllib.error.HTTPError as e: print(e) print('\r\n' + url + ' download failed' + '\r\n') # 正则表达式提取视频URL video_url = re.search(r"readyVideoUrl: '(.*)?'", response)[0][16: -1] return video_url # 设置请求头信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36' } # Blob视频的URL blob_url = 'blob:http://tclearn.cmbchina.cn/5a8c0e2a-0cd9-4a50-ac4e-aa96fdadc15a' # 获取视频的源地址 video_url = get_video_url(blob_url, headers) # 下载视频 urllib.request.urlretrieve(video_url, 'video.ts') ``` 请注意,以上代码仅为示例,具体的实现可能需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值