Наполнение сайта на Друпале из RSS лент

 Ситуация простая: есть некий сайт, rss-ленты с других сайтов, и желание заполнить сайт контентом. Но есть небольшая проблема: в лентах лишьанонс материала, а за полной версией нужно идти по ссылке в rss-ленте. Значит нам нужно импортировать rss-ленту, заменив анонсы материалов на полные версии страниц.

На помощь нам спешит модуль Feeds. Он позволяет:

  • импортировать RSS-ленты, CSV, OPML файлы
  • создавать материалы, категории, пользователей на основе импортированных данных
  • выполнять регулярный импорт
  • позволяет осуществлять маппинг полей источника и полей конечного материала

Кроме этого есть большое количество модулей, позволяющих расширить функциональность Feeds.

Извлечь полные версии материалов в рамках модуля feeds и его расширений у меня не получилось. В поисках я случайно наткнулся на сервис Pipes от Yahoo.

Он предоставляет огромные возможности по обработке rss-лент и сбора контента в сайтов. Наличие лентыне является обязательным требованием. Кроме того вы сможете производить манипуляции с полученными данными: фильтровать записи, удалять или заменять фрагменты, выбирать записи по критерям, и также создавать свои rss-ленты.

Идея простая: импортируем rss-ленту в Pipes, обрабатываем и аггрегируем на нашем сайте с помощьюмодуля Feeds. Вот что получилось в pipes:

Нам пригодилось три основных инструмента: Fetch Feed (для чтеня ленты), Loop (для обхода по каждому материалу ленты), Fetch Page (получение страницы по ссылке в материале ленты).

Обратите внимание, что содержимое полученной страницы отсекается.

Следует говориться, что не любую ленту можно переработать таким образом. Работа с модулем Feedsинтуитивно понятно. Порядок:

  • устанавливаем модуль Feeds
  • создаем новый импортер
  • прикрепляем его к отдельному типу материала. Каждый раз, когда нам нужно импортировать новую ленту мы создаем отдельный материал этого типа, и в поле RSS пишем адрес ленты.
  • указывает тип материала приемника и устанавливаем соотвествие полей источнка и приемника
  • импортируем)

Автора автора