La guida definitiva al Web Scraping con JavaScript e Node.js

Ultimo aggiornamento il July 8, 2026
La guida definitiva al Web Scraping con JavaScript e Node.js

Torniamo indietro di qualche anno: io alla scrivania, caffè in mano, davanti a un foglio di calcolo più vuoto del frigo di domenica sera. Il commerciale vuole i prezzi dei concorrenti, il marketing reclama nuovi lead, le operations chiedono le schede prodotto da una dozzina di siti — e tutto, ovviamente, per ieri. So che quei dati esistono. Il problema è andarli a prendere. Se ti sei mai sentito intrappolato in una partita digitale di acchiappa-la-talpa fatta di copia e incolla, benvenuto nel club.

Salto al presente: lo scenario è un altro pianeta. Il web scraping è passato da hobby smanettone a leva di business vera e propria, e JavaScript con Node.js sono finiti in prima fila, a far girare di tutto: dagli script usa-e-getta alle pipeline dati complete. Resta un però: gli strumenti sono più potenti che mai, ma la curva d’apprendimento può ancora sembrare l’Everest scalato in infradito. Quindi, che tu sia un business user, un appassionato di dati o semplicemente uno stanco dell’inserimento manuale, questa guida è per te. Ti racconto l’ecosistema, le librerie che contano, i punti dolenti e perché, ogni tanto, la mossa più intelligente è lasciare il lavoro pesante all’AI.

Perché il Web Scraping con JavaScript e Node.js conta per il business

Partiamo dal “perché”. Nel 2026 i dati dal web non sono più un lusso: sono benzina. Da ricerche recenti, il 73% delle aziende attribuisce ai dati pubblici del web decisioni più rapide e accurate e circa il 42% dei budget aziendali per i dati finisce oggi nella raccolta di dati web. Il mercato dei dati alternativi, che include il web scraping, vale già 4,9 miliardi di dollari ed è in piena corsa.

Cosa alimenta questa febbre dell’oro? Ecco i casi d’uso aziendali più comuni:

data-scraping-application-use-cases-overview.png

  • Prezzi competitivi ed e-commerce: i retailer estraggono prezzi e disponibilità dai siti dei concorrenti, a volte spingendo le vendite del 4% o più.
  • Lead generation e sales intelligence: i team sales automatizzano la raccolta di email, numeri di telefono e dettagli aziendali da directory e piattaforme social.
  • Ricerche di mercato e aggregazione di contenuti: gli analisti raccolgono notizie, recensioni e dati di sentiment per fiutare trend e fare previsioni.
  • Advertising e ad tech: le aziende ad tech tengono d’occhio in tempo reale i posizionamenti pubblicitari e le campagne dei concorrenti.
  • Immobiliare e travel: le agenzie estraggono annunci, prezzi e recensioni per alimentare modelli di valutazione e analisi di mercato.
  • Aggregatori di contenuti e dati: le piattaforme uniscono dati da più fonti per far girare strumenti di confronto e dashboard.

JavaScript e Node.js sono diventati lo stack di riferimento per questi compiti, soprattutto perché sempre più siti puntano su contenuti dinamici renderizzati in JavaScript. Node.js va forte sulle operazioni asincrone, il che lo rende perfetto per lo scraping su larga scala. E con un ecosistema di librerie vivace come pochi, ci costruisci di tutto: dallo script al volo allo scraper robusto pronto per la produzione.

Che cos’è il data scraping e come farlo nel 2025 Get Started Free

Il flusso di lavoro di base: come funziona il Web Scraping con JavaScript e Node.js

Sbroghiamo il tipico flusso di lavoro dello scraping. Che tu stia estraendo da un blog spartano o da un e-commerce zeppo di JavaScript, i passaggi sono più o meno questi:

