1. Preparación de los datos para guardar
En las lecciones anteriores ya hemos aprendido a extraer datos de
las páginas web usando la biblioteca BeautifulSoup
. Ahora es momento
de convertir nuestros logros de scraping en algo útil y
cómodo para analizar. Porque si los datos permanecen solo en
tu script, no sirven de mucho. Hoy aprenderemos cómo
guardar datos en formatos CSV y Excel, porque, como se sabe,
en la vida de un programador, al igual que en la vida de un gato, lo más importante es encontrar algo de comer... quiero decir, guardar.
Antes de que empecemos a convertir nuestros datos en divertidas tablas, vamos a hacer una breve pausa y analizar cómo preparar nuestros datos para exportar. Generalmente, los datos que extraemos de las páginas web están presentados en forma de listas o diccionarios. Es preferible formatearlos para que estén listos para exportar en un formato tabular.
Ejemplo de datos
Supongamos que recopilaste los siguientes datos sobre libros:
books = [
{"title": "Harry Potter y la piedra filosofal", "author": "J. K. Rowling", "price": "350.00"},
{"title": "El Señor de los Anillos", "author": "J. R. R. Tolkien", "price": "500.00"},
{"title": "El Maestro y Margarita", "author": "M. A. Bulgakov", "price": "450.00"}
]
2. Guardar en formato CSV
CSV
(Comma-Separated Values) es un formato de texto simple
que permite almacenar datos tabulares. Cada fila en
CSV
representa un registro, y cada columna está separada
por comas. Aprendamos a guardar nuestros datos en este
formato.
Usando la biblioteca csv
Python nos ofrece un módulo llamado csv
,
que facilita mucho la vida al trabajar con
archivos CSV
. Aquí está cómo exportar nuestros datos sobre
libros a 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("Datos guardados exitosamente en books.csv")
Nota importante: siempre indica
newline=''
al abrir un archivo en modo
w
, para evitar las líneas en blanco adicionales en
Windows.
Leyendo datos desde CSV
Para completar el cuadro, veamos cómo leer nuevamente los datos
desde CSV
:
with open('books.csv', mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
3. Guardar en formato Excel
Para trabajar con Excel en Python vamos a utilizar la biblioteca
pandas
. Pandas
permite fácilmente
convertir nuestros datos en un DataFrame y exportarlos a
varios formatos, incluido Excel.
Instalando pandas
Si aún no tienes pandas
instalado, lo puedes hacer
con pip:
pip install pandas openpyxl
Usando pandas
para exportar a Excel
Ahora guardemos nuestros datos sobre libros en un archivo Excel:
import pandas as pd
df = pd.DataFrame(books)
df.to_excel('books.xlsx', index=False, engine='openpyxl')
print("Datos guardados exitosamente en books.xlsx")
Leyendo datos desde Excel
Qué alegría no solo crear, sino también reutilizar lo creado. Aprendamos cómo leer datos desde Excel:
df = pd.read_excel('books.xlsx')
print(df)
4. Errores y cómo manejarlos
Como en cualquier otro aspecto de la programación, al exportar
datos puedes encontrarte con errores. Los más
comunes están relacionados con rutas de archivos incorrectas
o la falta de bibliotecas necesarias. Por ejemplo, si olvidas
instalar openpyxl
, no podrás exportar a Excel.
Verificar la existencia de archivos
Antes de intentar escribir o leer un archivo, es útil
comprobar si existe. Esto se puede hacer con el módulo
os
:
import os
if os.path.exists('books.csv'):
print("El archivo books.csv existe")
else:
print("El archivo books.csv no se encontró")
No lo creerás, pero el error más común entre los principiantes es sobrescribir accidentalmente datos antiguos con nuevos. Automatizar la conservación del historial de archivos es todo un arte.
No olvides incluir también el manejo de errores con las
estructuras try-except
, para que tu script no se
salga al primer problema.
GO TO FULL VERSION