SberHistoryToExcel/README.md

5.2 KiB
Raw Blame History

Sber History To Excel

Скрипт выгружает историю операций СберБанк Онлайн за выбранный месяц и сохраняет ее в один Excel-файл .xlsx.

Что делает

  • Получает операции через API истории операций Сбера.
  • Забирает данные постранично.
  • Оставляет только операции за указанный месяц.
  • Убирает дубли по идентификатору операции.
  • Сохраняет результат в один .xlsx файл.

Требования

  • Python 3.10+
  • Библиотека requests
  • Актуальный Cookie авторизованной сессии СберБанк Онлайн

Установка зависимости:

python3 -m pip install requests

Скрипт берет 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.

Порядок действий:

  1. Установить расширение Get cookies.txt LOCALLY.
  2. Открыть СберБанк Онлайн и авторизоваться.
  3. Скопировать 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.