5.2 KiB
Sber History To Excel
Скрипт выгружает историю операций СберБанк Онлайн за выбранный месяц и сохраняет ее в один Excel-файл .xlsx.
Что делает
- Получает операции через API истории операций Сбера.
- Забирает данные постранично.
- Оставляет только операции за указанный месяц.
- Убирает дубли по идентификатору операции.
- Сохраняет результат в один
.xlsxфайл.
Требования
- Python 3.10+
- Библиотека
requests - Актуальный Cookie авторизованной сессии СберБанк Онлайн
Установка зависимости:
python3 -m pip install requests
Настройка Cookie
Скрипт берет Cookie из переменной окружения Cookie.
export Cookie='твой-cookie-из-браузера'
Не сохраняй Cookie в коде или в репозитории: это чувствительные данные доступа к аккаунту.
Запуск
Пример выгрузки операций за май 2026 года:
python3 load_data.py --year 2026 --month 5 --output sber_may_2026.xlsx
Если --output не указать, файл будет создан с именем:
sber_operations_2026_05.xlsx
Использование из кода
from load_data import SberMonthHistoryExporter
exporter = SberMonthHistoryExporter()
output_path = exporter.save_month(2026, 5, "sber_may_2026.xlsx")
print(output_path)
Веб-интерфейс
Запустить локальную форму:
.venv/bin/python web_app.py
После запуска откройте:
http://127.0.0.1:8000
Публичный адрес через Traefik:
https://sber.gb.7af.ru/
В форме можно вставить cookies в одном из поддержанных форматов, формат определяется автоматически:
- Netscape
cookies.txt - JSON-массив cookies
- обычный HTTP-заголовок
Cookie
Для получения cookies.txt можно использовать расширение Chrome:
Get cookies.txt LOCALLY.
Порядок действий:
- Установить расширение Get cookies.txt LOCALLY.
- Открыть СберБанк Онлайн и авторизоваться.
- Скопировать cookies через расширение и вставить их в поле формы.
После вставки cookies форма сразу проверяет, сможет ли сервер распарсить введенный формат.
После выбора месяца экспорт скачивается ZIP-архивом. Внутри архива:
.xlsxс основными полями операций.jsonсо списком всех операций в том виде, в котором они пришли из API
Каждый экспорт сохраняется в data/exports с уникальным именем ZIP-архива. После скачивания архив не удаляется; отдельные временные .xlsx и .json остаются только внутри архива.
Запуск через Docker Compose
docker compose up --build
После запуска интерфейс будет доступен здесь:
http://127.0.0.1:8000
В Docker файлы экспорта сохраняются в named volume sberhistorytoexcel_sber-history-data.
Остановить контейнер:
docker compose down
Можно отдельно получить операции без сохранения:
from load_data import SberMonthHistoryExporter
exporter = SberMonthHistoryExporter()
operations = exporter.fetch_month(2026, 5)
print(len(operations))
Формат результата
В Excel попадают основные поля операции:
- дата
- получатель
- описание
- сумма операции
- валюта
- сумма в RUB
- бонусы Спасибо
- счет
- остаток после операции
- статус
- тип операции
- код категории
- ID операции
Возможные ошибки
Если Cookie не задан:
ValueError: Set Sber auth cookie in the Cookie environment variable.
Если Cookie устарел, Сбер может вернуть ошибку авторизации. В этом случае нужно снова войти в СберБанк Онлайн в браузере и обновить значение переменной Cookie.