JavaScript:
Scaricare una pagina web
How to: (Come fare)
Usiamo fetch() per prendere il contenuto di una pagina web. Guarda qui:
// Metodo asincrono per scaricare il contenuto di una pagina web
async function downloadWebPage(url) {
try {
const response = await fetch(url);
const data = await response.text();
console.log(data); // Qui abbiamo i dati della pagina
} catch (error) {
console.error('Errore nel download:', error);
}
}
// Esempio di utilizzo
downloadWebPage('https://www.example.com');Se lavori in Node.js, ti serve node-fetch o axios. Così:
const fetch = require('node-fetch'); // Oppure importa axios
fetch('https://www.example.com')
.then(response => response.text())
.then(data => {
console.log(data); // Ecco il tuo HTML!
})
.catch(error => {
console.error('Errore:', error);
});Deep Dive (Approfondimento)
La funzione fetch() è parte dell’API Fetch moderna, che a partire da HTML5 ha soppiantato XMLHttpRequest. fetch() supporta promesse e async/await per un codice più pulito e leggero.
Alternative come axios possono offrire vantaggi come l’intercettazione delle richieste, timeout automatici, e protezione contro attacchi CSRF. node-fetch è un polyfill di fetch() per Node.js.
Per scaricare file più grandi o avere più controllo, considera moduli come request (sebbene al 2023 sia deprecato) o librerie come got, che gestiscono stream e performance meglio.
Il download completo, compresi script e stili, può richiedere parsing del DOM e gestione delle risorse incrociate. Framework come Puppeteer o Playwright simulano l’intero browser per questo.
See Also (Vedi anche)
- MDN Web Docs su Fetch API: https://developer.mozilla.org/it/docs/Web/API/Fetch_API
- GitHub Axios: https://github.com/axios/axios
- Node-fetch: https://www.npmjs.com/package/node-fetch
- Puppeteer: https://pptr.dev/
- Playwright: https://playwright.dev/