web-data-extraction-process-diagram.png

  1. Invia la richiesta: con un client HTTP recuperi la pagina (per esempio axios, node-fetch o got).
  2. Ricevi la risposta: ti torna l’HTML (o, a volte, JSON) dal server.
  3. Gestisci i contenuti dinamici: se la pagina la renderizza JavaScript, usa un browser headless (come Puppeteer o Playwright) per eseguire gli script e ottenere il contenuto finale.
  4. Analizza HTML/DOM: con un parser (cheerio, jsdom) trasformi l’HTML in una struttura interrogabile.
  5. Estrai i dati: con selettori o regex tiri fuori i campi che ti servono.
  6. Archivia i dati: salvi i risultati in un file, in un database o su un servizio cloud.

Ogni passaggio ha i suoi strumenti e le sue best practice, che vediamo a breve.

Librerie HTTP essenziali per il Web Scraping in JavaScript

Il primo gradino di qualsiasi scraper è fare richieste HTTP. Node.js offre un ventaglio di opzioni, alcune storiche, altre moderne. Ecco una carrellata delle più usate:

1. Axios

Un client HTTP basato su promesse per Node e browser. È il coltellino svizzero per la maggior parte dei lavori di scraping.

const axios = require('axios');
const response = await axios.get('https://example.com/api/items', { timeout: 5000 });
console.log(response.data);

Pro: ricco di funzioni, supporta async/await, parsing JSON automatico, interceptor e proxy.

Contro: un po’ più pesante, e a volte gestisce i dati in modo “magico”.

2. node-fetch

Porta l’API fetch del browser dentro Node.js. Minimale e moderno.

import fetch from 'node-fetch';
const res = await fetch('https://api.github.com/users/github');
const data = await res.json();
console.log(data);

Pro: leggero, API familiare per chi arriva dal frontend JavaScript.

Contro: poche funzioni, gestione manuale degli errori, configurare il proxy è verboso.

3. SuperAgent

Una libreria HTTP di lungo corso con API concatenabile.

const superagent = require('superagent');
const res = await superagent.get('https://example.com/data');
console.log(res.body);

Pro: matura, supporta form, upload di file e plugin.

Contro: l’API mostra qualche ruga, dipendenza piuttosto grande.

4. Unirest

Un client HTTP semplice e indipendente dal linguaggio.

const unirest = require('unirest');
unirest.get('https://httpbin.org/get?query=web')
  .end(response => {
    console.log(response.body);
  });

Pro: sintassi facile, ottimo per gli script al volo.

Contro: meno funzioni, community meno viva.

5. Got

Un client HTTP veloce e robusto per Node.js con funzioni avanzate.

import got from 'got';
const html = await got('https://example.com/page').text();
console.log(html.length);

Pro: veloce, supporta HTTP/2, retry e stream.

Contro: solo per Node, e l’API può risultare densa per chi è alle prime armi.

6. http/https integrati in Node

Si può sempre tornare al metodo classico:

const https = require('https');
https.get('https://example.com/data', (res) => {
  let data = '';
  res.on('data', chunk => { data += chunk; });
  res.on('end', () => {
    console.log('Lunghezza della risposta:', data.length);
  });
});

Pro: zero dipendenze.

Contro: verboso, tutto a colpi di callback, niente promesse.

Qui trovi un confronto dettagliato di funzioni e snippet di codice.

Come scegliere il client HTTP giusto per il tuo progetto

Come si fa a scegliere lo strumento giusto? Ecco cosa guardo io:

  • Facilità d’uso: Axios e Got brillano con async/await e una sintassi pulita.
  • Prestazioni: Got e node-fetch sono leggeri e rapidi nello scraping ad alta concorrenza.
  • Supporto proxy: Axios e Got rendono indolore la rotazione dei proxy.
  • Gestione errori: Axios solleva eccezioni sugli errori HTTP di default; node-fetch richiede controlli a mano.
  • Community: Axios e Got hanno community attive e una valanga di esempi.

I miei consigli lampo:

  • Script o prototipi rapidi: node-fetch o Unirest.
  • Scraping in produzione: Axios (per le funzioni) o Got (per le prestazioni).
  • Automazione del browser: Puppeteer o Playwright gestiscono le richieste internamente.

Parsing HTML ed estrazione dei dati: Cheerio, jsdom e dintorni

