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

8 июля, 2008

Логотип yahoo pipes
Давно собирался написать об этом сервисе :-) .

Кратко описать его возможности можно тремя пунктами:
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 ленту).

В общем, у вас должно получиться что-то похожее на этот рисунок.

Yahoo pipe для enum.ru (миниатюра)

Сохраняем трубу «Save» и смотрим результат – «Run pipe…».

В открывшемся окне вы увидите результат работы вашей «трубы», а также ссылку на RSS ленту (More options -> Get as RSS).

Как видите работать с Yahoo pipes несложно. Конечно, этот пример элементарный и далеко не законченный, но даже в таком виде мы уже решили задачу.

В следующих выпусках я продолжу рассказывать об этом сервисе.

До встречи!

Спонсор статьи:
Программное обеспечение для создания собственных безопасных e-mail рассылок

Понравилась статья? Подпишитесь на продолжение rss link !

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в Web разработка, Yahoo Pipes

]]>

Комментарии (11)

Вы можете отслеживать обсуждение записи с помощью RSS 2.0 rss link

Вы также можете оставить комментарий, или трекбек с Вашего сайта.

  1. Алекса 08.07.2008 в 09:47 (Ответить)

    Очень хороший пост. Добавила Ваш блог в закладки. Есть много ценных и полезных мыслей, которые я применю на деле. Но понадобится еще время, чтобы осмыслить информацию. Даже сейчас, когда после прочтения текста Вашего поста, в тот момент, когда пишу комментарий, я думаю, о тех вещах, смысл которых мне теперь совсем по другому видится. Эх, что за день сегодня – полезный день.

  2. Хардварщик 08.07.2008 в 13:56 (Ответить)

    Мде.. Предыдущий комментатор вверг меня в шок своей выдумкой на бредоспам =)

    Яху пайпс хорошо для блогоферм всяких юзать, т.е. тем кто сплогами занимается

    1. Владимир 08.07.2008 в 16:12 (Ответить)

      Предыдущий комментатор - спамер. Совсем недавно у кого-то читал что были такие же комментарии. Судя по всему, этот текст проходит через фильтры и даже при ручной модерации не всегда понятно, что это спам.

  3. Саймон 08.07.2008 в 19:42 (Ответить)

    Хм… никогда не пробовал. Нужно протестить…

  4. Delchyve 08.07.2008 в 20:50 (Ответить)

    Вот сначало был вопрос о Pipes, но дойдя до комментов я его забыл и теперь мне интересно что же написал «предыдущий комментатор» :)

    1. Владимир 08.07.2008 в 21:47 (Ответить)

      Не проблема :-)
      Комментарий вернул, без ссылки конечно.

      1. Delchyve 09.07.2008 в 07:23 (Ответить)

        Лол ))
        Коммент жжет.

        А касательно поста — спасибо. Кстати, как feedburner такой фид принимает, нормально?

        1. Владимир 09.07.2008 в 21:00 (Ответить)

          Честно говоря, не пробовал.
          В любом случае у них довольно подробные сообщения об ошибках :-)

  5. MAQ 09.07.2008 в 00:39 (Ответить)

    Спасибо большое. Много слышал про этот сервис, но никак не знал как подступиться. Теперь есть повод :) Буду ждать продолжения.

  6. Anfi 01.08.2008 в 19:10 (Ответить)

    Ништяк а искал где толково то написано о настройке этих труб…

  7. Remmrit Bookmarking 02.08.2008 в 18:30

    Bookmarks…

    Remmrit.com user has just tagged your post as !…

Оставить комментарий

Введите ваш комментарий

* - обязательные для заполнения поля

Quicktags:

]]>