Описание модулей Yahoo Pipes

Опубликовано в (Yahoo Pipes) | автор splogmaster | 08-12-2008

Тэги: , , , , , ,

Это будет второй вводный в Yahoo Pipes пост (первым был Практическое знакомство с Yahoo Pipes), после чего я буду писать о решении в Yahoo Pipes конкретных, имеющих непосредственное отношение к сплоггерству, задач.

В этом посте я хочу кратко, своими словами исходя из опыта работы с Yahoo Pipes дать описание функциональным модулям, с помощью которых собираются трубы. Модули в Yahoo Pipes сгруппированы по "объекту приложения", т.е. одни модули предназначены для работы с потоком данных, другие для работы со строками и т.д. На рабочем столе модули, разбитые по группам, расположены в левой его части:

Рабочий стол Yahoo Pipes

И так, группы модулей:

Группа Sources - модули этой группы работают с источниками данных, выдавая на выходе поток данных формата XML/RSS:

Модули Yahoo Pipes группы Sources

  1. Fetch CSV - позволяет получить данные из .csv файлов . Пример применения: получить список RSS-лент своих сплогов для последующей агрегации или же для получения списка последних постов на своих сплогах;
  2. Feed Auto-Discovery - поиск на указанной странице всех ссылок на фиды. Модуль может быть полезен на этапе разработки трубы, хотя, всегда надежнее самому просмотреть исходный код страницы и поиском найти фиды, если они там вообще есть;
  3. Fetch Feed - загружает в трубу данные из RSS-фида. Один из основных модулей;
  4. Fetch Data - загружает в трубу XML и другие данные, например, результат отработки php-скрипта генерации случайных чисел;
  5. Fetch Page - загружает в трубу веб-страницу. Главный модуль для парсинга;
  6. Fetch Site Feed - поиск на указанной странице первой попавшейся ссылки на фид. Бесполезный модуль;
  7. Flickr - готовый модуль для поиска картинок на Flickr.com ;
  8. Google Base - поиск по гугло-базе среди новостей, персоналий, продуктов, работы и т.д. Данных в гугловской базе много, хотя полезность их специфическая, в лучшем случае сойдут для узкотематического сплога;
  9. Item Builder - позволяет сделать свой собственный фид. Пойдет для красоты "кода" трубы, хотя легко можно обойтись и без этого модуля;
  10. Yahoo! Local - поиск в базе Yahoo. Я так и не понял что это за база, готовый пример выдает результат поиска по слову "pizza" + какой-то циферный параметр, в общем, что-то явно бесполезное для нашего дела;
  11. Yahoo! Search - поиск в Yahoo-поиске. Я все же считаю, что гораздо продуктивнее будет просто распарсить в ручную выдачу Yahoo-поиска, чем, используя готовый модуль, получить фид с обрезанными чисто текстовыми сниппетами в качестве описания.

Группа User Inputs - в этой группе собраны модули для осуществления диалога с пользователем или же, проще выражаясь, для создания параметрических труб, т.е. труб, результат работы которых зависит от вводных данных/параметров:

Модули Yahoo Pipes группы User Inputs

  1. Date Input - ввод даты. Как и в любом языке программирования, в Yahoo Pipes так же существует разновидность типов данных. Тип данных "datetime" служит для работы со временем и датой;
  2. Location Input - ввод местораспоположения. Бесполезная вещь;
  3. Number Input - ввод чисел;
  4. Private Input - намек на приватность вводимых данных, естественно вещь нам бесполезная;
  5. Text Input - ввод текста;
  6. URL Input - ввод URL. Тип данных "текст" и тип данных "URL" это разные типы.

Группа Operators - здесь собраны модули для преобразований фида:

