Парсинг на Laravel

  • Опубликовано 3 года назад
  • Просмотры 2
  • Закончить проект

Описание

На основе готового скрипта github.com/Havenstd06/Lim... нужно добавить парсеры изображений из API, предоставленных сайтами:
pixabay.com
unsplash.com
pexels.com

В базу данных добавляем таблицу `models` – здесь будут храниться все модели камер. Модели камер будут извлечены из exif изображений.

Парсинг будет двух видов: ручной и автоматический:

ручной парсер:

в админке отдельная страница с формой из нескольких полей:
- возможность выбрать провайдер (all/pexels/unsplash/pixabay),
- popular/recent,
- limit (возможность парсить более 1000 изображений за один клик, чтобы сервер не упал),
- приветствовалась бы возможность парсинга по модели (если это возможно).
После каждого парсинга должна отображаться сводка о парсинге (из логов).
автоматический парсер (CRON)
в админке отдельная страница с настройками:
- вкл/выкл
- возможность выбрать частота (1 раз в день, раз в 2 дня, раз в неделю)
- limit (количество изображений)
- провайдер (all/pexels/unsplash/pixabay)
- popular/recent,
результат записывается в logs

Условия парсинга изображения:
изображение будет сохранено, только если изображение уникальная и не было уже сохранено;
изображение будет сохранено, только если изображение содержит данные exif;
изображение будет сохранено, только если в модель камеры меньше 100 изображений;
для каждого спарсенного изображения:
- изображение будет скопировано на сайт
- модель камеры, с которой была сделана эта фотография, полученная из exif, сохраняется в model_id (если модель не существует в БД – эта модель создается)
- сохранить exif (json со всеми данными)
- сохранить автор (json с именем и ссылкой на его профиль)

Подайте заявку, только если вы работали с другими API и знаете, как спроектировать парсер в соответствии с канонами Laravel (абстрактные классы/интерфейсы/контракты ...),но не по 100500 if-else в контроллере. Пример:
github.com/koel/koel/tree...


Опубликовано 3 года назад