Парсер ссылки с poizon (Дистанционная работа)

Бюджет не указан

Задание: Парсер ссылки с poizon (Дистанционная работа)

## 1. Описание задачи Мне нужен промежуточный backend-сервис (API) для моего Telegram-бота. В бот отправляют ссылку на товар с китайской платформы POIZON, а ваш сервис должен спарсить страницу и вернуть структурированные данные о товаре (название, цену, фото, размеры и т.д.) в формате JSON. ВАЖНО: потребуется парсить мобильное приложение! веб сервисы отдают не ту информацию, мне важно получать информацию с внутреннего рынка, а это только мобильное приложение **Как это будет работать:** 1. Telegram-бот (его пишу отдельно я или другой разработчик) отправляет HTTP-запрос с URL товара на ваш сервис. 2. Ваш сервис парсит страницу POIZON. 3. Ваш сервис возвращает готовый JSON-ответ. 4. Бот отдает эти данные пользователю. ## 2. Что должен делать сервис (функциональные требования) ### 2.1. Единственный эндпоинт Сервис должен принимать запросы по URL (`/parse`) с параметром `url` (ссылка на товар).``` ### 2.2. Какие данные нужно извлечь (обязательно) Это самый важный пункт. Сервис должен достать со страницы товара следующее: * **Название товара:** Полное название. * **Цена:** В китайских юанях (CNY). Было бы отлично, если бы сервис умел конвертировать цену в USD и RUB по текущему курсу (можно использовать бесплатное API для курсов валют). * **Фотографии:** Массив прямых ссылок на изображения в хорошем качестве. * **Размеры и наличие:** Список доступных размеров, желательно с соответствием EU/US/UK/см и ценой для каждого размера (если она разная). Статус "в наличии/нет в наличии" для каждого размера. * **Категория:** Полный путь категории (например, "Обувь > Кроссовки > Nike"). * **Артикул (SKU):** Уникальный код товара. * **Вес и габариты упаковки:** Если эта информация указана на странице. * **Общее наличие:** In stock / Out of stock. ### 2.3. Как должен выглядеть ответ Сервис должен возвращать JSON. Я привел пример в полной версии ТЗ, но структура должна быть понятной и включать все пункты из раздела 2.2. ### 2.4. Обработка ошибок Сервис должен корректно реагировать на проблемы: * Если ссылка битая или товара нет → вернуть `404 Not Found`. * Если POIZON заблокировал запрос или не отвечает → вернуть `503 Service Unavailable`. * Если прислали ссылку не на POIZON → вернуть `400 Bad Request`. * Все ошибки нужно логировать (записывать в файл). ## 3. Технические требования (что важно для меня) ### 3.1. Стек технологий Вы можете выбрать любой удобный вам стек (Python, Node.js, Go, PHP и т.д.), но в отклике, пожалуйста, **обоснуйте свой выбор**. Мне важно, чтобы технология была надежной и подходила для задач парсинга. Например, если выберете Python, буду благодарен за указание конкретных библиотек (aiohttp, requests, BeautifulSoup, Scrapy и т.д.). ### 3.2. Устойчивость к блокировкам (это критично!) POIZON может блокировать запросы от ботов. Ваш сервис должен это учитывать. Вам нужно продумать механизмы: * Использование прокси (пул прокси-серверов). Желательно, чтобы прокси можно было легко менять в конфиге. * Ротация User-Agent и других заголовков. * Эмуляция поведения реального пользователя (паузы между запросами в пределах одного парсинга). * Если возможно — использование headless-браузера (например, Puppeteer или Playwright) для обхода сложной защиты. ### 3.3. Инфраструктура и запуск * Сервис должен запускаться в контейнере Docker. Мне нужен `Dockerfile` и готовый образ. * Код должен быть выложен в Git-репозиторий (GitHub, GitLab). * Настройки (ключи от API курсов валют, список прокси, user-agent'ы) должны выноситься в переменные окружения или конфиг-файл. ## 4. Что я должен получить в итоге (результат работы) 1. **Исходный код** всего сервиса в репозитории. 2. **Понятный README.md**, где написано: * Как установить все зависимости. * Как настроить прокси и другие параметры. * Как запустить сервис локально и через Docker. 3. **Документация по API:** хотя бы примеры запросов и ответов (можно curl). 4. **Dockerfile** и, если нужно, `docker-compose.yml` для простого запуска. 5. **Примеры работы:** скриншоты или коллекция в Postman, показывающие, что сервис работает и парсит данные. ## 6. Дополнительно (не обязательно, но приветствуется) ### 6.1. Модуль автовыкупа Если вы имеете опыт в автоматизации покупок на китайских площадках и готовы в будущем взяться за модуль автовыкупа (оформление заказа на сайте по заданным параметрам) — это огромный плюс. Эта задача будет оплачиваться отдельно, но наличие готового исполнителя на "все руки" для меня очень ценно. ## Откликаясь на проект, пожалуйста, напишите: 1. Каким стеком планируете пользоваться и почему. 2. Есть ли у вас опыт парсинга сложных сайтов (особенно китайских) и борьбы с блокировками. 3. Примерную стоимость и сроки. 4. Ссылки на похожие работы (если есть).