/parser

Primary LanguagePHP

Парсер рецептов

Общие требования

  • Класс парсера должен быть отнаследован от класса ParserAbstract
  • Получение данных с определенной страницы должно происходить через метод get
  • Вывод информации надо делать через метод log, но не стоит им злоупотреблять
  • Надо реализовать функцию getSupportedDomains, которая будет возвращать массив со списком доменов на которых может находиться рецепт
  • Надо реализовать функцию isSupportedUrl, которая будет проверять url отправленный для парсинга на корректность

Парсинг списка доступных рецептов

Необходимо реализовать функцию parseList, которая при нахождении страницы с рецептом должна будет вызывать функцию parsePush

Парсинг страницы с рецептом

Необходимо реализовать функцию parseContent, которая реализуется механизм анализа конетна страницы и возвращает массив с данными.

Для ключей в массиве использовать:

  • url - откуда мы спарсили данные
  • title - название рецепта
  • photos - массив фотографий прикрепленных к рецепту, если фотография одна, то в массиве должен лежать один элемент
  • ingredients - массив, каждый элемент которого является массивом описывающим ингредиент:
    • name - наименование ингредиента, например Огурец, Яйца или Черный молотый перец
    • amount - количество ингредиента, например 100 г, по вкусу, на кончике ножа или 1 штука
    • description - дополнительное описание ингредиента
    • link - страница на описание ингредиента
  • instruction - инструкция для приготовления. Если инструкцию можно разбить на шаги, то это должен быть массив шагов. Если инструкцию нельзя разбить на шаги, то ключ должен содержать один элемент с ключем html.
    • image - картинка для шага
    • html - текст шага
  • duration - время приготовления должно быть указано в минутах, если на целевом сайте используется другой формат (например 1 час 20 минут) то необходимо приводить к минутам
  • portions - количество порций, массив состоящий из двух целых чисел, описывающий количество возможных порций для указанного количества игредиентов
  • cousines - массив с наименованием кухон к которой относится рецепт
  • description - описание рецепта
  • categories - массив из категорий к которым относится рецепт
  • tastes - массив вкусов рецепта (сырный или мясной)
  • targets - предназначение рецепта (на праздник, на каждый день и т.п.)

Остальные ключи можете называть на свое усмотрение.