Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下载';数据:';使用puppeter和node.js的图像/文件_Javascript_Node.js_Puppeteer - Fatal编程技术网

Javascript 下载';数据:';使用puppeter和node.js的图像/文件

Javascript 下载';数据:';使用puppeter和node.js的图像/文件,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我正在尝试使用node.js和puppeter下载图像,但遇到了一些问题。我正在使用webscraper从站点收集图像链接,然后使用https/http包下载图像 这适用于使用http和https源的图像,但有些图像的链接如下所示(整个链接很长,所以我删掉了其余部分): 数据:图像/png;base64,Ivborw0KggoaaaAnsuhueugaaw8aaadgcayaacu07w3aaazuuleqvr4ae3dF4Yu930N8PCSlu1Okdo1CLRTD+G8RNCvry6247

我正在尝试使用node.js和puppeter下载图像,但遇到了一些问题。我正在使用webscraper从站点收集图像链接,然后使用https/http包下载图像

这适用于使用http和https源的图像,但有些图像的链接如下所示(整个链接很长,所以我删掉了其余部分):

数据:图像/png;base64,Ivborw0KggoaaaAnsuhueugaaw8aaadgcayaacu07w3aaazuuleqvr4ae3dF4Yu930N8PCSlu1Okdo1CLRTD+G8RNCvry6247K5Ng5S5Hol5HA2UZ7Nv6UZ7UZ7Nv7Nv0Cwkeq9Erqr8NizuvibNTBS886RBZWCGHVSNEFR5BlopCzN2b+YZmlyap


我不知道如何处理这些链接或如何下载图像。任何帮助都将不胜感激。

您需要首先使用node.js
Buffer对base64中的url进行解码

//必须先删除内容类型image/png
常数数据='IVBORW0KGGOAAAANSUHEUGAAAW8AAADGCAYAAACU07W3AAAZUULEQVR4AE3DYU930N8PCSLU1UKDO1CLRTD+G8RNCVRY6247K5NG5S5HOL5HA2UZ7Nv2B9ERQRIHNR8NIZUVIBNTBS886RBZWCGHVSNEQ5BLOPCZMGN2B+YZMLYAP';
常量缓冲区=新缓冲区(数据);
const base64data=buff.toString('base64');
//在此之后,您将获得url字符串并继续获取图像

首先需要使用node.js
Buffer对base64中的url进行解码

//必须先删除内容类型image/png
常数数据='IVBORW0KGGOAAAANSUHEUGAAAW8AAADGCAYAAACU07W3AAAZUULEQVR4AE3DYU930N8PCSLU1UKDO1CLRTD+G8RNCVRY6247K5NG5S5HOL5HA2UZ7Nv2B9ERQRIHNR8NIZUVIBNTBS886RBZWCGHVSNEQ5BLOPCZMGN2B+YZMLYAP';
常量缓冲区=新缓冲区(数据);
const base64data=buff.toString('base64');
//在此之后,您将获得url字符串并继续获取图像

这些是base64编码图像(主要用于图标和小图像)

你可以忽略它

if(url.startsWith('data:')){
//基本64图像
}否则{
//图像url
}
如果你真的想搞乱base64,我可以给你一个解决办法

从“dauria”导入{parseDataURI};
从“mime类型”导入mime类型;
const fileContent=parseDataURI(文件);
//您可能需要该图像的扩展。
让ext=mimeTypes.extension(fileContent.MIME)| |“bin”;
fs.writeFile(“随机文件”+”+ext,fileContent.buffer,函数(err){
console.log(err);//写出的文件没有错误,但它不是有效的映像
});

这些是base64编码图像(主要用于图标和小图像)

你可以忽略它

if(url.startsWith('data:')){
//基本64图像
}否则{
//图像url
}
如果你真的想搞乱base64,我可以给你一个解决办法

从“dauria”导入{parseDataURI};
从“mime类型”导入mime类型;
const fileContent=parseDataURI(文件);
//您可能需要该图像的扩展。
让ext=mimeTypes.extension(fileContent.MIME)| |“bin”;
fs.writeFile(“随机文件”+”+ext,fileContent.buffer,函数(err){
console.log(err);//写出的文件没有错误,但它不是有效的映像
});