Неофициальная Python библиотека для работы с API Купер (бывш. СберМаркет)
Project description
Kuper API
Неофициальная Python библиотека для работы с внутренним API сервиса доставки Купер
Библиотека предоставляет высокоуровневый клиент и объектные модели для каталога (ретейлеры, магазины, товары, рестораны), адресов, корзины, заказов и оформления.
Особенности
- Синхронный клиент
Clientсо всеми известными маршрутами API. - Объектные модели данных вместо «сырых» словарей.
- Обход анти-бот защиты ServicePipe через подмену TLS-отпечатка браузера
(под капотом —
curl_cffi). - Cookie-авторизация и автоматическое получение CSRF-токена.
- Поддержка сервиса оформления (checkout v3): инициализация, способы оплаты, завершение заказа.
Установка
pip install curl_cffi
pip install kuper_api
Быстрый старт
Чтение каталога (доступно без авторизации):
from kuper_api import Client
client = Client()
# Магазины по геолокации
for store in client.stores(lat=55.7558, lon=37.6173):
print(store.id, store.retailer.slug, store.name)
# Поиск товаров в магазине (числовой Store ID)
for product in client.products(327, query='молоко'):
print(product.id, product.price, product.name)
Для корзины, профиля и оформления нужна cookie из авторизованного браузера:
from kuper_api import Client
with open('.cookie.txt', encoding='utf-8') as f:
cookie = f.read().strip()
client = Client(cookie=cookie)
session = client.shopping_session()
print(session.current_user.email)
# Добавление товара в корзину
cart = client.cart()
client.line_item_add(cart.number, store_id=327, product_id=39055067663, quantity=1)
Авторизация
API делит маршруты на два семейства:
- v2 (профиль, корзина, заказы) — авторизуются по cookie.
- checkout v3 (
/api/v3/checkout/...) — отдельный сервис, в библиотеке заголовки авторизации (client-token,client-id,sbm-forward-tenant) проставляются автоматически.
Строку cookie нужно скопировать из авторизованного браузера (DevTools →
Network → любой запрос к kuper.ru → заголовок cookie). Важно, чтобы в ней
был свежий spsc (анти-бот) и авторизованный _Instamart_session.
Анти-бот
Купер закрыт анти-ботом ServicePipe, который распознаёт «голый» HTTP-клиент по
TLS-отпечатку (JA3/JA4) и отдаёт 307, низводя сессию до анонимной. Поэтому
библиотека использует curl_cffi с подменой отпечатка реального браузера
(параметр impersonate). При срабатывании блокировки запрос автоматически
повторяется.
Лицензия
Автор
Если у вас возникли вопросы по бибилотеке можете написать создателю в Телеграм: @inmyuse
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kuper_api-0.1.0.tar.gz.
File metadata
- Download URL: kuper_api-0.1.0.tar.gz
- Upload date:
- Size: 24.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bed26b07e895de7ecbf6c25e948c860cd5042707032ee0ab9537accdba1c2ee
|
|
| MD5 |
637511ae7d6b8da71e84c769e5e1745b
|
|
| BLAKE2b-256 |
4a674d889e6e3e79edd4cc27fb014274134517626f781c814f171dbfe96ae0aa
|
File details
Details for the file kuper_api-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kuper_api-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eabfc0d87b142f2aaac00f2d92492d69b7d9c7b903ce21c26857e51eb3ee0165
|
|
| MD5 |
013c230367b672006a8269d5e691a9ff
|
|
| BLAKE2b-256 |
a22b0c554d99bfd6645813f2435557de79c9a6d92712c8256701e5d25924d271
|