il scraping in JavaScript è un modo efficace di raccogliere dati web, sia che si tratti di contenuti statici o dinamici. Questa guida vi spiega tutto.
Prerequisiti per il web scraping in JavaScript

Prima di iniziare a programmare, è necessario preparare l'ambiente. A tal fine, occorrono due strumenti di base:
- Node.js : è un ambiente di esecuzione JavaScript, open-source e multipiattaforma. Consente di eseguire codice JS al di fuori di un browser.
- ✅ npm (Node Package Manager): è un gestore di pacchetti integrato in Node.js, utile per installare rapidamente le librerie.
Per le biblioteche, ecco i più popolari:
- ✅ burattinaio e Drammaturgo per lo scraping di siti dinamici. Simulano un vero browser e caricano le pagine come un utente.
- ✅ Ciao per lo scraping statico. È particolarmente leggero, veloce e facile da usare.
Come si può fare web scraping in JavaScript?
Passiamo all'azione con questa breve esercitazione.
Passo 1: installazione e configurazione
- Scarica Node.js, quindi installalo. Verifica l'installazione con il terminale:
nodo -v
npm -v
- Creare un progetto Node.js nel terminale.
mkdir my-scraping
cd my-scraping
npm init -y
Questo crea un progetto Node.js con un file package.json.
- Installare le librerie necessarie
👉 Per una pagina statica (Cheerio)
npm installare axios cheerio
👉 Per una pagina dinamica (Puppeteer)
npm installare puppeteer
Fase 2: Creazione di uno script di scraping
- Scraping di una pagina statica con Cheerio
// Importare le librerie
const axios = require('axios');
const cheerio = require('cheerio');
// URL della pagina da rottamare
const url = "https://exemple.com";
// Funzione principale
funzione async scrapePage() {
try {
// Scarica il contenuto HTML
const { data } = await axios.get(url);
// Caricare l'HTML con Cheerio
const $ = cheerio.load(data);
// Esempio: recuperare tutti i titoli h1
const titles = [];
$("h1").each((i, elem) => {
titles.push($(elem).text().trim());
});
// Visualizzare i risultati
console.log("Titoli trovati:", titoli);
} catch (error) {
console.error("Errore durante lo scraping:", errore);
}
}
// Eseguire lo script
scrapePage();
👉 È possibile sostituire https://exemple.com dall'URL della pagina che si vuole analizzare e modificare il selettore $("h1") per indirizzare gli interessi dell'utente (ad es. $("p"), .classe, #idecc.).
- Scraping di una pagina dinamica con Puppeteer
// Importare Puppeteer
const puppeteer = require("puppeteer");
// URL della pagina da rottamare
const url = "https://exemple.com";
funzione async scrapePage() {
// Avvio di un browser senza interfaccia grafica (headless)
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
try {
// Andare alla pagina
await page.goto(url, { waitUntil: "networkidle2" });
// Esempio: estrarre il testo da tutti i titoli h1
const titles = await page.$$eval("h1", elements =>
elements.map(el => el.textContent.trim())
);
console.log("Titoli trovati:", titoli);
} catch (error) {
console.error("Errore durante lo scraping:", error);
} finally {
// Chiudere il browser
await browser.close();
}
}
// Eseguire lo script
scrapePage();
Fase 3: Gestione dei dati estratti
I dati recuperati possono essere salvati in formato CSV per Excel o memorizzati in formato JSON per essere integrati in un database.
// Salva come JSON
fs.writeFileSync("risultati.json", JSON.stringify(risultati, null, 2), "utf-8");
console.log("✅ Dati salvati in risultati.json");
// Salvare come CSV
const parser = new Parser();
const csv = parser.parse(results);
fs.writeFileSync("results.csv", csv, "utf-8");
console.log("✅ Dati salvati in risultati.csv");
} catch (error) {
console.error("❌ Errore durante lo scraping:", errore);
}
}
scrapeAndSave();
Le migliori pratiche per lo scraping del web in JavaScript
Prima di lanciare i vostri script, è fondamentale adottare alcune buone pratiche affinché il vostro scraping rimanga efficace.
- 🔥 Rispettare il file robots.txt : è la regola d'oro per evitare problemi legali ed etici.
- 🔥 Gestione di CAPTCHA e blocchi con proxy o servizi anti-CAPTCHA.
- 🔥 Rendere lo script più robusto Aggiungere la gestione degli errori e delle eccezioni per evitare gli arresti anomali.
Quali sono le alternative da prendere in considerazione?
Il web scraping non si limita al JavaScript. Sono disponibili diverse altre opzioni, ad esempio:
- Pitone Scrapy e BeautifulSoup fanno miracoli per recuperare i dati in modo efficiente.
- PHP ideale per gli sviluppatori web che vogliono integrare lo scraping direttamente nei loro progetti.
- Strumenti di scraping del web come Dati luminosi, Octoparse e Apify. Sono perfetti se non volete codificare, ma volete comunque avere il controllo totale dei vostri dati.
Domande frequenti
Come si effettua lo scrape di un sito utilizzando JavaScript?
Per effettuare lo scraping di un sito utilizzando JavaScript, è necessario seguire alcuni passaggi chiave:
- Identificare se la pagina è statico Dove dinamico.
- Per una pagina statica, utilizzare Cheerio per estrarre direttamente l'HTML.
- Per una pagina dinamica, utilizzare Puppeteer o Playwright per simulare un browser, attendere che il contenuto venga caricato completamente, poi estrarre i dati.
- Strutturare e salvare i dati in un formato utilizzabile, come ad esempio JSON Dove CSV.
Qual è il miglior strumento di web scraping in JavaScript?
Tutto dipende dal tipo di sito:
- 🔥 Ciao veloce e leggero, perfetto per le pagine statiche.
- 🔥 burattinaio ideale per simulare un vero browser e gestire contenuti dinamici.
- 🔥 Drammaturgo simile a Puppeteer, ma con caratteristiche più avanzate e cross-browser.
Qual è il miglior linguaggio di programmazione per lo scraping?
Non esiste un linguaggio di programmazione migliore per lo scraping. La scelta dipenderà dal vostro progetto e dal vostro ambiente.
- 🔥 Pitone per i progetti veloci.
- 🔥 JavaScript se già lavori nell'ecosistema web.
- 🔥 PHP per integrare lo scraping direttamente in un sito web esistente.
- 🔥 Strumenti senza codice, come ad esempio Dati luminosi, Octoparse e Apify.
In conclusione, il scraping del web in JavaScript semplifica la raccolta dei dati, sia con Cheerio, Puppeteer o Playwright. E voi? Quali tecniche utilizzate?
💬 Condividete le vostre esperienze o fate le vostre domande nei commenti!





