Для автоматического парсинга таблицы из веб-страницы и её экспорта в CSV на Python удобнее всего использовать связку библиотек **pandas** и **requests** (или **BeautifulSoup**). Pandas имеет встроенный метод `read_html()`, который автоматически находит все HTML-таблицы (`
`) на странице и возвращает список DataFrame.
## Шаг 1. Установка зависимостей
Перед началом установите необходимые библиотеки:
pip install pandas requests lxml
Библиотека `lxml` нужна pandas как парсер HTML.
## Шаг 2. Написание скрипта
python
import pandas as pd
import requests
# URL страницы с таблицей
url = «https://example.com/table-page»
# Загружаем HTML-контент страницы
headers = {«User-Agent»: «Mozilla/5.0»}
response = requests.get(url, headers=headers)
response.raise_for_status() # Проверка на ошибки HTTP
# Парсим все таблицы со страницы
tables = pd.read_html(response.text)
# Берём первую таблицу (индекс 0)
df = tables[0]
# Экспортируем в CSV
df.to_csv(«output.csv», index=False, encoding=»utf-8-sig»)
print(«Таблица успешно сохранена в output.csv»)
print(df.head())
## Пояснения к коду
— `requests.get()` — загружает HTML-код страницы. Заголовок `User-Agent` помогает избежать блокировок.
— `pd.read_html(response.text)` — возвращает **список** всех найденных таблиц. Если таблица одна, берём `tables[0]`.
— `to_csv()` с параметром `encoding=»utf-8-sig»` обеспечивает корректное отображение кириллицы в Excel.
— `index=False` — исключает автоматический числовой индекс из CSV.
## Пример строки в CSV
Если таблица содержит данные о товарах, итоговый CSV будет выглядеть так:
Название,Цена,Количество,Категория
Ноутбук Lenovo,45990,12,Электроника
## Дополнительные возможности
— Если на странице несколько таблиц, перебирайте `tables` в цикле: `for i, df in enumerate(tables): df.to_csv(f»table_{i}.csv»)`.
— Для динамических страниц (JavaScript-рендеринг) используйте **Selenium** или **Playwright** вместо requests.
— Метод `read_html()` принимает также прямой URL: `pd.read_html(url)` — но без кастомных заголовков.
Таким образом, весь процесс парсинга и экспорта занимает менее 15 строк кода.
Задайте вопрос нейросети
Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.