Ordelio

Come salvare una tabella da una pagina web in un file CSV

Un file CSV è un file di testo semplice che qualsiasi foglio di calcolo e database è in grado di leggere. Estrarre una tabella web in questo formato è semplice; farlo senza caratteri accentati illeggibili, separatori errati o zeri persi è la parte difficile. Ecco quattro metodi e i relativi limiti.

1. Copia, incolla in Excel e Salva con nome

Seleziona la tabella, copiala, incollala in un foglio Excel vuoto, quindi usa il comando Salva con nome dal menu File e seleziona il tipo di file CSV UTF-8.

Ideale per: una tabella di piccole dimensioni che ti serve una tantum, quando hai già Excel aperto.

Dove si blocca: se scegli il formato CSV standard anziché CSV UTF-8, qualsiasi carattere non incluso nella codifica di Windows (accenti, cirillico, cinese) verrà convertito in un punto interrogativo. Excel utilizza inoltre il separatore definito nelle impostazioni internazionali del sistema operativo: su molti computer europei, pertanto, un file "delimitato da virgole" sarà in realtà separato da punti e virgola, spiazzando i programmi che si aspettano le virgole. L'operazione di incolla può inoltre rimuovere gli zeri iniziali (un codice come 01234 diventa 1234), trasformare stringhe come 1-2 in date, e la selezione potrebbe includere testo estraneo attorno alla tabella.

2. Fogli Google: incolla e Scarica

Incolla la tabella in un documento di Fogli Google, apri il menu File, vai su Scarica e seleziona il formato Valori separati da virgola (.csv).

Ideale per: qualsiasi computer dotato di un browser, senza la necessità di avere Excel, con la garanzia che il file utilizzi sempre la codifica UTF-8.

Dove si blocca: il file utilizza sempre la virgola come separatore, un aspetto che potrebbe impedire a Excel — se impostato con la virgola come separatore decimale — di suddividere correttamente le colonne con un doppio clic. Viene scaricato esclusivamente il foglio attivo e non l'intera cartella di lavoro. Analogamente a Excel, Fogli Google potrebbe convertire automaticamente alcuni valori in date o numeri durante l'incolla.

3. Python: pandas.read_html

Se utilizzi già Python, la libreria pandas consente di estrarre tutte le tabelle presenti in una pagina e di salvarne una in formato CSV con un'unica istruzione:

pandas.read_html("https://example.com/page")[0].to_csv("table.csv", index=False)

Il valore tra parentesi quadre indica l'indice della tabella nella pagina (0 corrisponde alla prima). È necessario disporre dei pacchetti pandas e lxml installati.

Ideale per: elaborare la stessa pagina con cadenza periodica, oppure analizzare centinaia di pagine all'interno di uno script automatizzato.

Dove si blocca: alcuni siti web bloccano la richiesta restituendo un errore 403 perché il traffico non proviene da un browser tradizionale; in questi casi è necessario scaricare manualmente la pagina e passare l'HTML a pandas. Lo strumento non è in grado di accedere a pagine protette da autenticazione né di rilevare tabelle generate dinamicamente tramite JavaScript dopo il caricamento iniziale. I simboli delle note a piè di pagina (come [1]) rimangono inclusi nelle intestazioni e nei valori, e i numeri interi possono essere convertiti in formato decimale (es. 8021407192.0) non appena una colonna presenta una cella vuota.

4. Un'estensione per il browser: un clic sulla pagina che stai visualizzando

Un'estensione agisce direttamente sulla pagina così come viene visualizzata nel browser, risultando perciò efficace anche dietro schermate di login e su tabelle create tramite JavaScript. Noi sviluppiamo Ordelio Copia Tabelle (gratuita e senza limiti di righe):

  1. Apri la pagina e fai clic sull'icona dell'estensione (oppure premi Alt+Maiusc+Y). Verranno elencate tutte le tabelle presenti nella pagina, ordinate dalla più grande alla più piccola; passandoci sopra con il mouse, la tabella corrispondente verrà evidenziata.
  2. Fai clic su CSV: il browser scaricherà un file contenente quella specifica tabella. Gli accenti rimarranno intatti grazie alla codifica UTF-8 dotata di apposito indicatore per Excel, e il separatore verrà impostato automaticamente sul punto e virgola se la lingua di sistema utilizza la virgola per i decimali (è comunque possibile forzare l'uso di virgola, punto e virgola o tabulazione dalle opzioni).

L'estensione rimuove inoltre i simboli delle note come [1], espande le celle unite per mantenere l'allineamento delle colonne e preserva i codici come 01234 esattamente come appaiono nella pagina (sebbene i fogli di calcolo potrebbero comunque convertirli in formato numerico all'apertura).

Dove si blocca: elabora esclusivamente i dati presenti sulla pagina in quel preciso istante; di conseguenza, una tabella suddivisa su più pagine richiederà il salvataggio di un file per ciascuna schermata e non potrà aggiornare i dati in autonomia come farebbe uno script.

Ottieni Ordelio Copia Tabelle per Microsoft Edge Versioni per Chrome e Firefox: in fase di revisione.

Quale scegliere

Excel Salva con nomeFogli GooglepandasEstensione
Pagine protette da loginSì (copiando)Sì (copiando)NoSì
Gli accenti vengono correttiSolo con CSV UTF-8SìSìSì
Separatore personalizzabileNo (impostato da Windows)No (sempre virgole)Sì (un parametro)Sì (un'opzione)
Centinaia di pagine in una voltaNoNoSìNo
Tempo per una nuova paginaCirca un minutoCirca un minutoMinuti, la prima voltaPochi secondi

In sintesi: per uno script eseguito regolarmente ogni settimana su pagine pubbliche, la scelta ideale è pandas. Per un'estrazione estemporanea da una pagina che stai consultando, specialmente se protetta da login, conviene esportare i dati direttamente dal browser.

Hai incontrato una tabella che nessuno di questi strumenti riesce a gestire? Segnalacelo: leggiamo ogni messaggio.