Yahoo! Pipes
08.10.2010
—
Новости Hi-Tech
|
Если говорить о веб-сервисах, то свет клином на Google не сошёлся. Есть интересные сервисы и у других компаний. В этой статье познакомимся с инструментом Yahoo! Pipes, позволяющим манипулировать содержанием чуть ли не всего Интернета. Сервис может оказаться полезным для профессиональных блогеров, веб-журналистов.
Как обычно, осенью активизируются коммунальщики и начинают везде менять водопроводные и канализационные трубы. Но свои трубы есть и в Сети. Только по этим трубам течёт не вода, а информация. Благодаря веб-сервису Yahoo! Pipes интернетчики тоже могут заняться монтажом и пуско-наладкой виртуальных информационных трубопроводов. Yahoo! Pipes - это веб-сервис, который предназначен, в первую очередь, для обработки и манипуляций с RSS-потоками, которые ещё называют лентами новостей. Эти RSS-каналы имеются на многих сайтах, блогах. В них обычно даётся описание изменений на сайте, блоге. Для сбора, обработки и чтения этих каналов используют специальные программы-агрегаторы. По своему назначению веб-сервис Yahoo! Pipes как раз и относится к классу агрегаторов информации. Он позволяет получать потоки из разных источников в Интернете, обрабатывать, задавать им правила при помощи различных фильтров и получать на выходе модифицированный канал RSS. Причём всё это можно делать прямо в браузере, в графическом режиме. Никаких скриптов здесь писать не нужно. Фильтры обработки информации выполнены в виде графических блоков, соединяемых между собой линиями-трубами, и все манипуляции делаются мышью. Источниками данных для сервиса могут быть не только RSS-каналы. Yahoo! Pipes работает и с информацией в форматах CVS, XML, JSON. Также сервис может обрабатывать непосредственно html-страницы, хотя и с некоторыми ограничениями. Имеется возможность получать данные из Google, Flickr. Yahoo! Pipes - это мощный инструмент. Но эта мощь имеет и обратную сторону. Это сервис не "для домохозяек", и он требует понимания принципов и структуры данных в Интернете. Главное здесь - это знание структуры RSS-потоков. Чем больше этих знаний, тем лучше, так как сервис позволяет решить задачи, для которых в ином случае приходится писать специальную программу или скрипт. Может быть, именно из-за относительной сложности этому сервису посвящено не так много статей в компьютерной прессе. Хотя сервис существует давно, несколько лет. Пока Yahoo! Pipes популярен у так называемых "оптимизаторов" и "продвигателей" сайтов. Но этот инструмент, созданный программистами Yahoo!, может оказаться полезным всем, кому нужно держать перед глазами и обрабатывать большое количество всевозможных информационных ресурсов - сайтов, блогов, rss-лент и т.д. Например, крутым блогерам. Ведь что главное у настоящего блогера? Это крутая френдлента. А френдленты в блогах - они как раз и основаны на потоках RSS. Можно сказать, что френдлента в том же Livejournal или Blogspot - технологически это тоже RSS-агрегатор.
Проще всего понять принцип работы Yahoo! Pipes будет юниксоидам. В этом сервисе используется принцип конвейерной обработки данных при помощи "трубопроводов" (pipe). Эта "труба" в UNIX-системах позволяет последовательно передавать данные со стандартного выхода одной программы на стандартный вход другой и таким образом создавать гибкие цепочки из команд. Yahoo! Pipes - это тоже множество простых модулей, выполняющих какую-нибудь одну задачу. Эти модули имеют вход и выход, которые можно соединять между собой и получать конвейер обработки данных. Модули Yahoo! Pipes, в основном, специализированы для работы и манипуляции с данными rss-лент в формате XML. Но есть и модули для обработки данных как простого текста. И, как мы уже говорили выше, в Yahoo! Pipes всё делается в графическом режиме - мышкой в браузере.
Для практического знакомства с Yahoo! Pipes идем на Здесь жмем кнопку "Create a pipe" и появится окно редактирования "трубопровода". Оно имеет три основные панели. С левой стороны находится панель модулей и инструментов. Они сгрупированы в меню по разделам: Source, User Inputs, Operators, URL, String, Locators, Date, Number. Самая большая панель - это главная область, куда мышью в режиме "тащи-бросай" перетаскиваются модули из левой панели. Модули имеют сверху и снизу, соответственно, точки входа и выхода. Эти точки соединяются линиями-трубами между собой. Если навести курсор мыши в область точки входа-выхода, то появятся ножницы, кликнув на которые, можно удалить соединительную линию-трубу. Обработка данных в этих модулях идет последовательно сверху вниз. Данные, как вода, перетекают по линиям-трубам из одной "емкости" в другую, где с ними могут происходить какие-то преобразования. Чтобы получить короткую справку по какому-либо из элементов, нужно нажать на знак вопроса в заголовке любого модуля. И внизу левой панели появится описание модуля и ссылки на примеры. При создании и отладке труб не надо забывать про Debugger - область внизу рабочего окна. В Debugger можно отслеживать все промежуточные данные и текущее преобразование rss-потоков. Сам процесс создания "трубопровода" представляет собой таскание мышью блоков-модулей и соединение их линиями-трубами.
Так как таскание модулей и соединение их трубами большого труда не составляет, то познакомимся с самими модулями. Эти модули и есть главная сила Yahoo! Pipes. Рассмотрим основные категории этих блоков-обработчиков, которые предоставляет сервис. Sources. В этом разделе находятся модули импорта и загрузки потоков из Сети. Загрузить можно конкретный rss-адрес, страницу html, файл cvs или json. Здесь есть модуль поиска на странице RSS-ленты "Feed Auto-Discovery", когда нет желания самому искать ссылку на ленту новостей; модуль поиска по базам Google, Flickr и географической базе Yahoo!. User Inputs. Этот раздел представляет модули для интерактивного ввода пользователем значений. Эти значения будут обработаны в "трубопроводе" и использованы для формирования конечной ленты. Поддерживаются такие типы данных, как текст, число, дата, местоположение, URL. Operators. Очень важный раздел. Здесь размещены модули для манипуляций с элементами потока данных. Наиболее важным здесь является модуль Filter, который позволяет фильтровать элементы потока данных согласно устанавливаемым условиям. Например, такими условиями может быть совпадение с регулярными выражениями, наличие определённого содержания в потоке, порядок и размер элементов в потоке. Loop Module - это тоже важный модуль раздела операторов. Сам он ничего не модифицирует, но последовательно перебирает указанные в нём элементы и применяет к ним модуль обработки, который помещают в середину самого этого модуля Loop. Для этого в Loop есть специальное окно, куда надо перетащить нужный блок обработки. Очень важным является модуль Regex. Он позволяет производить преобразования потока данных на основе регулярных выражений UNIX и может помочь в удалении из потока мусора, ненужных тегов и т.д. Также в этом разделе есть модули разделения RSS-потока и обратного их соединения. Есть модули переименования элементов и изменения порядка следования данных в RSS-ленте, а также удаления элементов-дубликатов из RSS-ленты. String. В этом разделе содержатся модули, позволяющие манипулировать данными лентами как текстовой строкой. Например, модуль Translate переведёт содержимое выбранного элемента на один из указанных языков. Обычно используется в модуле Loop. Вот это и есть основные группы модулей Yahoo! Pipes, которых вполне хватит для первоначальной игры с сервисом. И действительно, с сервисом нужно для начала просто поиграть, чтобы понять, что к чему.
Для примера создадим небольшой "трубопровод", который переводит RSS-поток с одного языка на другой. В нашем случае возьмём ленту новостей с сайта formula1.com и переведём её на русский язык. Заходим на сервис, нажимаем "Create a pipe" и открываем новую "трубу". Из раздела Sources перетаскиваем на главную панель модуль Fetch Feed и вводим в него адрес RSS-потока Из раздела Operators тащим модуль Loop, а в середину этого модуля перетаскиваем модуль Translate из раздела String. В полученном гибриде модулей устанавливаем поля for each и assign result to в значения item.title, а в модуле Translate выбираем перевод English-to-Russian. Это мы перевели все заголовки <title> в нашей ленте. Теперь переведём в ленте сообщения <description>. Снова проделываем все манипуляции, что и шагом выше, только вместо item.title выставляем item.description. И теперь самый ответственный момент. Соединяем последовательно "трубами" сверху вниз наши модули и автоматически появившийся модуль Pipe Output. Трубопровод готов. Сохраняем его и переходим по ссылке Run Pipe, где наблюдаем результаты наших сантехнических опытов. Здесь же имеется ссылка на модифицированную ленту, которую можно вставить в собственный блог во френдленту. Хотя, по правде сказать, машинный перевод - это не самое впечатляющее в сервисах Yahoo!. Ещё добавлю, что работает с загружаемыми потоками Yahoo! Pipes в реальном времени. Поэтому модули при перетаскивании могут не всегда сразу активироваться, нужно немного подождать, пока сервис разберётся с данными. То же самое и при сохранении "трубопровода" - этот процесс может быть довольно долгим, более минуты. Михаил АСТАПЧИК Чтобы разместить новость на сайте или в блоге скопируйте код:
На вашем ресурсе это будет выглядеть так
Инструмент Yahoo! Pipes позволяет манипулировать содержанием чуть ли не всего Интернета
|
|