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)