SberHistoryToExcel/README.md
2026-06-15 17:01:13 +03:00

134 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sber History To Excel
Проект уже развернут на сервере:
```text
https://sber.gb.7af.ru/
```
Веб-интерфейс выгружает историю операций СберБанк Онлайн за выбранный месяц и скачивает ZIP-архив. Внутри архива лежат:
- `.xlsx` с основными полями операций
- `.json` со списком всех операций в том виде, в котором они пришли из API
## Как пользоваться
1. Установите расширение Chrome [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 через расширение.
4. Откройте [https://sber.gb.7af.ru/](https://sber.gb.7af.ru/).
5. Вставьте cookies в поле формы.
6. Выберите месяц и скачайте ZIP-архив.
Формат cookies определяется автоматически. Поддерживаются:
- Netscape `cookies.txt`
- JSON-массив cookies
- обычный HTTP-заголовок `Cookie`
После вставки cookies форма сразу проверяет, сможет ли сервер распарсить введенный формат.
## Что делает экспорт
- Получает операции через API истории операций Сбера.
- Забирает данные постранично.
- Оставляет только операции за выбранный месяц.
- Убирает дубли по идентификатору операции.
- Формирует Excel-файл и JSON со всеми исходными данными операций.
- Отдает результат ZIP-архивом.
В Excel попадают основные поля операции:
- дата
- получатель
- описание
- сумма операции
- валюта
- сумма в RUB
- бонусы Спасибо
- счет
- остаток после операции
- статус
- тип операции
- код категории
- ID операции
## Безопасность cookies
Cookies дают доступ к аккаунту СберБанк Онлайн в рамках активной сессии. Не сохраняйте их в коде, репозитории или публичных чатах.
В веб-интерфейсе cookies используются для запроса к Сберу и не сохраняются в файлы экспорта.
## Возможные ошибки
Если cookies устарели, Сбер может вернуть ошибку авторизации. В этом случае нужно снова войти в СберБанк Онлайн в браузере, скопировать свежие cookies и повторить экспорт.
Если форма пишет, что cookies не удалось распарсить, проверьте, что вы вставили полный текст cookies из расширения.
## Технические подробности
### Локальный запуск веб-интерфейса
```bash
.venv/bin/python web_app.py
```
После запуска откройте:
```text
http://127.0.0.1:8000
```
### Запуск через Docker Compose
```bash
docker compose up --build
```
После запуска интерфейс будет доступен здесь:
```text
http://127.0.0.1:8000
```
В Docker файлы экспорта сохраняются в named volume `sberhistorytoexcel_sber-history-data`. В volume остается только ZIP-архив; временные `.xlsx` и `.json` сохраняются только внутри архива.
Остановить контейнер:
```bash
docker compose down
```
### Использование из кода
```python
from load_data import SberMonthHistoryExporter
exporter = SberMonthHistoryExporter()
output_path = exporter.save_month(2026, 5, "sber_may_2026.xlsx")
print(output_path)
```
Можно отдельно получить операции без сохранения:
```python
from load_data import SberMonthHistoryExporter
exporter = SberMonthHistoryExporter()
operations = exporter.fetch_month(2026, 5)
print(len(operations))
```
### Требования для локального запуска
- Python 3.10+
- `requests`
Установка зависимости:
```bash
python3 -m pip install requests
```