Backend-скрипт эмуляции пользовательского сценария в мобильном приложении

Бюджет: 30 000 ₽
351.22 $ – 314.23 €
ТЗ: Backend-скрипт эмуляции пользовательского сценария в мобильном приложении Ozon

1. Цель

Разработать скрипт, который через сетевые запросы эмулирует поведение мобильного приложения Ozon — от запуска до просмотра карточки товара. Сессия гостевая, без авторизации.

2. Платформа (iOS или Android — на выбор исполнителя)

Вариант А — iOS:

Устройство: iPhone (актуальная модель)

UA: OzonStore/<build> CFNetwork/<v> Darwin/<v>

Транспорт: HTTP/2, TLS с Safari fingerprint

API: api.ozon.ru

Вариант Б — Android:

Устройство: актуальный Android-смартфон

UA: okhttp/4.9.3 или актуальный

Транспорт: HTTP/2, TLS с Android fingerprint

API: api.ozon.ru / xapi.ozon.ru

Исполнитель выбирает платформу самостоятельно исходя из своего опыта. Требования к результату одинаковые для обеих платформ.

3. Сценарий (обязательные шаги)

# Шаг – Что происходит

1 Запуск приложения – Инициализация сессии, получение конфигов

2 Открытие поиска – Трекинг открытия поисковой строки

3 Поисковый запрос – Запрос к поисковому API по заданной строке

4 Применение фильтров- Выбор фильтра из выдачи

5 Применение сортировки- Изменение порядка выдачи

6 Скролл выдачи – Пагинация результатов

7 Открытие карточки товара- Запрос по конкретному SKU

8 Просмотр карточки – Загрузка данных товара (цена, кнопки, описание)

4. Антибот

Ozon использует собственную антибот-систему на базе JS proof-of-work. Исполнитель должен:

Корректно обрабатывать 403 + challengeURL на любом запросе

Решать JS-challenge и отправлять валидный токен на /abt/result

Управлять сессионными куками (abt_data, __Secure-ETC и др.)

Поддерживать работу через SOCKS5-прокси

Метод решения challenge — на усмотрение исполнителя (headless-браузер, реверс JS-движка, другое).

5. Интерфейс запуска

bashpython script.py \

  --sku 15817423453 \

  --query "наушники беспроводные" \

  --proxy socks5://user:pass@host:port

Параметры:

--sku — SKU товара для открытия карточки

--query — поисковый запрос

--proxy — прокси (опционально)

--threads — количество параллельных потоков (опционально)

6. Логирование

Каждый запрос: метод, URL, статус, время

Итоговый отчёт: успешных / ошибок / антибот-срабатываний

Режим без реальных запросов для отладки

7. Критерии приёмки

Все 8 шагов выполняются без ошибок

/abt/result возвращает 200 OK (challenge пройден)

initAuth возвращает 200 OK

Поисковая выдача содержит товары

Карточка товара открывается по заданному SKU

Работает с SOCKS5-прокси

Есть логирование каждого шага

8. Стек

Python предпочтителен, но не обязателен. Важен результат.

9. Сдача

Исходный код с комментариями

Краткая инструкция по запуску

Совместный тестовый запуск с проверкой логов
Опубликован 09.10.2026 в 17:15

Выберите способ верификации:

Обновите страницу после прохождения верификации.