Я пытаюсь использовать puppeteer для входа на веб-сайт и «загрузки» PDF непосредственно на мой диск. Мне удалось добраться до страницы PDF с кукловодом, и я попытался (между другими попытками) получить большой двоичный объект, используя fetch с файлами cookie для отправки на диск. Я не могу опубликовать здесь информацию для входа, но если бы вы могли помочь мне найти ошибку (или более) в коде, это было бы здорово! На данный момент он переходит на страницу до pdf, получает ссылку, загружает файлы cookie и вставляет pdf в дисковод, но pdf поврежден с 0 кб.
Я попробовал setRequestInterception, getPdf (от puppeteer) и использовал буфер с некоторыми вещами, которые я нашел в своем исследовании.
//Page before pdfPage. Here I got the link: urlPdf
//await page.goto(urlPdf);
//await page.waitForNavigation();
//const htmlPdf = await page.content();
const cookies = await page.cookies()
const opts = {
headers: {
cookie: cookies
}
};
let blob = await fetch(urlPdf,opts).then(r => r.blob());
console.log("pegou o blob")
// upload file in specific folder
var file ;
console.log("driveApi upload reached")
function blobToFile(req){
file = req.body.blob
//A Blob() is almost a File() - it's just missing the two properties below which we will add
file.lastModifiedDate = new Date();
file.name = teste.pdf;//req.body.word;
return file;
}
var folderId = myFolderId;
var fileMetadata = {
'name': 'teste.pdf',
parents: [folderId]
};
var media = {
mimeType: 'application/pdf',
body: file
};
drive.files.create({
auth: jwToken,
resource: fileMetadata,
media: media,
fields: 'id'
}, function(err, file) {
if (err) {
// Handle error
console.error(err);
} else {
console.log('File Id: ', file.data.id);
}
});