Приветсвую уважаемое сообщество.
Это мой первый опыт с puppeteer и подобным ПО, так что не судите строго
Пытаюсь скачать ПДФ и чего то недопонимаю как его до конца доделать
У меня есть ссылка, переход по которой вызывает редирект на сервис генерации ПДФ
В браузере отслеживаю успешгый редирект, появляется страничка с готовым ПДФ но дальше браузер останавливается и все -
сохранения не происходит и браузер не закрывается
browser.close(); не срабатывает
В чем прикол может быть? Я пытался page.waitForNavigation(), тоже до лампочки
(async () => {
const cookiesString = await fs.readFile(path.join(__dirname, '/../tmp/cookies.json'));
const cookies = JSON.parse(cookiesString);
const browser = await puppeteer.launch({
headless: false,
});
const page = await browser.newPage();
await page.setCookie(...cookies);
await page.goto(url);
console.log(page.url())
// url = https://www.copart.com/invoice/pdf?invoiceNumber=*******&paymentType=U¤cyCode=USD....'
// происходит редирект на сторонний сервис который генерит ПДФ,
// например как ссылка в комменте ниже, по ней отдается уже готовый ПДФ
// https://services.copart.com/pdf-ws/pdf/********?st=JKQXU5UXNvf-MrzVKANNvg&e=15997
// теперь я пытаюсь сохранить полученый результат в файл
const file = await page.pdf({
path: path.join(__dirname, '/../invoices'),
format: 'A4'
});
await browser.close();
})();
Я посмотрел заголовки
const response = await page.goto(url);
console.log(response.headers())
возвращается 'content-type': 'application/pdf'
page.pdf().catch(e=>console.log(e)); возвращает ошибку
Error: Protocol error (Page.printToPDF): PrintToPDF is not implemented at Promise (/home/alex/www/driver/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:208:63) at new Promise () at CDPSession.send (/home/alex/www/driver/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:207:16) at Page.pdf (/home/alex/www/driver/node_modules/puppeteer/lib/cjs/puppeteer/common/Page.js:1152:43) at /home/alex/www/driver/bin/downloadInvoice.js:25:29 at process._tickCallback (internal/process/next_tick.js:68:7) message: 'Protocol error (Page.printToPDF): PrintToPDF is not implemented'