134 lines
4.7 KiB
Markdown
134 lines
4.7 KiB
Markdown
# 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
|
||
```
|