Простые парсеры block + page для Drupal 8

Главные вкладки

Аватар пользователя otolaa otolaa 11 сентября 2018 в 22:03
1

# 1. cbr - currency module
это парсинг валютны, который анализирует XML-api CBR.RU
# 2. weather - parsing pogoda module
это парсинг yandex.ru/pogoda
# 3. empty_front_page
некоторые исправления для работы модуля
# 4. coinmarketcap
это парсинг XML-api https://coinmarketcap.com/api/
# 5. yandex_map_block
адрес на карте Yandex Map для block
# 6. kinopoisk_afisha_city
это парсинг kinopoisk.ru (далек от идеала, в процессе)

https://github.com/otolaa/drupal8 скачать и потестить можно тут, ну и отписаться по багам



Блоки валюта погода


страница погоды


Блоки крипто-валюты


Блоки расписание фильмов


Страница расписания фильмов парсинг kinopoisk

Комментарии

Аватар пользователя Orion76 Orion76 12 сентября 2018 в 8:55
1

Константы (числовые и строковые индексы массивов и т.п.) лучше определить как "нормальные" константы (через *const*)

а если сделать парсинг через xpath, определив селекторы или как константы или вынести в настройки блока, код стал бы проще и универсальнее.

по сути, в большинстве случаев структура контента для парсинга однотипна:
1.Контейнер (блок, в котором содержиться необходимая информация).
2.Если контейнер представляет собой что-то типа массива однотипных элементов, то следующим уровнем будет - элемент этого массива.
3.И на последнем уровне, конкретное "поле" в элементе.

т.е. в большинстве случаев, чтобы без сложных манипуляций выдернуть из источника нужные данные, достаточны селекторы 2-3 уровней(контейнер, элемент(по ситуации), поле) и пара циклов, агрегирующих данные в результирующий массив.