Una volta in mano l’HTML, devi trasformarlo in qualcosa di davvero lavorabile. Entrano in scena i parser.

Cheerio

Immagina Cheerio come jQuery per il server. È veloce, leggero e perfetto per l’HTML statico.

const cheerio = require('cheerio');
const $ = cheerio.load('<ul><li class="item">Item 1</li></ul>');
$('.item').each((i, el) => {
  console.log($(el).text());
});

Pro: velocissimo, API familiare, regge bene l’HTML disordinato.

Contro: non esegue JavaScript — vede solo ciò che c’è già nell’HTML.

Scopri di più sulla velocità e sui casi d’uso di Cheerio.

View media

jsdom

jsdom simula in Node.js un DOM simile a quello del browser. Esegue script semplici ed è più “browser-like” di Cheerio.

const { JSDOM } = require('jsdom');
const dom = new JSDOM(`<p id="greet">Hello</p><script>document.querySelector('#greet').textContent += ", world!";</script>`);
console.log(dom.window.document.querySelector('#greet').textContent);

Pro: esegue script, supporta l’intera API DOM.

Contro: più lento e pesante di Cheerio, e non è un browser vero e proprio.

Confronta Cheerio e jsdom nel dettaglio.

Quando usare le espressioni regolari o altri metodi di parsing

Le regex nello scraping sono come la salsa piccante: deliziose con moderazione, un disastro se le versi su tutto. Sono utili per:

  • Estrarre pattern dal testo (email, numeri di telefono, prezzi).
  • Pulire o validare i dati estratti.
  • Recuperare dati da blocchi di testo o tag script.

Esempio: estrarre un numero dal testo

const text = "Vendite totali: 1.234 unità";
const match = text.match(/([\d.,]+)\s*unità/);
if (match) {
  const units = parseInt(match[1].replace(/\./g, '').replace(/,/g, ''));
  console.log("Unità vendute:", units);
}

Ma non provare a fare il parsing di un intero HTML con le regex: per quello esiste un parser DOM. Altri consigli sulle regex per lo scraping.

Gestire siti dinamici: Puppeteer, Playwright e browser headless

I siti moderni vanno matti per JavaScript. A volte i dati che cerchi non sono nell’HTML iniziale: li disegnano gli script dopo il caricamento. Qui entrano in gioco i browser headless.

Puppeteer

Una libreria Node.js di Google che pilota Chrome/Chromium. È come avere un robot che clicca e scorre le pagine al posto tuo.

const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const title = await page.$eval('h1', el => el.textContent);
console.log(title);
await browser.close();

Pro: rendering completo di Chrome, API facile, ottimo per i contenuti dinamici.

Contro: solo Chromium, più esoso di risorse.

Approfondisci i punti di forza di Puppeteer.

Playwright

Una libreria più recente di Microsoft: Playwright supporta Chromium, Firefox e WebKit. È un po’ il cugino più sveglio e multi-browser di Puppeteer.

const { chromium } = require('playwright');
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const content = await page.textContent('h1');
console.log(content);
await browser.close();

Pro: multi-browser, contesti paralleli, attesa automatica degli elementi.

Contro: curva d’apprendimento un filo più ripida, installazione più corposa.

Perché Playwright sta guadagnando terreno.

Nightmare

Uno strumento di automazione basato su Electron che anni fa andava forte. Il repository è finito nell’organizzazione GitHub segment-boneyard — il cimitero dove Segment parcheggia i progetti che non segue più — e l’ultima release su npm risale al 2019. Nel 2026 non lo userei per niente di nuovo; se erediti uno script che lo usa ancora, pazienza, ma per un progetto da zero punta dritto su Playwright o Puppeteer.

Confronto tra le soluzioni di browser headless

