Постановка задачи

Требуется разработать парсер для 5 интернет-магазинов (адреса будут предоставлены исполнителю), который в автоматическом режиме (раз в час) собирает информацию о товарах, сравнивает цены, рассчитывает разницу между минимальной и максимальной ценой, находит дубликаты (повторяющиеся записи) и исключает их (оставляет либо самую низкую цену, либо первую встреченную - уточнить заказчиком). Обязательно наличие интерфейса: кнопка экспорта итоговой таблицы в формат Microsoft Excel (.xlsx) с корректной структурой столбцов.

Примерный функционал

Ядро парсера

  • Поддержка одновременного парсинга 5 магазинов (рекомендуется асинхронный подход, например, asyncio + aiohttp).
  • Сбор данных: артикул, название товара, цена, ссылка.
  • Логирование ошибок при недоступности сайта или блочном парсере.

Логика обработки

  • Исключение повторов: если один и тот же (или с высокой долей схожести) товар найден на нескольких сайтах, система оставляет одну запись (как послело).
  • Сравнение цен по каждому товару: расчёт разницы (абсолютной и в процентах) между минимальной и максимальной ценой.
  • Автоматический запуск каждые 60 минут по расписанию (встроенный планировщик или фонового таска).

Пользовательский интерфейс

  • Легковесное веб-приложение (FastAPI / Flask) или консольное приложение с кнопками (например, на PySimpleGUI/Tkinter). Веб-форма удобнее для работы.
  • Кнопка «Экспорт в Excel» сразу формирует XLSX со всеми данными (или только готовый срез).
  • Дополнительно: желательно датагрид для просмотра результатов внутри окна браузера.

Ожидаемый стек разработки

  • Python 3.10+
  • Для парсинга: BeautifulSoup4 (парсинг HTML) + реализация под административные/плохие сайты (cookies, random headеrs, прокси).
  • Для скачивания страниц: aiohttp или версия requests при очень небольшом размере.
  • Для расписания: schedule, APScheduler или уже встроен в фреймворк (например, BackgroundScheduler из FastСron).
  • Для Экспорта главного документа: OpenPyXl или XlsxWriter.
  • Исключение повторов: через ISBN, артикул или алгоритм Fuzzy Match при совпадении названия >90%.
  • Для веб-части: FastAPI / Flask (стандартный райд для подобных задач).

Дополнительные пожелания

  • Готовность показать пример, выполненного реальных аналогичного проекта (можно продемонстрировать как аренту из реальной жизни).

Разработка ПО для управления наклоном рабочего стола

Требуется написать программу для управления квадратной площадкой (столом) по 4 осям с помощью двух сервоприводов 12В и аркадного джойстика. Нужно разработать схему подключения, при необходимости предложить модернизацию.

Наполнение контентом карточек товаров для интернет-магазина

Требуется наполнить 200 карточек товаров: скорректировать заголовки, описания и изображения согласно примерам. Задача подходит для быстрого выполнения и подработки специалисту, знакомому с контент-менеджментом.