Enregistrer une page web en pdf (Scrapping)

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
qwentine
Messages : 1
Enregistré le : 21 avr. 2020, 19:12

Enregistrer une page web en pdf (Scrapping)

Message par qwentine » 21 avr. 2020, 19:36

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();
}

Avatar du membre
webmaster
Administrateur du site
Messages : 563
Enregistré le : 28 févr. 2017, 15:19

Re: Enregistrer une page web en pdf (Scrapping)

Message par webmaster » 22 avr. 2020, 10:42

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
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Répondre