AspettoPuppeteer (Chrome)Playwright (multibrowser)Nightmare (Electron)
Supporto browserChrome/EdgeChrome, Firefox, WebKitChrome (vecchio)
Prestazioni e scalaVeloce, ma pesanteVeloce, parallelismo migliorePiù lento, meno stabile
Scraping dinamicoEccellenteEccellente + più funzioniBuono sui siti semplici
ManutenzioneBen mantenutoMolto attivoArchiviato (segment-boneyard, ultimo publish npm nel 2019)
Ideale perScraping su ChromeProgetti complessi, cross-browserAttività semplici e legacy

Il mio consiglio: Playwright per i progetti nuovi e complessi. Puppeteer resta ottimo per i compiti solo Chrome. Nightmare ormai è più che altro nostalgia o script ereditati.

Strumenti di supporto: pianificazione, ambiente, CLI e archiviazione dei dati

Uno scraper vero è molto più di un fetch e un parse. Ecco alcuni strumenti di supporto su cui faccio affidamento:

Pianificazione: node-cron

Programma gli scraper perché partano da soli.

const cron = require('node-cron');
cron.schedule('0 9 * * MON', () => {
  console.log('Scraping alle 9:00 ogni lunedì');
});

Node-cron è perfetto per automatizzare le attività ripetitive.

Gestione dell’ambiente: dotenv

Tieni segreti e configurazioni fuori dal codice.

require('dotenv').config();
const apiKey = process.env.API_KEY;

Strumenti CLI: chalk, commander, inquirer

  • chalk: colora l’output della console.
  • commander: analizza le opzioni da riga di comando.
  • inquirer: prompt interattivi per l’input dell’utente.

View media

Archiviazione dei dati

  • fs: scrive su file (JSON, CSV).
  • lowdb: database JSON leggero.
  • sqlite3: database SQL locale.
  • mongodb: database NoSQL per i progetti più grandi.

Esempio: salvare i dati in JSON

const fs = require('fs');
fs.writeFileSync('output.json', JSON.stringify(data, null, 2));

I punti deboli del Web Scraping tradizionale con JavaScript e Node.js

Diciamocelo: lo scraping tradizionale non è tutto rose e fiori. Ecco i grattacapi più grossi che ho visto — e provato sulla mia pelle:

web-scraping-pros-and-cons-comparison-chart.png

  • Curva d’apprendimento ripida: devi padroneggiare DOM, selettori, logica asincrona e, a volte, le bizzarrie dei browser.
  • Peso della manutenzione: i siti cambiano, i selettori si rompono e tu a rincorrere il codice.
  • Scarsa scalabilità: ogni sito vuole il suo script; nulla è davvero “taglia unica”.
  • Pulizia dei dati complicata: i dati estratti sono disordinati — pulizia, formattazione e deduplicazione diventano un lavoro a parte.
  • Limiti di prestazioni: l’automazione del browser è lenta e affamata di risorse sui lavori grandi.
  • Blocchi e misure anti-bot: i siti bloccano gli scraper, sparano CAPTCHA o nascondono i dati dietro login.
  • Zone grigie legali ed etiche: devi muoverti tra termini di servizio, privacy e conformità.

Approfondisci questi punti dolenti con statistiche reali.

Thunderbit vs. Web Scraping tradizionale: un salto di produttività

Affrontiamo l’elefante nella stanza: e se potessi saltare codice, selettori e manutenzione in un colpo solo?

Qui entra in scena Thunderbit. Da cofondatore e CEO sono un po’ di parte, lo ammetto, ma lascia che ti spieghi: Thunderbit è pensato per chi vuole dati, non grattacapi.

View media

Come si comporta Thunderbit nel confronto

AspettoThunderbit (AI senza codice)Web scraping tradizionale in JS/Node
Configurazione2 clic, zero codiceScrivere script, fare debug
Contenuti dinamiciGestiti nel browserScripting con browser headless
ManutenzioneL’AI si adatta ai cambiamentiAggiornamenti manuali del codice
Estrazione datiL’AI suggerisce i campiSelettori a mano
Scraping di sottopagineIntegrato, 1 clicLoop e codice per ogni sito
EsportazioneExcel, Sheets, NotionIntegrazione manuale con file/db
Post-elaborazioneRiassumi, tagga, formattaCodice o strumenti aggiuntivi
Chi può usarloChiunque abbia un browserSolo sviluppatori

