Est-il possible d’ouvrir un fichier html local avec chrome sans tête à l’aide de puppeteer (sans serveur Web)? Je ne pouvais que le faire fonctionner contre un serveur local.
Je pouvais voir setContent () api et goto () api et
Je viens de faire un test localement (vous pouvez voir que je l'ai fait sous Windows) et le marionnettiste a ouvert avec plaisir mon fichier html local en utilisant page.goto et une URL de fichier complète, et l'a enregistré au format PDF:
'use strict';
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('file://C:/Users/compoundeye/test.html');
await page.pdf({
path: 'test.pdf',
format: 'A4',
margin: {
top: "20px",
left: "20px",
right: "20px",
bottom: "20px"
}
});
await browser.close();
})();
Si vous devez utiliser un chemin relatif, vous voudrez peut-être examiner cette question à propos de l'utilisation des chemins de fichiers relatifs: Schéma d'Uri de fichier et fichiers relatifs
Si le fichier est en local, utiliser setContent sera meilleur que passer à goto
var contentHtml = fs.readFileSync('file://C:/Users/compoundeye/test.html', 'utf8');
await page. setContent(contentHtml);
Vous pouvez vérifier les performances entre setContent et goto à ici
Pourquoi ne pas ouvrir le fichier HTML lire le contenu, puis "setContent"
J'ouvre le fichier que je voulais charger dans le navigateur et copiais l'URL pour m'assurer que tous les fichiers étaient corrects.
await page.goto(`file:///C:/pup_scrapper/testpage/TM.html`);