我目前正在使用request
包下载文件,使用以下代码:
request
.get({
url,
headers: {
Authorization: "base64"
}
})
.pipe(fs.createWriteStream('test.xlsx'))
这很好用,当认证是一个简单的用户名/密码或根本没有一个,但是一旦2因素认证进来,这将是一个真正的麻烦,因为这种方法无法跟踪您的cookie或登录状态(或者跟踪它)。
那么如何在puppeteer运行时获取缓冲区/数据然后将其传输到另一个文件流中(注意我需要递归地为几个文件执行此操作)。
答案 0 :(得分:0)
我认为您可以像这样从puppeteer构建cookie头:
cookies = await page.cookies();
cookie_str = "";
for(var i = 0; i < cookies.length; i+=1){
a = cookies[i];
cookie_str += a.name + "=" + a.value + ";";
}
,然后将request
与cookie标头一起使用:
request.get({
url: download_link,
headers: {
"cookie": cookie_str,
}
}).pipe(fs.createWriteStream("ofname"))