node.js - 如何使用node-fs从url将图像保存到本地

标签 node.js save cheerio

这里的 Node 初学者,似乎无法找到一个简单的答案。 使用 Cheerio 我抓取了一些图像的 url,该部分工作正常,然后我想将这些图像保存到 output 文件夹中。我可以获取图像网址,但似乎无法弄清楚如何在本地保存实际图像。不确定我是否需要使用 streamhttps 或者什么。这是我所拥有的:

const cheerio = require('cheerio');
const request = require('request');
const fs = require("fs");

const myWebsite = 'https://www.loremipsum.com';

request(myWebsite, function (error, response, body) {

     let $ = cheerio.load(body);

     $('div').each(function(i, element){
          if($(this).css('background-image')){

              //get the image url from a div w a bg image style
              let pic = $(this).css('background-image').replace('url(','https:').replace(')','').replace(/\"/gi, "");

              filename = pic + '.png'
              //!!!WRITE filename TO output DIRECTORY HERE with node fs?!!!
              }
           }
        })
    });

如果有人能指出我正确的方向,我将不胜感激,谢谢!

最佳答案

我想这可能对你有帮助。

request.get('image url')
.on('error',function(err){
 console.log(err);
})
.on('response',function(response){
 if(response.statusCode == 200){
  console.log("successfully retreived image from url");
 }
})
.pipe(fs.createWriteStream('your destination folder path' + filename));

关于node.js - 如何使用node-fs从url将图像保存到本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56585655/

相关文章:

javascript - Node.js 机器人与 Cheerio

javascript - 我可以检查我的 API key 是否充分隐藏在 Node.js 中以推送到 github 吗?

javascript - Sequelize 和 Typescript 的外键

git:如何创建我当前工作的一个分支,但保留在我原来的分支上

javascript - 完成加载/重定向后抓取页面

node.js - 如何使用cheerio循环结果

javascript - 使用 Node.js 和 Express.js 在 MySQL 中删除给定值数组的多行

javascript - 将 HTML 转换为 PDF 分页

excel - VBA 另存为方法

android 为位图命名并保存