使用 js 从网站下载或仅保存图像文件

Posted

技术标签:

【中文标题】使用 js 从网站下载或仅保存图像文件【英文标题】:Download or just save an image file from a website using js 【发布时间】:2009-07-29 11:24:22 【问题描述】:

我想下载或只需要使用 javascript 从网站保存图像文件 在纯编码本身..因为我要下载近1000个jpeg,所以我想写一个函数来调用和下载这些图像。

网址可用,我想从那里下载特定的图片

请指导一下..

【问题讨论】:

否则是否可以从给定的 url 下载所有图像 - 以及原始大小 不清楚,为什么要在JS里做这个?这会成为您网站的一部分吗?如果你需要一个独立的脚本/应用程序,那么 JS 不是适合这项工作的工具。 好的,请告诉我哪一个适合这份工作 【参考方案1】:

fileUrl = "http://www.b2hp.com/myProfilePic.jpg";

var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function () 
  var a = document.createElement('a'); // create html element anchor
  a.href = window.URL.createObjectURL(xhr.response); // xhr.response is a blob
  a.download = "TEMP-1.jpg"; // Set the file name.
  a.style.display = 'none'; // set anchor as hidden
  document.body.appendChild(a);
  a.click();
  a.remove()
;
xhr.open('GET', fileUrl);
xhr.send();

【讨论】:

【参考方案2】:

在标准浏览器安全上下文中,JavaScript 不允许写入用户的文件系统(缓存的任何副作用除外)。

您可能能够使用浏览器插件/附加/扩展/等来实现您想要的 - 但即使是如何实现这一点的大致步骤也取决于您所针对的浏览器。

坦率地说,这听起来更像是 wget 这样的蜘蛛而不是 JavaScript 的工作。

【讨论】:

【参考方案3】:

根据您的需要,您可能需要查看DownThemAll(Firefox 插件)

它可以让您从网站批量下载链接的图像、电影等。

请注意,它是一个用户工具,而不是开发者工具,因此您不能以编程方式完成所有工作。

【讨论】:

【参考方案4】:

就像 David 所说,JS 不会这样做。

您需要独立的download manager,或浏览器plug-in 变体。大多数下载管理器都非常擅长下载一系列文件,例如以“img0001.jpg”开头和以“img9999.jpg”结尾的文件。

【讨论】:

【参考方案5】:

有 Firefox 扩展程序 FlashGot 可以一次性下载页面上的所有图像/音频等。

【讨论】:

【参考方案6】:

如果你想通过代码加载图像,你应该阅读这篇关于图像预加载的文章: http://www.webreference.com/programming/javascript/gr/column3/

它帮助我构建了一个类来从 URL 中获取图像并在完成时收到通知。

【讨论】:

【参考方案7】:

脚本语言可以很容易地处理这个问题。在这种情况下,使用 BeautifulSoup 尤其是 Python 会相当容易。

如果您正在寻找,任何可以下载页面并具有可用于解析 HTML 的库的语言都可以正常工作,BS 恰好是我唯一具有广泛知识的语言(因此可以推荐)。

【讨论】:

以上是关于使用 js 从网站下载或仅保存图像文件的主要内容,如果未能解决你的问题,请参考以下文章

从带有 discord.js 的链接下载图像,然后删除该文件

用于从网站下载图像并显示文件大小的 Java 程序

React.js:应用 CSS 过滤器后下载图像

从 url 下载文件并将其上传到 AWS S3 而不保存 - node.js

进程无法访问图像文件,因为它正被另一个进程使用

从字符串 URL 数组下载图像并保存到文件?