Модули Yahoo Pipes группы Operators

  1. Count - подсчитывает количество item‘ов (главных/родительских элементов) в фиде;
  2. Filter - фильтрует фид по задаваемым условиям. Например, можно отфильтровать фид по содержанию в описании элементов какого-нибудь ключевого слова или отфильтровать по наличию в определенной категории;
  3. Location Extractor - очередная бесполезная приблуда на тему месторасположения;
  4. Loop - модуль, позволяющий организовывать цикл. Поскольку фид представляет собой некую последовательность элементов, то существует задача перебора всех элементов фида - вот для этой задачи Loop и нужен. Например, мы получем RSS-ленту обновлений с сайта, в ленте естественно обрезанная версия новостей, но нам естественно необходим полный текст каждой новости, для чего мы загруженную ленту пропускаем через цикл Loop, внутри которого для каждого элемента фида будет парсить страницу с полным текстом новости;
  5. Regex - модуль для работы с регулярными выражениями. Модуль необходим при парсинге и не только. О важности регулярных выражений я писал в Регулярные выражения в Yahoo Pipes;
  6. Rename - модуль для переименования и копирования одних подэлементов item‘а в другие;
  7. Reverse - переворачивает фид в обратную сторону. Как я писал, фид это последовательность элементов, где у каждого элемента свой порядковый номер;
  8. Sort - сортировка фида по возрастанию/убыванию любого подэлемента item‘а;
  9. Split - из одного потока данных делает 2, каждый из которых равен исходному;
  10. Sub-element - позволяет выделить из фида определенные подэлементы, отбросив все остальное. Например, вы подгружаем RSS, в которой как минимум есть подэлементы Название, Описание, Ссылка, Дата публикации + всякие служебные подэлементы, но нас интересует только Ссылка - вот используя этот модуль мы оставляем в нашем потоке данных только информацию из подэлемента Ссылка;
  11. Tail - делает обрезку фида с конца. Например, в фиде 10 item’ов. использование модуля Tail со значением 3 оставит от фида только 3 item‘а начиная с конца, т.е. останутся только 10, 9 и 8 item‘ы;
  12. Truncate делает обрезку фида с начала. Использование модулся Truncate со значением 2 отбросит от фида все, кроме первых двух его элементов;
  13. Union - объединение нескольких потоков данных (фидов) в один;
  14. Unique - фильтрация фида на уникальность значений любого из подэлементов. Например, нам нужно исключить в фиде повторяющиеся Названия - для этого мы ставим фильт на уникальность подэлемента Title;
  15. Web Service - позволяет подключить к трубе сторонние веб-сервисы, работающие с форматом данных JSON. До недавнего времени я считал этот модуль бесполезным, пока не наткнулся на пример реализации случайной сортировки фида при помощи стороннего веб-сервиса - средствами только Yahoo Pipes случайную сортировку фида сделать невозможно.

Группа URL  - для работы с URL, в группе всего один модуль:

Модули Yahoo Pipes группы URL

  1. URL Builder - упрощает построение длинных URL’ов, так же позволяет сконвертировать переменную типа "текст" в переменную типа "URL".

Группа String - здесь собраны модули для работы с текстовым типом данных:

Модули Yahoo Pipes группы String

  1. Private String - снова намек на приватность, бесполезный модуль;
  2. Yahoo! Shortcuts - очередная ненужная приблуда, Yahoo просто напоминает, что трубы это все-таки их детище;
  3. String Builder - модуль для построения текстовой строки;
  4. String Regex - работа с регулярными выражениями только для текстовых переменных. В Yahoo Pipes есть один неприятный момент: поскольку трубы ориентированы на работу с фидами, поскольку результат работы трубы есть именно фид, то фид как тип данных является основным и "неприкасаемым" - из-за этого мы не имеем возможности вытягивать из фида кусочек данных и преобразовывать его в текстовую или циферную переменную;
  5. String Replace - заменяет кусок текста в строке на другой кусок;
  6. Sub String - выделяет из строки нужную подстроку (кусок строки);
  7. String Tokenizer - разбивает строку на куски, выдавая результат в виде нумерованного списка. Простейший пример: есть строка, в которой через запятую перечислены ключевые слова - с помощью модуля String Tokenizer мы выделяем из строки каждое ключевое слово и получаем списко ключевых слов, а потом с помощью цикла Loop получим результат выдачи какого-нибудь поисковика по каждому ключевому слову из списка;
  8. Term Extractor - модуль анализирует содержимое фида и для каждого item‘а строит набор ключевых слов. По идее модуль полезный, хотя я его ни разу еще не использовал.
  9. Translate Module - модуль для автоматического машинного перевода содержимого фида. Главный минус этого модуля: перевод применим только к голому тексту, т.е. чтобы не было никаких HTML-тегов.

Группа Date - в этой групее распложены модули для работы с типом данных datetime:

Модули Yahoo Pipes группы Date

  1. Date Builder - преобразование/построение в тип данных datetime;
  2. Date Formatter - форматирование отображения даты/время по нужному шаблону.

Группа Location - в группе всего 1 модуль, такой же бесполезный, как и все остальные модули "приватности" и "месторасположения":

Модули Yahoo Pipes группы Location

  1. Location Builder - бесполезный модуль, даже не могу выразить словами его предназначение.

Группа Number - все, что касается чисел:

Модули Yahoo Pipes группы Math

  1. Simple Math - модуль для совершения простых математических вычислений типа сложения, вычитания, умножения и т.д.

Группа My pipes - здесь находится список всех ваших ранее созданных труб. В одной трубе можно использовать другие трубы, т.е. результат работы одной трубы можно использовать внутри другой трубы. По аналогии с языками программирования это нечто вроде функций и подпрограмм. Трубу, которая используется внутри другой трубы я называю вспомогательной трубой, которая обычно является и параметрической трубой.

Группа Deprecated - здесь собраны старые версии модулей, которые давно заменены на новые версии.

Yahoo Pipes это "среда визуальной разработки" с минимальным применением клавиатуры для написания "кода", поэтому, чтобы понять как все работает, нужно просто посмотреть

Это мой второй и заключительный пост из серии "общие сведения о Yahoo Pipes", в дальнейшем я буду писать о решении конкретных сплогерских задач в Yahoo Pipes.





Комментарии:

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