К содержимому

Документация

Python SDK: Яндекс Маркет: товары и поиск готового решения

ctx.yandex_market() работает в готовом решении Яндекс Маркета. Сначала настройте разрешённые товары, регионы, вид сценария и предел страниц. Доступность вызова проверяет платформенный обработчик по настройкам источника; произвольная ссылка не обходит ограничения.

products

ctx.yandex_market().products() -> list[str]

Аргументы не нужны.

Результат: list[str].

Настроенные идентификаторы или ссылки товаров; локально, без запроса.

result = ctx.yandex_market().products()

regions

ctx.yandex_market().regions() -> list[str]

Аргументы не нужны.

Результат: list[str].

Настроенные строковые идентификаторы регионов. Передайте выбранное значение в card/search.

result = ctx.yandex_market().regions()

query

ctx.yandex_market().query() -> str

Аргументы не нужны.

Результат: str.

Поисковая фраза из настроек; пустая строка означает, что она не задана.

result = ctx.yandex_market().query()

max_pages

ctx.yandex_market().max_pages() -> int

Аргументы не нужны.

Результат: int.

Глубина из настроек, ограниченная 1–30 страницами; по умолчанию 3.

result = ctx.yandex_market().max_pages()

card

ctx.yandex_market().card(product, region_id) -> dict[str, Any]

Аргумент Тип Обязателен Назначение
product str Да Товар из настроенного списка готового источника.
region_id str Да Идентификатор разрешённого региона, не его отображаемое название.

Результат: dict[str, Any].

Получить выбранный товар в разрешённом регионе. Возвращает первую нормализованную карточку или пустой словарь, если её нет.

market = ctx.yandex_market()
products = market.products()
regions = market.regions()
if not products or not regions:
    ctx.abort('Configure products and regions')
result = market.card(products[0], regions[0])

search

ctx.yandex_market().search(region_id, page) -> dict[str, Any]

Аргумент Тип Обязателен Назначение
region_id str Да Идентификатор разрешённого региона, не его отображаемое название.
page int Да Номер страницы в разрешённой глубине.

Результат: dict[str, Any].

Получить страницу по настроенному запросу. Регион и глубина проверяются платформой. Проверяйте карточки и метаданные страницы перед продолжением.

market = ctx.yandex_market()
regions = market.regions()
if not regions:
    ctx.abort('Configure a region')
result = market.search(regions[0], 1)

record

ctx.yandex_market().record(card) -> dict[str, Any]

Аргумент Тип Обязателен Назначение
card dict[str, Any] Да Уже полученная карточка источника.

Результат: dict[str, Any].

Выбрать поля нужного вида сценария из уже полученной карточки. Выполняется локально, автоматически запись не сохраняет. Для цен, наличия и рейтингов оставляет соответствующие поля.

result = ctx.yandex_market().record({'ym_id': '123', 'title': 'Product'})

Сетевые операции могут завершаться ошибкой из-за ограничений источника или недоступного браузерного сервиса. Отсутствие карточек не доказывает успешный полный сбор. Проверяйте журнал и пробный прогон. Этот помощник не является неограниченным публичным API Маркета.

Ошибки и контекст выполнения

Все вызовы синхронны. Неверный аргумент или формат данных может вызвать ValueError/TypeError; отказ платформы или недоступность сервиса вызывает RuntimeError. Отсутствие элемента/значения даёт None либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.