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