Per utilizzare Puppeteer nel tuo progetto, devi prima installarlo.
Installazione
npm i puppeteer
# or "yarn add puppeteer"
Quando installi Puppeteer, viene scaricata una versione recente di Chromium (~170 MB per Mac, circa 282 MB di Linux, ~ 280 MB di vincita), il cui funzionamento è garantito con l'API. Per saltare il download, eseguire il download in un altro percorso o scaricare un browser diverso, consulta Variabili di ambiente.
burattini
Dalla versione 1.7.0, pubblichiamo il pacchetto puppeteer-core
. Questa versione di Puppeteer non scarica nessun browser per impostazione predefinita.
npm i puppeteer-core
# or "yarn add puppeteer-core"
puppeteer-core
è destinato a essere una versione leggera di Puppeteer per avviare l'installazione di un browser esistente o per la connessione a una versione remota. Assicurati che la versione di puppeteer-core che installi sia compatibile con il browser a cui intendi connetterti.
Vedi puppeteer e puppeteer-core.
Utilizzo
Puppeteer segue l'ultima versione di manutenzione LTS del nodo.
Puppeteer probabilmente ha familiarità con le persone che utilizzano altri framework di test dei browser.
Puoi creare un'istanza di Browser
, aprire le pagine e poi manipolarle con
l'API di Pupeteer.
Salva uno screenshot
Ad esempio, per accedere a https://example.com
e salvare uno screenshot come
example.png
, salva il seguente codice in example.js
.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'example.png' });
await browser.close();
})();
Puppeteer imposta le dimensioni iniziali della pagina su 800 × 600 px, che definisce le dimensioni dello screenshot. Le dimensioni della pagina possono essere personalizzate con Page.setViewport().
Crea un PDF
Salva il file come hn.js
.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {
waitUntil: 'networkidle2',
});
await page.pdf({ path: 'hn.pdf', format: 'a4' });
await browser.close();
})();
Esegui lo script dalla riga di comando:
node hn.js
Vedi Page.pdf() per ulteriori informazioni sulla creazione di file PDF.
Valuta lo script nel contesto della pagina
Salva file come get-dimensions.js
:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
// Get the "viewport" of the page, as reported by the page.
const dimensions = await page.evaluate(() => {
return {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
deviceScaleFactor: window.devicePixelRatio,
};
});
console.log('Dimensions:', dimensions);
await browser.close();
})();
Esegui lo script dalla riga di comando:
node get-dimensions.js
Consulta Valutazione di JavaScript per ulteriori informazioni sulla valutazione e sui metodi correlati come evaluateOnNewDocument
e exposeFunction
.
Impostazioni di runtime predefinite
Usa la modalità headless
Puppeteer avvia Chromium in modalità headless. Per avviare una versione completa di Chromium, imposta l'opzione headless
all'avvio di un browser:
const browser = await puppeteer.launch({ headless: false }); // default is true
Esegue una versione in bundle di Chromium
Per impostazione predefinita, Puppeteer scarica e utilizza una versione specifica di Chromium, per garantire il funzionamento immediato della sua API. Per utilizzare Puppeteer con una versione diversa di Chrome o Chromium, inserisci il percorso dell'eseguibile durante la creazione di un'istanza Browser
:
const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome' });
Puoi utilizzare Puppeteer anche con Firefox Nightly (supporto sperimentale).
Per ulteriori informazioni, visita la pagina Puppeteer.launch()
.
Per ulteriori informazioni:
- Qual è la differenza tra Chromium e Chrome? di How-To Geek.
- La documentazione di Chromium descrive alcune differenze per gli utenti Linux.
Crea un nuovo profilo utente
Puppeteer crea il proprio profilo utente nel browser, che pulisce a ogni esecuzione.
Passaggi successivi
- Scopri di più su Headless Chrome.
- Esamina gli esempi.