Backend-скрипт эмуляции пользовательского сценария в мобильном приложении (Бюджет: 50 000 ₽, для всех)

⚓ Work    📅 2026-06-28    👤 surdeus    👁️ 1      

surdeus

ТЗ: 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. Сдача Исходный код с комментариями Краткая инструкция по запуску Совместный тестовый запуск с проверкой логов 🏷️ Work_feed