it-swarm.com.de

Lokale HTML-Datei mit dem Puppenspieler öffnen

Kann man mit dem Puppenspieler (ohne Webserver) eine lokale HTML-Datei mit Headless Chrome öffnen? Ich konnte es nur für lokale Server öffnen.

Ich konnte setContent () api und goto () api und sehen 

  1. page.goto: funktionierte nicht mit lokaler Datei oder Datei: //.
  2. page.setContent: ist für die HTML-Zeichenfolge
11
Anil Namde

Ich habe gerade einen lokalen Test durchgeführt (Sie können sehen, dass ich dies unter Windows gemacht habe) und der Puppenspieler öffnete meine lokale HTML-Datei glücklich mit page.goto und einer vollständigen Datei-URL und speicherte sie als 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();    
})();

Wenn Sie einen relativen Pfad verwenden müssen, sollten Sie sich diese Frage zur Verwendung relativer Dateipfade ansehen: Datei-Uri-Schema und relative Dateien

10
compound eye

Wenn die Datei lokal ist, ist die Verwendung von setContent besser als goto

var contentHtml = fs.readFileSync('file://C:/Users/compoundeye/test.html', 'utf8');
await page. setContent(contentHtml);    

Sie können die Leistung zwischen setContent und goto unter hier überprüfen

2
ChuongTran

Warum nicht die HTML-Datei öffnen, den Inhalt lesen, dann "setContent"

2

Ich öffne die Datei, die ich in den Browser laden wollte, und kopierte die URL, um sicherzustellen, dass alle\'s richtig sind.

await page.goto(`file:///C:/pup_scrapper/testpage/TM.html`);
0
Hellonearthis