使用 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 的链接下载图像,然后删除该文件