L’AI di Thunderbit legge la pagina, suggerisce i campi ed estrae i dati in un paio di clic. Gestisce le sottopagine, si adatta ai cambi di layout e può perfino riassumere, taggare o tradurre i dati mentre li estrae. Esporti su Excel, Google Sheets, Airtable o Notion — senza una sola configurazione tecnica.

Dove Thunderbit dà il meglio di sé:

  • Team e-commerce che monitorano SKU e prezzi dei concorrenti
  • Team sales che estraggono lead e contatti
  • Ricercatori di mercato che aggregano notizie o recensioni
  • Agenti immobiliari che raccolgono annunci e dettagli degli immobili

Per lo scraping ad alta frequenza e critico per il business, Thunderbit ti regala un sacco di tempo. Per i progetti su misura, su larga scala o profondamente integrati, lo scripting tradizionale ha ancora il suo posto — ma per la maggior parte dei team, Thunderbit è la via più rapida per passare da “mi servono dati” a “ho i dati”.

Guarda l’estensione Chrome di Thunderbit in azione oppure scopri altri casi d’uso sul blog di Thunderbit.

Prova Thunderbit AI Web Scraper

Riferimento rapido: librerie popolari per il Web Scraping in JavaScript e Node.js

Ecco la tua cheat sheet sull’ecosistema dello scraping in JavaScript nel 2026:

Richieste HTTP

  • Axios: client HTTP basato su promesse e ricco di funzioni.
  • node-fetch: l’API Fetch per Node.js.
  • Got: client HTTP veloce e avanzato.
  • SuperAgent: richieste HTTP mature e concatenabili.
  • Unirest: client semplice e indipendente dal linguaggio.

Parsing HTML

  • Cheerio: parser HTML veloce, in stile jQuery.
  • jsdom: DOM simile a quello del browser in Node.js.

Contenuti dinamici

Pianificazione

CLI e utility

  • chalk: stile del testo nel terminale.
  • commander: parser per argomenti da CLI.
  • inquirer: prompt interattivi da CLI.
  • dotenv: caricatore di variabili d’ambiente.

Archiviazione

  • fs: file system integrato.
  • lowdb: piccolo database JSON locale.
  • sqlite3: database SQL locale.
  • mongodb: database NoSQL.

Framework

  • Crawlee: framework di crawling e scraping di alto livello firmato Apify. La versione JavaScript/TypeScript è alla v3.16 a maggio 2026 ed è il ramo più maturo (il port Python è più recente). Incapsula Puppeteer, Playwright, Cheerio e JSDOM in un’unica API, con rotazione dei proxy e code già pronte — comodo se ti ritrovi a ricostruire sempre la stessa impalcatura attorno agli scraper.

(Controlla sempre documentazione e repository GitHub più recenti per eventuali novità.)

Risorse consigliate per padroneggiare il Web Scraping in JavaScript

Vuoi scavare più a fondo? Ecco una selezione di risorse per affinare le tue competenze di scraping:

Documentazione ufficiale e guide

Tutorial e corsi

Progetti open source ed esempi

Community e forum

Libri e guide complete

  • “Web Scraping with Python” di O’Reilly (per i concetti trasversali tra linguaggi)
  • Corsi Udemy/Coursera: “Web Scraping in Node.js”

(Controlla sempre edizioni e aggiornamenti più recenti.)

Come fare scraping di qualsiasi sito web usando l’AI Get Started Free

Conclusione: scegliere l’approccio giusto per il tuo team

Ecco il punto. JavaScript e Node.js ti mettono in mano una potenza e una flessibilità fuori scala per il web scraping. Puoi costruire qualunque cosa, dallo script improvvisato al crawler robusto e scalabile. Ma a grande potere… corrisponde grande manutenzione. Lo scripting tradizionale è la scelta giusta per i progetti su misura, molto tecnici e dove ti serve pieno controllo — a patto di essere pronto a occuparti della manutenzione continua.

