如何使用来自 urls 的 node-fs 在本地保存图像
How to save images locally with node-fs from urls
这里是节点初学者,似乎无法为此找到直接的答案。
我使用 cheerio 抓取了一些 url 的图像,该部分工作正常,然后我想将这些图像保存到 output
文件夹中。我可以抓取图像 url,但似乎无法弄清楚如何在本地保存实际图像。不确定我是否需要使用 stream
或 https
或什么。这是我拥有的:
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));
这里是节点初学者,似乎无法为此找到直接的答案。
我使用 cheerio 抓取了一些 url 的图像,该部分工作正常,然后我想将这些图像保存到 output
文件夹中。我可以抓取图像 url,但似乎无法弄清楚如何在本地保存实际图像。不确定我是否需要使用 stream
或 https
或什么。这是我拥有的:
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));