2016-09-18 52 views
-3

我正在尝试在javascript中编写脚本以从网站上刮取图像并将它们保存到我的计算机中。如何使用JavaScript从网站上刮取图像?

我设法使脚本隔离包含我想要使用jQuery的图像的图像标记。所以我有一个jQuery选择:

<img src="sourceofimage.com/path/img"> 

我的问题是我怎么能现在这个图像保存到我的电脑?

我试过搜索,但是我得到的所有结果都是关于做下载按钮或其他用户面临的任务。清楚的是,我将是唯一运行此脚本的人,并且将通过将其粘贴到控制台中运行。

我只想要一种以编程方式下载图像并在jQuery隔离它时设置其文件名的方法。这可能吗?

编辑:有人可以解释为什么这是接收这么多downvotes?

回答

0

尝试FS库

fs.writeFile('logo.png', imagedata, 'binary', function(err){ 
     if (err) throw err 
     console.log('File saved.') 
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 />') 
0

在Web浏览器就基本不能做你不能直接写该文件系统(可能与浏览器扩展,但我没有看过这段时间)。

使用节点没有什么能阻止你做这样的事情:

  • 使用HTTP来获取HTML
  • 使用jQuery解析HTML - 像$(html).find('img');
  • 生成一个HTTP请求到每个图像下载它们
  • 使用fs将其保存到磁盘