Skip to content

Open-Inflation/pyaterochka_api

Repository files navigation

Pyaterochka API (not official)

Tests last run (ISO) Tests PyPI - Python Version PyPI - Package Version PyPI - Downloads License Discord Telegram

Pyaterochka (Пятёрочка) - https://5ka.ru/

⭐ Star us on GitHub | 📚 Read the Docs | 🐛 Report Bug

Принцип работы

Библиотека полностью повторяет сетевую работу обычного пользователя на сайте.

Usage:

pip install pyaterochka_api python -m camoufox fetch
from pyaterochka_api import PyaterochkaAPI import asyncio from PIL import Image async def main(): async with PyaterochkaAPI() as api: # 1. Получение информации о текущем выбранном магазине доставки store_info = await api.delivery_panel_store() sap_code = store_info["selectedStore"]["sapCode"] print(f"SAP код выбранного магазина: {sap_code}\n") # 2. Получение списка всех категорий tree_resp = await api.Catalog.tree(sap_code_store_id=sap_code) categories_data = tree_resp.json() first_category = categories_data[0] print(f"Первая категория: {first_category['name']!s:.50s}...\n") # 3. Получение списка товаров в первой категории products_resp = await api.Catalog.products_list( category_id=first_category["id"], sap_code_store_id=sap_code ) products_data = products_resp.json() first_product_plu = products_data["products"][0]["plu"] print(f"Первый товар (PLU): {first_product_plu}\n") # 4. Получение подробной информации о первом товаре product_info_resp = await api.Catalog.Product.info( sap_code_store_id=sap_code, plu_id=first_product_plu ) product_info_data = product_info_resp.json() print(f"Название первого товара: {product_info_data['name']!s:.50s}...\n") # 5. Примеры использования геолокации # Поиск адресов по запросу suggest_resp = await api.Geolocation.suggest("москва") print(f"Предложения по геолокации для 'москва': {suggest_resp.json()['results'][0]['address']['formatted_address']!s:.50s}...\n") # Определение текущей геолокации geocode_resp = await api.Geolocation.geocode() pos: str = geocode_resp.json()["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"]["pos"] longitude, latitude = pos.split(" ") print(f"Выбранная геолокация (долгота, широта): {longitude}, {latitude}\n") # 6. Скачивание изображения (на примере изображения первой подкатегории) image_link = first_category["categories"][0]["image_link"] image_stream = await api.General.download_image(image_link) # Пример обработки изображения с помощью PIL with Image.open(image_stream) as img: print(f"Изображение скачано. Формат: {img.format}. Размер: {img.size}\n") # img.save("first_category_image.png") # Можно сохранить локально # Запуск асинхронной функции main if __name__ == "__main__": asyncio.run(main())

Для более подробной информации смотрите референсы документации.


Report

If you have any problems using it / suggestions, do not hesitate to write to the project's GitHub!