вторник, 5 мая 2009 г.

Yahoo Pipes - потрошитель интернета


Такое агресивное название. :)
Да, и действительно инстумент ОЧЕНЬ серьезный.
В марте я столкнулся с необходимостью создать RSS ленту для сайта у которого ее попросту нет "Если гора не идет к Магомеду" .
Спустя 2 месяца почти весь "мой интернет" у меня теперь в Google Reader, и виновник тому разумеется Pipes.
Не скажу, что теперь я "гуру" труб, но на многие грабли уже успел наступить и подметил для себя ряд интересных вещей.
Итак:
  1. При использованни модуля Fetch Page(загружает в трубу HTML страницу), флаг начала(from) в большинстве случаев простого парсинга, должен быть равен флагу разделителя(delimiter)

  2. Регулярные выражения, придающие трубам неограниченные возможности, используют синтаксис Perl, для отладки удобно ипользовать RegexBuddy. Поскольку в модуле RegEx используется метод Replase, то для выдергивания какого либо значения, нужно шаблон регулярных выражений, возвращающих значение, помещать между .* (тоесть поглащать весь исходный текст). Так же полезно прочитать про жадный и не жадные алгоритмы.
  3. Если регулярное выражение, будет возвращать многострочную часть и первая строка в этой многострочной части будет пустая, труба все остальные строки проигнорирует, и в результате вы получите - пустое значение.
  4. Если вы хотите снабдить свою ленту какими либо скриптами, то тут Pipes немного разочарует... Он автоматически вырезает все теги link и script, не только с исходной HTML страницы, но и при непосредственной вставке внутри трубы. Видимо в целях безопасности все это.
  5. Время обновления трубы 7 часов :(, ну да, труб то много
  6. Линк полчившейся трубы будет всегда ссылaтся на yahoo pipes, что при парсинге html будет не всегда корректно. Ну это все наверно в целях пиара. :)
На всякий случай закидываю удочку, для тех кому с трубами разбираться неохото(или нет времени), а канал для сайта хочется поиметь.

Делаю каналы от 500р. для url.

Канал будет содержать 3 обязательных элемента:
  • Link
  • Title
  • Description
Элемент "Description" будет содержать полный текст новости(статьи). Я создаю пайп, вы копируете себе его в свой профиль на Yahoo Pipes и наслаждаетесь каналом в любое время и в любом месте.

P.S. Прочие навороты канала обсуждаются индивидуально.