Задача
Необходимо разработать механизм автоматического сбора данных с внешнего сайта (сайт отзывов). Как только там появляется новый отзыв о номере или услуге, данные должны поступать на сайт заказчика, работающий на Laravel.
Основные требования
- Парсер должен запускаться автоматически при появлении новой публикации (например, по крону или вебхуку).
- Собранные данные (текст отзыва, название номера, дата и т.д.) сохраняются в базу данных сайта заказчика.
- Интеграция с существующей системой отзывов на Laravel (возможно через модель или API).
- Необходимо избегать дублирования данных (проверка по ID отзыва или ссылке).
- Желательно использовать библиотеки для парсинга (Goutte, Guzzle и т.п.) и формата данных - HTML или JSON.
Пример источника
Сторонний сервис с отзывами на отели/номера. Название его и контактные данные удалены по просьбе.
Технический стек
- PHP / Laravel (версия актуальная)
- Eloquent модели для хранения отзывов
- Cron или Queue для автоматизации
- Безопасность: обработка ошибок, логирование, защита от блокировок
Комментарий
В идеале парсер должен работать в фоне, не нагружая основной сайт. Исполнитель должен предоставить код, готовый к деплою, и описание настройки крона.