繁体   English   中英

如何使用javascript从网站上抓取图像?

[英]How to scrape images from a site using javascript?

我正在尝试用 javascript 编写一个脚本来从网站上抓取图像并将它们保存到我的计算机上。

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

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

我的问题是我现在如何将此图像保存到我的计算机上?

我尝试搜索,但我得到的所有结果都是关于制作下载按钮或其他面向用户的任务。 需要明确的是,我将是唯一一个运行此脚本的人,它将通过将其粘贴到控制台中来运行。

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

编辑:有人可以解释为什么会收到这么多反对票吗?

试试 fs 库

fs.writeFile('logo.png', imagedata, 'binary', function(err){
        if (err) throw err
        console.log('File saved.')

这将适用于您页面上的每张图片,这些图片是锚点的直接子代,但您可以使用:

'$('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 />')

在网络浏览器中,它基本上无法完成,您不能直接写入文件系统(使用浏览器扩展可能是可能的,但我有一段时间没有看过这个)。

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

  • 使用 http 检索 HTML
  • 使用 jQuery 解析 html - 类似于$(html).find('img');
  • 为每个图像生成一个 http 请求以下载它们
  • 使用 fs 将其保存到磁盘

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM