Puppeteer per il Web Scraping: guida passo passo

Ultimo aggiornamento il May 22, 2026

Se hai mai provato a estrarre dati da un sito che carica i contenuti mentre scorri, nasconde i prezzi dietro un login o sembra cambiare layout ogni due settimane, sai bene quanto possa essere frustrante. Gli scraper statici, ormai, non bastano più. Anzi, oltre il si affida oggi al web scraping per i dati alternativi, e automatizza il monitoraggio dei prezzi dei concorrenti. Ma il punto è questo: gran parte di quei dati vive su siti dinamici, caricati da JavaScript e nascosti dietro le interazioni dell’utente. È qui che entrano in gioco l’automazione del browser headless e strumenti come Puppeteer.

Avendo passato anni a sviluppare strumenti di automazione e AI (e sì, a fare scraping di una buona dose di siti per team sales e operations), ho visto in prima persona come Puppeteer possa sbloccare dati che gli scraper tradizionali si lasciano sfuggire. Ma ho visto anche quanto il codice possa diventare un ostacolo per chi lavora in azienda. In questa guida ti mostrerò esattamente cos’è uno scraper Puppeteer, come usarlo per il web scraping e quando potrebbe convenirti qualcosa di ancora più semplice, come , il nostro web scraper no-code basato su AI.

Cos’è Puppeteer Scraper? Una panoramica rapida

puppeteer-scraper-data-extraction-automation.png Partiamo dalle basi. è una libreria open-source per Node.js di Google che ti permette di controllare un browser Chrome o Chromium headless usando JavaScript. In parole semplici: è come avere un robot che può aprire pagine web, cliccare pulsanti, compilare moduli, scorrere e, soprattutto, estrarre dati, tutto senza mostrare nulla sullo schermo.

Perché Puppeteer è speciale?

  • Può renderizzare contenuti dinamici: in pratica aspetta che JavaScript finisca di caricare, proprio come farebbe un utente reale.
  • Può simulare le azioni dell’utente: clic, digitazione, scroll e persino la gestione dei popup.
  • È perfetto per fare scraping di siti in cui i dati compaiono solo dopo un’interazione, come inserzioni e-commerce, feed social o dashboard.

Come si confronta con altri strumenti?

  • Selenium: il veterano dell’automazione del browser. Funziona con molti browser e linguaggi, ma è più pesante e un po’ più datato. Ottimo per il test cross-browser, ma Puppeteer è più agile per progetti Chrome/Node.js.
  • Thunderbit: qui mi entusiasmo. Thunderbit è un web scraper no-code, basato su AI, che vive nel browser. Invece di scrivere script, ti basta cliccare “AI Suggest Fields” e lasciare che l’AI capisca cosa estrarre. È perfetto per chi in azienda vuole risultati senza codice (ne parleremo tra poco).

In breve: Puppeteer = controllo massimo (se sai programmare). Thunderbit = comodità massima (se non vuoi programmare).

Perché il web scraping con Puppeteer è importante per chi lavora in azienda

Diciamolo chiaramente: il web scraping non è più solo roba da hacker o data scientist. Team sales, operations, marketing e persino real estate usano i dati del web per avere un vantaggio. E con così tante informazioni critiche bloccate dietro siti dinamici, Puppeteer è spesso la chiave per sbloccarle.

Ecco alcuni casi d’uso concreti:

Caso d’usoChi ne beneficiaImpatto / ROI
Generazione di leadSales, Business DevelopmentAutomatizza la creazione di liste prospect; risparmia oltre 8 ore a settimana per commerciale (case study)
Monitoraggio prezziE-commerce, Product OpsTracciamento in tempo reale dei concorrenti; un’azienda ha risparmiato 3,8 milioni di dollari l’anno (source)
Ricerche di mercatoMarketing, Strategy, FinanceIl 67% dei consulenti finanziari usa dati estratti dal web; in alcuni casi il ROI arriva fino al 890% (source)
Aggregazione immobiliareAgenti, analistiEstrai dati da oltre 50 pagine immobiliari in pochi minuti, non in ore (source)
Monitoraggio della complianceOperations, LegalAutomatizza il controllo; una compagnia assicurativa ha evitato 50 milioni di dollari di sanzioni (source)

E non dimentichiamolo: dedica un quarto della settimana ad attività ripetitive come la raccolta dati. Automatizzare questo processo con il web scraping non è solo un vantaggio in più: è un vero vantaggio competitivo.

Per iniziare: configurare il tuo scraper Puppeteer

Pronto a rimboccarti le maniche? Ecco come far partire Puppeteer in meno di 10 minuti (ammesso che tu abbia un minimo di confidenza con JavaScript):

1. Installa Node.js
Puppeteer gira su Node.js. Scarica l’ultima versione LTS da .

2. Crea una nuova cartella di progetto
Apri il terminale ed esegui:

1mkdir puppeteer-scraper-demo
2cd puppeteer-scraper-demo
3npm init -y

3. Installa Puppeteer

1npm install puppeteer

Questo scaricherà anche una versione compatibile di Chromium (circa 100 MB).

4. Crea il tuo primo script
Crea un file chiamato scrape.js:

1const puppeteer = require('puppeteer');
2(async () => {
3  const browser = await puppeteer.launch();
4  const page = await browser.newPage();
5  await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
6  const title = await page.title();
7  console.log('Titolo della pagina:', title);
8  await browser.close();
9})();

Eseguilo con:

1node scrape.js

Se vedi “Titolo della pagina: Example Domain”, complimenti: hai appena automatizzato Chrome!

Costruire il tuo primo script di web scraping con Puppeteer

Passiamo alla pratica. Supponiamo che tu voglia estrarre delle citazioni da (un sito demo per gli scraper).

Passo 1: vai alla pagina

1await page.goto('http://quotes.toscrape.com', { waitUntil: 'networkidle0' });

Passo 2: estrai i dati

1const quotes = await page.evaluate(() => {
2  return Array.from(document.querySelectorAll('.quote')).map(node => ({
3    text: node.querySelector('.text')?.innerText.trim(),
4    author: node.querySelector('.author')?.innerText.trim(),
5    tags: Array.from(node.querySelectorAll('.tag')).map(tag => tag.innerText.trim())
6  }));
7});
8console.log(quotes);

Passo 3: gestisci la paginazione

1let hasNext = true;
2let allQuotes = [];
3while (hasNext) {
4  // Estrai le citazioni come sopra
5  const quotes = await page.evaluate(/* ... */);
6  allQuotes.push(...quotes);
7  const nextButton = await page.$('li.next > a');
8  if (nextButton) {
9    await Promise.all([
10      page.click('li.next > a'),
11      page.waitForNavigation({ waitUntil: 'networkidle0' })
12    ]);
13  } else {
14    hasNext = false;
15  }
16}

Passo 4: salva in JSON

1const fs = require('fs');
2fs.writeFileSync('quotes.json', JSON.stringify(allQuotes, null, 2));

Ed ecco fatto: uno scraper Puppeteer di base che naviga, estrae, gestisce la paginazione e salva i dati.

Tecniche avanzate per Puppeteer scraper: gestire contenuti dinamici

La maggior parte dei siti reali non è semplice come un elenco statico. Ecco come affrontare le situazioni più ostiche:

1. Attendere elementi dinamici

1await page.waitForSelector('.product-list-item');

Questo garantisce che il contenuto desiderato sia caricato prima di provare a estrarlo.

2. Simulare le azioni dell’utente

  • Cliccare un pulsante: await page.click('#load-more');
  • Digitare in un campo: await page.type('#search', 'laptop');
  • Scorrere per infinite scroll:
    1// Nota: page.waitForTimeout è stato rimosso in Puppeteer v22. Usa invece una semplice promise.
    2const sleep = (ms) => new Promise(r => setTimeout(r, ms));
    3let previousHeight = await page.evaluate('document.body.scrollHeight');
    4while (true) {
    5  await page.evaluate('window.scrollTo(0, document.body.scrollHeight)');
    6  await sleep(1500);
    7  const newHeight = await page.evaluate('document.body.scrollHeight');
    8  if (newHeight === previousHeight) break;
    9  previousHeight = newHeight;
    10}

1**3. Gestire i login**
2```javascript
3await page.goto('https://exampleshop.com/login');
4await page.type('#login-username', 'myusername');
5await page.type('#login-password', 'mypassword');
6await page.click('#login-button');
7await page.waitForNavigation({ waitUntil: 'networkidle0' });

4. Gestire dati caricati via AJAX A volte i dati non sono nel DOM ma arrivano da una chiamata API. Puoi intercettare le risposte di rete con:

1page.on('response', async response => {
2  if (response.url().includes('/api/products')) {
3    const data = await response.json();
4    // Elabora i dati
5  }
6});

Esempio reale: estrarre dati prodotto da un sito e-commerce

Mettiamo tutto insieme. Immagina di voler estrarre nomi prodotto, prezzi e immagini da un sito e-commerce (demo) dopo aver effettuato l’accesso.

1const puppeteer = require('puppeteer');
2const fs = require('fs');
3(async () => {
4  const browser = await puppeteer.launch({ headless: true });
5  const page = await browser.newPage();
6  // Passo 1: accedi
7  await page.goto('https://exampleshop.com/login');
8  await page.type('#login-username', 'myusername');
9  await page.type('#login-password', 'mypassword');
10  await page.click('#login-button');
11  await page.waitForNavigation({ waitUntil: 'networkidle0' });
12  // Passo 2: vai alla pagina della categoria
13  await page.goto('https://exampleshop.com/category/laptops', { waitUntil: 'networkidle0' });
14  // Passo 3: estrai i prodotti
15  const products = await page.evaluate(() => {
16    return Array.from(document.querySelectorAll('.product-item')).map(item => ({
17      name: item.querySelector('.product-title')?.innerText.trim() || '',
18      price: item.querySelector('.product-price')?.innerText.trim() || '',
19      image: item.querySelector('img.product-image')?.src || ''
20    }));
21  });
22  // Passo 4: salva in JSON
23  fs.writeFileSync('products.json', JSON.stringify(products, null, 2));
24  await browser.close();
25})();

Questo script effettua il login, naviga, estrae e salva tutto in automatico. Per esigenze più avanzate, puoi aggiungere cicli per la paginazione o persino aprire la scheda di ogni prodotto per raccogliere più dettagli.

Thunderbit: rendere lo scraper Puppeteer più semplice con l’AI

Se sei arrivato fin qui e stai pensando: “Bello, ma non voglio scrivere codice ogni volta che mi serve un nuovo dataset”, non sei il solo. È esattamente per questo che abbiamo creato .

Cosa rende Thunderbit diverso?

  • Nessun codice richiesto: installa semplicemente la , apri la pagina che vuoi estrarre e clicca “AI Suggest Fields”.
  • Rilevamento dei campi basato su AI: Thunderbit legge la pagina e suggerisce le colonne migliori da estrarre, come “Nome prodotto”, “Prezzo”, “Immagine” e così via.
  • Gestione dei contenuti dinamici: scroll infinito, popup e sottopagine? L’AI di Thunderbit può gestirli, cliccando attraverso la paginazione o visitando persino la pagina dettagli di ogni prodotto per arricchire i dati.
  • Export immediato: invia i dati direttamente a Excel, Google Sheets, Notion o Airtable con un solo clic. Nessun costo extra per l’export.
  • Template per i siti più popolari: devi estrarre dati da Amazon, Zillow o LinkedIn? Thunderbit ha template pronti all’uso, senza configurazione.
  • Scraping da cloud o da browser: per i lavori più grandi, Thunderbit può estrarre fino a 50 pagine in contemporanea nel cloud.

Ho visto utenti passare da “vorrei poter ottenere questi dati” a “ecco il mio foglio di calcolo” in meno di cinque minuti. E la cosa migliore? Niente più preoccupazioni per script che si rompono quando il sito cambia: l’AI di Thunderbit si adatta al volo.

Puppeteer vs Thunderbit: scegliere lo strumento giusto per il web scraping

Quindi, quale dovresti usare? Ecco come lo valuterei per i team:

FattorePuppeteer (codice)Thunderbit (no-code, AI)
Facilità d’usoRichiede JavaScript e conoscenza del DOMPunto e clic, l’AI suggerisce i campi
Velocità di setupDa ore a giorni per attività complesseMinuti: installa e via
Controllo/FlessibilitàMassimo: puoi scrivere logiche personalizzate e integrarlo con altro codiceAlto per i casi standard; meno adatto a workflow molto personalizzati
Contenuti dinamiciScript manuali per attese, clic e scrollL’AI integrata gestisce automaticamente contenuti dinamici, paginazione e sottopagine
ManutenzioneGli script sono tuoi: vanno aggiornati quando i siti cambianoL’AI si adatta ai cambi di layout; meno manutenzione per l’utente
Export dei datiDevi scrivere tu la logica di esportazioneExport con un clic verso Excel, Sheets, Notion, Airtable, CSV, JSON
Ideale perSviluppatori, scraping molto personalizzato o su larga scalaUtenti business, progetti rapidi, team non tecnici
CostoGratis (a parte il tuo tempo e l’infrastruttura)Piano gratuito disponibile; piani a pagamento basati su crediti (vedi Thunderbit Pricing)

In sintesi:

  • Usa Puppeteer se ti serve controllo totale, hai risorse di sviluppo o vuoi integrare lo scraping in un’app più ampia.
  • Usa Thunderbit se vuoi risultati rapidi, non vuoi programmare o devi dare potere a colleghi non tecnici.

Onestamente, ho visto team usare entrambi: Thunderbit per i risultati rapidi e la prototipazione, Puppeteer per integrazioni profonde o casi limite.

Checklist passo passo: come far partire con successo un progetto di web scraping con Puppeteer

scraping-project-checklist-steps.png Ecco la mia checklist di riferimento per un progetto di scraping con Puppeteer senza intoppi:

  1. Definisci gli obiettivi: di quali dati hai bisogno? Dove si trovano?
  2. Analizza il sito: è dinamico? Richiede login? Ci sono misure anti-bot?
  3. Configura l’ambiente: Node.js, Puppeteer e tutte le librerie di supporto.
  4. Scrivi una proof of concept: parti da una sola pagina e individua i selettori giusti.
  5. Gestisci i contenuti dinamici: usa waitForSelector, simula clic e scroll quando serve.
  6. Aggiungi paginazione o cicli: estrai tutte le pagine, non solo una.
  7. Implementa tecniche anti-blocco: randomizza i ritardi, imposta un vero User-Agent, usa proxy se necessario.
  8. Esporta e valida i dati: salva in JSON/CSV e controlla che tutto sia completo.
  9. Ottimizza e gestisci gli errori: aggiungi try/catch, registra l’avanzamento e gestisci i dati mancanti con grazia.
  10. Monitora e mantieni: i siti cambiano, quindi preparati ad aggiornare lo script.

Consigli per il troubleshooting:

  • Se i selettori restituiscono null, ricontrolla l’HTML e usa le attese.
  • Se vieni bloccato, rallenta, ruota gli IP o usa plugin stealth.
  • Se lo script va in crash, controlla eventuali memory leak o eccezioni non gestite.

Conclusione e punti chiave

Il web scraping è ormai una competenza indispensabile per i team data-driven. Puppeteer ti offre la potenza per estrarre dati anche dai siti più dinamici e ricchi di JavaScript, ma richiede un minimo di competenze di programmazione e manutenzione continua. Per chi in azienda vuole saltare il codice e arrivare subito ai dati, Thunderbit offre un’alternativa no-code basata su AI, veloce, flessibile e sorprendentemente robusta.

Ecco cosa ti consiglierei:

  • Se sei tecnico e hai bisogno di una personalizzazione profonda, parti da Puppeteer.
  • Se vuoi velocità, semplicità e meno manutenzione, prova (la è un ottimo punto di partenza).
  • Per la maggior parte dei team, una combinazione di entrambi coprirà il 99% delle esigenze di dati dal web.

Vuoi vedere altre guide come questa? Dai un’occhiata al per tutorial, confronti e le ultime novità sul web scraping basato su AI.

Prova Thunderbit AI Web Scraper

FAQ

1. Cos’è uno scraper Puppeteer e perché si usa per il web scraping?
Puppeteer è una libreria Node.js che ti permette di controllare un browser Chrome headless con JavaScript. Si usa per il web scraping perché può caricare contenuti dinamici, simulare le azioni dell’utente ed estrarre dati da siti che gli scraper tradizionali non riescono a gestire.

2. Come si confronta Puppeteer con Selenium e Thunderbit?
Selenium funziona con più browser e linguaggi, ma è più pesante. Puppeteer è più snello per Chrome/Node.js ed è più veloce in molte attività di scraping. Thunderbit, invece, è uno strumento no-code basato su AI che consente anche a chi non è tecnico di estrarre dati in pochi clic.

3. Quali sono i principali vantaggi business del web scraping con Puppeteer?
Automatizzare la raccolta dati fa risparmiare tempo, riduce gli errori e permette insight in tempo reale per sales, marketing, operations e altro ancora. I casi d’uso vanno dalla generazione di lead al monitoraggio prezzi e alle ricerche di mercato.

4. Quali sono le sfide principali nello scraping con Puppeteer?
Le sfide principali sono gestire i contenuti dinamici, evitare i blocchi anti-bot e mantenere gli script quando i siti cambiano. Dovrai scrivere codice per gestire le attese, simulare le interazioni e trattare gli errori.

5. Quando dovrei usare Thunderbit invece di Puppeteer?
Usa Thunderbit se vuoi evitare di programmare, se ti servono risultati rapidi o se vuoi aiutare i colleghi non tecnici. È ideale per attività di scraping standard, progetti rapidi o quando vuoi esportare dati in Excel o Google Sheets con il minimo sforzo.

Pronto a provare un modo più intelligente di fare scraping? oppure approfondisci con altre guide nel . Buon scraping!

Scopri di più

Shuai Guan
Shuai Guan
CEO di Thunderbit | Esperto di automazione dei dati con IA Shuai Guan è CEO di Thunderbit e laureato in Ingegneria presso l’Università del Michigan. Forte di quasi un decennio di esperienza nel settore tech e nell’architettura SaaS, è specializzato nel trasformare modelli di IA complessi in strumenti pratici, no-code, per l’estrazione dei dati. In questo blog condivide insight diretti, provati sul campo, su web scraping e strategie di automazione, per aiutarti a creare workflow più intelligenti e basati sui dati. Quando non ottimizza i flussi di lavoro dei dati, applica la stessa attenzione ai dettagli alla sua passione per la fotografia.
Topics
Puppeteer scraperPuppeteer web scraping

Prova Thunderbit

Estrai lead e altri dati in soli 2 clic. Potenziato dall'AI.

Ottieni Thunderbit È gratis
Estrai dati con l'AI
Trasferisci facilmente i dati su Google Sheets, Airtable o Notion
PRODUCT HUNT#1 Product of the Week