Per tutti gli altri — business user, analisti, marketer e chiunque voglia solo i dati — le soluzioni no-code moderne come Thunderbit sono una boccata d’aria. L’estensione Chrome di Thunderbit, mossa dall’AI, ti fa estrarre, strutturare ed esportare i dati in minuti, non in giorni. Niente codice, niente selettori, niente stress.

Quindi, qual è l’approccio giusto? Se il tuo team ha le competenze ingegneristiche e requisiti particolari, tuffati nel toolbox di Node.js. Se invece cerchi velocità, semplicità e la libertà di concentrarti sulle informazioni e non sull’infrastruttura, prova Thunderbit. In entrambi i casi, il web è il tuo database: vai a prenderti quei dati.

E se mai dovessi impallarti, ricorda: anche i migliori scraper sono partiti da una pagina vuota e da una tazza di caffè bello carico. Buono scraping.

Vuoi saperne di più sullo scraping basato su AI o vedere Thunderbit in azione?

Se hai domande, storie o i tuoi racconti dell’orrore preferiti sullo scraping, lascia un commento o scrivimi. Adoro vedere come ognuno trasforma il web nel proprio parco giochi di dati.

Resta curioso, resta caffeinato e continua a fare scraping in modo più intelligente, non più faticoso.

Scarica l’estensione Chrome di Thunderbit

Prova AI Web Scraper Get Started Free

FAQ:

1. Perché usare JavaScript e Node.js per il web scraping nel 2025?

Perché la maggior parte dei siti moderni è costruita con JavaScript. Node.js è veloce, a suo agio con l’asincronia e con un ecosistema ricchissimo (Axios, Cheerio, Puppeteer e compagnia) che copre tutto: dalle semplici richieste allo scraping di contenuti dinamici su larga scala.

2. Qual è il flusso di lavoro tipico per fare scraping di un sito con Node.js?

Di solito questo:

Richiesta → Gestione della risposta → (Esecuzione JS opzionale) → Parsing HTML → Estrazione dati → Salvataggio o esportazione

Ogni passaggio può essere affidato a uno strumento dedicato come axios, cheerio o puppeteer.

3. Come si estraggono le pagine dinamiche renderizzate in JavaScript?

Con browser headless come Puppeteer o Playwright. Caricano la pagina completa, JavaScript incluso, così puoi estrarre ciò che gli utenti vedono davvero.

4. Quali sono le sfide più grandi dello scraping tradizionale?

  • Cambiamenti nella struttura del sito
  • Rilevamento anti-bot
  • Consumo di risorse del browser
  • Pulizia manuale dei dati
  • Manutenzione pesante nel tempo

Tutto questo rende difficile tenere lo scraping su larga scala sostenibile, o lo rende poco adatto a chi non sviluppa.

5. Quando dovrei usare qualcosa come Thunderbit invece del codice?

Quando ti servono velocità e semplicità e non hai voglia di scrivere o mantenere codice. È ideale per i team sales, marketing o ricerca che vogliono estrarre e strutturare dati in fretta — soprattutto da siti complessi o multi-pagina.

Shuai Guan
Shuai Guan
CEO di Thunderbit | Esperto di automazione dei dati con l’AI Shuai Guan è CEO di Thunderbit e laureato in Ingegneria alla University of Michigan. Forte di quasi dieci anni di esperienza nel settore tech e nell’architettura SaaS, è specializzato nel trasformare modelli di AI complessi in strumenti pratici e no-code per l’estrazione dei dati. In questo blog condivide spunti diretti, testati sul campo, su web scraping e strategie di automazione per aiutarti a costruire flussi di lavoro più intelligenti e guidati dai dati. Quando non ottimizza processi di data workflow, dedica la stessa attenzione ai dettagli alla sua passione per la fotografia.
Topics
Web Scraping con JavaScriptWeb Scraping con Node.jsWeb scraping javascriptWeb scraping api

Prova Thunderbit

Estrai lead e altri dati in soli 2 clic. Con il supporto dell'AI.

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