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