Page 1 sur 1

Enregistrer une page web en pdf (Scrapping)

Posté : 21 avr. 2020, 19:36
par qwentine
Bonjours je suis bloqué sur un script qui me permettrait d'enregistrer plusieurs page web en pdf.
Pour cela j'utilise la librairie node Puppeteer

J'ai réussi à faire tourner la fonction pour une page, mais lorsque je rajoute une boucle, il me sauvegarde uniquement la dernière page web de ma liste (cf la dernière région dans l'exemple)

Je comprends pas ... Est ce que vous pouvez m'aider svp ? :)
Je précise que je suis novice en JS

Merci !

Code : Tout sélectionner

const puppeteer = require('puppeteer');

var liste = ["Grand_Est","Région_Bretagne","Occitanie_(région_administrative)"];
var i = 0;
var debut ="https://fr.wikipedia.org/wiki/";
var lien ="nul";
var region ="nul";


async function getPic() {
  const browser = await puppeteer.launch(); 
  const page = await browser.newPage();
  await page.goto(lien);
  await page.waitFor("body");
  await page.emulateMediaType('screen');
  await page.pdf({path: region+'.pdf'});
  await browser.close();
}


for (i = 0; i < 3; i++) {
region= liste[i];
lien = debut + region;
getPic();
}

Re: Enregistrer une page web en pdf (Scrapping)

Posté : 22 avr. 2020, 10:42
par webmaster
Bonjour,

La fonction getPic() est une fonction asynchrone
Je suppose qu'il faut lui laisser le temps de se terminer.
Peut etre avec un appel
await getPic();
dans la boucle