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):
- 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.
- 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 nome | Fogli Google | pandas | Estensione | |
|---|---|---|---|---|
| Pagine protette da login | Sì (copiando) | Sì (copiando) | No | Sì |
| Gli accenti vengono corretti | Solo con CSV UTF-8 | Sì | Sì | Sì |
| Separatore personalizzabile | No (impostato da Windows) | No (sempre virgole) | Sì (un parametro) | Sì (un'opzione) |
| Centinaia di pagine in una volta | No | No | Sì | No |
| Tempo per una nuova pagina | Circa un minuto | Circa un minuto | Minuti, la prima volta | Pochi 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.