資格情報を使用して Web サイトにアクセスし、puppeter を使用して PDF をダウンロードしようとしています。puppeteer を使用して pdf の URL を取得しましたが、今は node-fetch を使用してそのページにアクセスしたいと考えています。PDFページを取得するには、オプションにセッションデータを含める必要がありますが、正しい方法で行っているかどうかわかりません。
「credentials: 'include'」を使用して、page.cookies で Cookie を取得し、フェッチで送信されるオプションにその他の小さな変更を加えてみました。
var response = await page.goto(urlPdf);
var headersPup = response.request().headers();
const { cookies } = await page._client.send("Network.getAllCookies", {});
const sessionFreeCookies = cookies.map((cookie) => {
return {
...cookie,
expires: Date.now() / 1000 + 10 * 60,
session: false
};
});
headersPup['Cookie'] = sessionFreeCookies; //adding the cookies to header
headersPup['Content-Type'] = 'application/pdf';//adding content-type
var opts = {
method: "GET",
headers: headersPup,
credentials: "include",
}
await fetch(urlPdf,opts).then(response => response
.body.pipe(fs.createWriteStream('test4.pdf'))
.on('close', () => console.log('pdf downloaded')));
test4 を txt として開くと、ログイン ページの html が表示されます。これは、セッションが失われたことを意味します。セッションを維持して PDF をダウンロードするにはどうすればよいですか?