通过木偶操作员下载文件,需要维护cookie /状态

时间:2017-11-02 05:19:34

标签: node.js chromium headless-browser puppeteer

我目前正在使用request包下载文件,使用以下代码:

request
    .get({
        url,
        headers: {
            Authorization: "base64"
        }
    })
    .pipe(fs.createWriteStream('test.xlsx'))

这很好用,当认证是一个简单的用户名/密码或根本没有一个,但是一旦2因素认证进来,这将是一个真正的麻烦,因为这种方法无法跟踪您的cookie或登录状态(或者跟踪它)。

那么如何在puppeteer运行时获取缓冲区/数据然后将其传输到另一个文件流中(注意我需要递归地为几个文件执行此操作)。

1 个答案:

答案 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"))