我正在尝试用javascript编写脚本来从网站上抓取图像并将其保存到我的计算机上。
我设法让脚本使用jQuery隔离包含我想要的图像的图像标记。所以我有一个jquery选择:
<img src="sourceofimage.com/path/img">
我的问题是我现在如何将此图像保存到计算机上?
我尝试过搜索,但我得到的所有结果都是关于制作下载按钮或其他面向用户的任务。要清楚,我将是唯一一个运行此脚本的人,它将通过将其粘贴到控制台来运行。
我只想要一种方法以编程方式下载图像并在jQuery隔离后设置其文件名。这可能吗?
编辑:有人可以解释为什么会收到如此多的downvotes吗?
答案 0 :(得分:0)
尝试使用fs库
fs.writeFile('logo.png', imagedata, 'binary', function(err){
if (err) throw err
console.log('File saved.')
答案 1 :(得分:0)
这适用于您网页上的每个图片,它是锚点的直接子图片,但您可以使用:
'$('a > img').each(function(){
var $this = $(this);
$this.parent('a').attr('href', $this.attr('src'));
});
但它可以胜任。
但唯一的问题是,禁用JS的用户会看到一个带有空href的锚点。以下将实现相同的最终结果,同时还可以简化代码(更清晰的HTML)并添加优雅降级:
'<img src="folio/1.jpg" class="downloadable" />
$('img.downloadable').each(function(){
var $this = $(this);
$this.wrap('<a href="' + $this.attr('src') + '" download />')
答案 2 :(得分:0)
在网络浏览器中,基本上无法完成,您无法直接写入文件系统(可能使用浏览器扩展程序,但我暂时没有看过这个)。
使用节点并没有阻止你做类似的事情:
$(html).find('img');