Парсер нескольких сайтов магазинов (3-7 шт)
Основные цели:
Парсинг данных вида: товар (карточка товара):массив синонимов (офферов)
Парсинг полей-характеристик товаров (они же фильтры)
Парсинг структуры категорий и связей товар-категория
Подробное ТЗ в ЛС.
Для каждой площадки свой набор таблиц товаров/категорий/полей и тд
Экстракторы (файловые):
Новые товары в категории: кликаем на категорию - возвращает дамп с новыми товарами для конкретной категории
Требования к стеку:
Laravel + laradock в корне репозитория (postgres clickhouse redis redis-webui laravel-horizon)
Во время парсинга, нужно отлавливать то обстоятельство, когда площадка меняет верстку карточки страницы и категорий и делать алерт в телегу и на почту
Во время ошибок делать алерт в телегу и(или) на почту
Юнит-тесты (хотя бы минимально)
Используем для очередей horizon (в контейнере ларадока)
Использование doctrineORM желательно
Для запросов используется массив проксей, это нужно сразу заложить в код, но при разработке их не использовать
Для парсинга товаров и парсинга категорий используются очереди с разными именами
Для запросов желательно использовать Guzzle
Логирование делаем стандартными средствами laravel
Логирование и другие вспомогательные операции по максимуму желательно выносить во вне классов (в декораторы, пример дам)
Таски для очереди нужно реализовать таким образом чтобы они были независимы от используемого движка очередей (чтобы с минимальными усилиями можно было переехать на другой движок очередей)