1. Preparazione dei dati per il salvataggio
Nelle lezioni precedenti abbiamo imparato a estrarre dati da
pagine web con la libreria BeautifulSoup
. Ora è il momento
di trasformare i nostri successi nello scraping in qualcosa di utile e
comodo per l'analisi. Dopotutto, se i dati rimangono solo nel
tuo script, non servono a molto. Oggi vedremo come
salvare i dati in formati CSV ed Excel, perché, come è noto,
nella vita di un programmatore, come nella vita di un gatto, la cosa più importante è trovare qualcosa da mangiare... Voglio dire, salvare.
Prima di iniziare a trasformare i nostri dati in tabelle divertenti, fermiamoci un attimo per considerare come preparare i nostri dati per l'esportazione. Di solito, i dati che estraiamo dalle pagine web sono presentati sotto forma di liste o dizionari. È meglio formattarli in modo che siano pronti per l'esportazione in formato tabellare.
Esempio di dati
Supponiamo di aver raccolto i seguenti dati sui libri:
books = [
{"title": "Harry Potter e la pietra filosofale", "author": "J. K. Rowling", "price": "350.00"},
{"title": "Il Signore degli Anelli", "author": "J. R. R. Tolkien", "price": "500.00"},
{"title": "Il Maestro e Margherita", "author": "M. A. Bulgakov", "price": "450.00"}
]
2. Salvataggio in formato CSV
Il CSV
(Comma-Separated Values) è un formato di testo semplice
che permette di memorizzare i dati in forma tabellare. Ogni riga in un
file CSV
rappresenta un record, e ogni colonna è separata
da virgole. Vediamo come salvare i dati in questo
formato.
Utilizzo della libreria csv
Python mette a disposizione il modulo csv
,
che semplifica molto la vita quando si lavora con i
file CSV
. Ecco come esportare i nostri dati sui
libri in un file CSV
:
import csv
with open('books.csv', mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=["title", "author", "price"])
writer.writeheader()
writer.writerows(books)
print("Dati salvati con successo in books.csv")
Nota bene: specifica sempre
newline=''
quando apri un file in modalità
w
, per evitare righe vuote extra su
Windows.
Lettura dei dati da un CSV
Per completezza, vediamo come leggere di nuovo i dati
da un file CSV
:
with open('books.csv', mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
3. Salvataggio in formato Excel
Per lavorare con Excel in Python, utilizzeremo la libreria
pandas
. Pandas
permette di
convertire facilmente i nostri dati in DataFrame ed esportarli in
vari formati, incluso Excel.
Installazione di pandas
Se non hai ancora installato pandas
, puoi farlo
con pip:
pip install pandas openpyxl
Utilizzo di pandas
per esportare in Excel
Ora salviamo i nostri dati sui libri in Excel:
import pandas as pd
df = pd.DataFrame(books)
df.to_excel('books.xlsx', index=False, engine='openpyxl')
print("Dati salvati con successo in books.xlsx")
Lettura dei dati da Excel
Non c'è gioia più grande di creare qualcosa e poterlo riutilizzare! Vediamo come leggere i dati da un file Excel:
df = pd.read_excel('books.xlsx')
print(df)
4. Errori e gestione degli errori
Come in ogni altro aspetto della programmazione, quando si esportano
dati ci si può imbattere in errori. I più comuni
riguardano percorsi di file errati o il mancato caricamento delle librerie necessarie. Ad esempio, se dimentichi
di installare openpyxl
, l'esportazione in Excel fallirà.
Controllo dell'esistenza dei file
Prima di tentare di scrivere o leggere un file, è utile
controllarne l'esistenza. Puoi farlo con il modulo
os
:
import os
if os.path.exists('books.csv'):
print("Il file books.csv esiste")
else:
print("Il file books.csv non è stato trovato")
Non ci crederai, ma l'errore più comune per i principianti è quello di sovrascrivere accidentalmente i vecchi dati con quelli nuovi. Automatizzare il salvataggio di una cronologia dei file è una vera arte.
Non dimenticare di includere anche la gestione degli errori usando
le istruzioni try-except
, in modo che il tuo script non
si blocchi al primo problema.
GO TO FULL VERSION