插件窝 干货文章 B站主页Banner的Blob URL是如何生成的及如何下载?

B站主页Banner的Blob URL是如何生成的及如何下载?

Blob 图片 URL 下载 669    来源:    2025-03-20

B站(哔哩哔哩)主页的Banner图片通常是通过Blob URL进行加载的。Blob URL是一种特殊的URL,它允许浏览器直接引用内存中的二进制数据(Blob对象),而不是从服务器下载文件。这种方式常用于动态生成或处理的数据,如图片、视频等。

Blob URL的生成过程

  1. 数据获取:B站服务器会返回Banner图片的二进制数据(通常是经过压缩的图片格式,如JPEG或PNG)。
  2. Blob对象创建:浏览器接收到这些二进制数据后,会将其封装成一个Blob对象。
  3. URL生成:浏览器使用URL.createObjectURL()方法为这个Blob对象生成一个临时的Blob URL。这个URL可以直接用于<img>标签的src属性,从而显示图片。

下载Blob URL的图片

如果你想下载B站主页Banner的图片,可以按照以下步骤操作:

方法一:通过开发者工具

  1. 打开开发者工具:在B站主页,按下F12Ctrl+Shift+I打开浏览器的开发者工具。
  2. 切换到Network面板:在开发者工具中,切换到“Network”选项卡。
  3. 筛选图片请求:在筛选器中输入imgimage,找到Banner图片的请求。
  4. 查看Blob URL:找到对应的Blob URL请求,右键点击该请求,选择“Open in new tab”。
  5. 保存图片:在新标签页中打开图片后,右键点击图片并选择“另存为”即可保存到本地。

方法二:通过JavaScript

如果你熟悉JavaScript,可以通过以下代码将Blob URL转换为可下载的链接:

// 假设你已经获取到了Blob URL
const blobUrl = 'blob:https://www.bilibili.com/...';

// 使用fetch获取Blob对象
fetch(blobUrl)
  .then(response => response.blob())
  .then(blob => {
    // 创建一个链接元素
    const link = document.createElement('a');
    link.href = URL.createObjectURL(blob);
    link.download = 'banner_image.jpg'; // 设置下载的文件名
    document.body.appendChild(link);
    link.click(); // 触发下载
    document.body.removeChild(link); // 移除链接元素
  })
  .catch(error => console.error('Error downloading image:', error));

注意事项

  • Blob URL的有效期:Blob URL是临时的,通常只在当前会话中有效。如果你刷新页面或关闭浏览器,Blob URL将失效。
  • 跨域问题:如果Blob URL来自不同的域名,可能会遇到跨域问题,导致无法直接下载。

通过以上方法,你可以轻松下载B站主页Banner的图片。