Yahoo pipes. Cоздаем RSS ленту интересного сайта

Давно собирался написать об этом сервисе
.
Кратко описать его возможности можно тремя пунктами:
1) получает данные по заданному адресу;
2) обрабатывает их;
3) преобразует результат в нужный формат (например, RSS ленту).
Но за этими пунктами скрываются огромные возможности!
Примечание. Их конкретный размер, естественно, зависит от ваших навыков в использовании сервиса
И вот тут и кроется настоящее преимущество Yahoo pipes. Он позволяет решить задачи, для которых обычно приходится писать специальную программу или скрипт.
Повторять документацию я не буду, а просто покажу конкретный пример.
Постоянные читатели, этого блога, наверное, в курсе, что я часто использую PHP фрэймворк CodeIgniter. И, естественно, я стараюсь отслеживать информацию о нем.
Но, к сожалению, не все блоги имеют RSS ленты, а без них быть в курсе обновлений нескольких десятков ресурсов просто не реально. Например, блог Тыманчи Ыргын. Автор опубликовал довольно подробное руководство по созданию блога с помощью CodeIgniter (из 7 частей), а RSS ленты – нет.
Попробуем решить эту проблему с помощью Yahoo pipes.
Прежде всего, проанализируем структуру блога. Все записи выводятся на главной странице в хронологическом порядке.
Допустим, мы просто хотим получать заголовок самой первой записи на странице. Чтобы его «вырезать» необходимо определить html разметку. Обычно, я для этих целей использую Firebug (плагин FireFox), но можно просто открыть страницу в режиме просмотра html.
Как и следовало ожидать, нужная нам информация находится между тегами <h1> и </h1>.
Теперь идем на Yahoo pipes, регистрируемся в системе (можно использовать существующий аккаунт Yahoo) и жмем кнопку «Create a pipe».
После этого, вы увидите окно конструктора «труб» ("pipe" на английском означает "труба", "трубопровод"). В его правой части находится меню выбора блоков. Открываем вкладку «Sources» (обычно она открыта по-умолчанию) и перетягиваем блок «Fetch page» на рабочее поле (центральную часть окна).
Этот блок позволяет получить html страницу по ее адресу (URL). Кроме того, он позволяет вырезать часть из нее с помощью параметров «Cut content from» «to». Если эти значения не задавать, то в RSS ленту будет добавлена вся страница.
Мы установим такие значения параметров:
URL - http://erum.ru/
Cut content from - <h1>
to - </h1>.
Теперь наш блок будет работать следующим образом:
1) получит страницу;
2) найдет теги <h1> и </h1>;
3) вырежет текст, который находится между этими тегами.
Теперь нам нужно сформировать RSS ленту. Для этого нужно создать два поля (как минимум): title и link.
Для этого добавляем на рабочее поле блок Rename (находится в группе Operators). А в нем два параметра:
item.content copy as link
item.content rename title
И соединяем вход этого блока с выходом Fetch Page.
На данный момент на выходе блока Rename есть два параметра, которые полностью повторяют данные, полученные со страницы. Чтобы лента отображалась правильно, нам нужно вырезать ссылку и заголовок статьи из исходного текста.
Для этого добавляем блок Regex. Он позволяет преобразовывать данные с помощью регулярных выражений.
Создаем в нем два правила:
In item.title replace .*>(.*)</a>.* with $1
In item.link replace .*href\s*=\s*"?(.*?)".* with $1
Первое правило вырезает из текста заголовок статьи и присваивает его полю title. Второе – вырезает ссылку и присваивает ее полю link.
Теперь нам осталось соединить выход блока Regex с входом Pipe Output. Как несложно догадаться из названия последний блок формирует выходные данные (RSS ленту).
В общем, у вас должно получиться что-то похожее на этот рисунок.
Сохраняем трубу «Save» и смотрим результат – «Run pipe…».
В открывшемся окне вы увидите результат работы вашей «трубы», а также ссылку на RSS ленту (More options -> Get as RSS).
Как видите работать с Yahoo pipes несложно. Конечно, этот пример элементарный и далеко не законченный, но даже в таком виде мы уже решили задачу.
В следующих выпусках я продолжу рассказывать об этом сервисе.
До встречи!
Спонсор статьи:
Программное обеспечение для создания собственных безопасных e-mail рассылок
Понравилась статья? Подпишитесь на продолжение
!
Опубликовано в Web разработка, Yahoo Pipes
Комментарии (11)
Вы можете отслеживать обсуждение записи с помощью RSS 2.0 ![]()
Вы также можете оставить комментарий, или трекбек с Вашего сайта.
Оставить комментарий







Очень хороший пост. Добавила Ваш блог в закладки. Есть много ценных и полезных мыслей, которые я применю на деле. Но понадобится еще время, чтобы осмыслить информацию. Даже сейчас, когда после прочтения текста Вашего поста, в тот момент, когда пишу комментарий, я думаю, о тех вещах, смысл которых мне теперь совсем по другому видится. Эх, что за день сегодня – полезный день.
Мде.. Предыдущий комментатор вверг меня в шок своей выдумкой на бредоспам =)
Яху пайпс хорошо для блогоферм всяких юзать, т.е. тем кто сплогами занимается
Предыдущий комментатор - спамер. Совсем недавно у кого-то читал что были такие же комментарии. Судя по всему, этот текст проходит через фильтры и даже при ручной модерации не всегда понятно, что это спам.
Хм… никогда не пробовал. Нужно протестить…
Вот сначало был вопрос о Pipes, но дойдя до комментов я его забыл и теперь мне интересно что же написал «предыдущий комментатор»
Не проблема
Комментарий вернул, без ссылки конечно.
Лол ))
Коммент жжет.
А касательно поста — спасибо. Кстати, как feedburner такой фид принимает, нормально?
Честно говоря, не пробовал.
В любом случае у них довольно подробные сообщения об ошибках
Спасибо большое. Много слышал про этот сервис, но никак не знал как подступиться. Теперь есть повод
Буду ждать продолжения.
Ништяк а искал где толково то написано о настройке этих труб…
Bookmarks…
Remmrit.com user has just tagged your post as !…