1. Подготовка данных для сохранения
На предыдущих лекциях мы уже научились извлекать данные из веб-страниц с помощью библиотеки BeautifulSoup. Теперь пора превратить наши скрейпинг-достижения в нечто полезное и удобное для анализа. Ведь если данные остаются только в вашем скрипте, от них мало пользы. Сегодня мы изучим, как сохранять данные в форматах CSV и Excel, ведь, как известно, в жизни программиста, как и в жизни кота, главное — найти,c что поесть... я имею в виду, сохранить.
Прежде чем мы начнем превращать наши данные в весёлые таблички, давайте ненадолго остановимся и рассмотрим, как подготовить наши данные к экспорту. Обычно данные, которые мы извлекаем из веб-страниц, представлены в виде списков или словарей. Желательно отформатировать их так, чтобы они были готовы к экспорту в табличный формат.
Пример данных
Предположим, что вы собрали следующие данные о книгах:
books = [
{"title": "Гарри Поттер и философский камень", "author": "Дж. К. Роулинг", "price": "350.00"},
{"title": "Властелин Колец", "author": "Дж. Р. Р. Толкин", "price": "500.00"},
{"title": "Мастер и Маргарита", "author": "М. А. Булгаков", "price": "450.00"}
]
2. Сохранение в формат CSV
CSV (Comma-Separated Values) — это простой текстовый формат, который позволяет хранить табличные данные. Каждая строка в CSV представляет собой запись, а каждый столбец разделяется запятыми. Давайте научимся сохранять наши данные в этом формате.
Использование библиотеки csv
Python предоставляет нам удобный модуль csv, который значительно облегчает жизнь при работе с CSV-файлами. Вот как можно экспортировать наши данные о книгах в 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("Данные успешно сохранены в books.csv")
Обратите внимание: всегда указывайте newline='' при открытии файла в режиме w, чтобы избежать дополнительных пустых строк в Windows.
Считывание данных из CSV
Для полноты картины давайте разберем, как прочитать данные обратно из CSV:
with open('books.csv', mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
3. Сохранение в формат Excel
Для работы с Excel в Python мы будем использовать библиотеку pandas. Pandas позволяет легко конвертировать наши данные в DataFrame и экспортировать их в различные форматы, включая Excel.
Установка pandas
Если вы еще не установили pandas, сделать это можно с помощью pip:
pip install pandas openpyxl
Использование pandas для экспорта в Excel
Теперь давайте сохраним наши данные о книгах в Excel:
import pandas as pd
df = pd.DataFrame(books)
df.to_excel('books.xlsx', index=False, engine='openpyxl')
print("Данные успешно сохранены в books.xlsx")
Чтение данных из Excel
Какую радость приносит не только создание, но и повторное использование созданного! Давайте научимся считывать данные из Excel:
df = pd.read_excel('books.xlsx')
print(df)
4. Ошибки и их обработка
Как и в любом другом аспекте программирования, при экспорте данных можно столкнуться с ошибками. Наиболее распространенные из них связаны с неверными путями к файлам или отсутствием необходимых библиотек. Например, если забыть установить openpyxl, экспорт в Excel не удастся.
Проверка наличия файлов
Перед тем как пытаться записать или прочитать файл, полезно проверять его наличие. Это можно сделать с помощью модуля os:
import os
if os.path.exists('books.csv'):
print("Файл books.csv существует")
else:
print("Файл books.csv не найден")
Вы не поверите, но самая частая ошибка новичков - это случайное перетирание старых данных новыми. Автоматизация сохранения истории файлов - это целое искусство.
Не забудьте также включить обработку ошибок с помощью конструкций try-except, чтобы ваш скрипт не падал при первой же проблеме.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