pipesbon!  |  doppac

1

Pipesは米Yahoo!のサービスで日本版は出てません。使うにも日本のとは別のIDが必要になります

step-00

いまちょうど話題になってるところの米Yahoo!が去年の今ごろに公開した「Pipes」っていうサービスがあります。

出た当初はいわゆるWeb2.0のアレとかで玄人筋では話題になりつつもその後それほど盛り上がらず、個人的にもあまり使ったりしてなかったんですけども、最近になってけっこう使える機能が追加されたりしてきたせいで、結構おもろいかもと再評価されつつあるような気がいたします。まあでもやっぱ玄人筋の話なんですけど。

というわけで、Pipesを使ってみがてら、その過程を記録するというブックを作ってみてはどうかと思ったわけです。

Yahoo! Pipes
http://pipes.yahoo.com/

Yahoo! Pipesで遊んでみる

7

ここでPipesがどういうものかとか、どうやって使うかとかを説明すべきなんでしょうけど、紙面の都合でそのへんはリンク先とかをご覧ください(ちょっと内容が古いけど)。
http://www.atmarkit.co.jp/news/200702/15/pipes.html
http://ido.nu/kuma/2007/02/08/too-easy-to-use-too-cool-to-yahoo-yahoo-pipes/

まずはこのBCCKSの新着ブックの更新を知るためのリスト(いわゆるRSS)をつくるpipeをつくることにしてみた。といっても今回は作ったあとにこの企画を思いついたので再現pipe作業となっております。

新着ブックの情報はhttp://bccks.jp/list/latesというページにあるので、このページから情報を抜き出すために「FetchPage」というモジュールを使います。

左のサイドバーからモジュールを右のスペースにドラッグして、Outputにつないだところ

step-01

BCCKSの新着ブックリストPipeをつくる

6

htmlのソースを見て、使える繰り返しのパターンを探しました

pipesは基本的に同じフォーマットのデータのリストを扱うツールなので、読み込んだページのデータを必要な情報の単位で分割する必要があります。

今回読み込んだページにはマウスオーバーするとポップアップ表示されるブックの情報が後ろのほうに並んでるので、このデータを分割するために「<div style="position ...」というブックの情報ごとに最初に出てくるタグのパターンを区切りにしてます。これをFetchPageモジュールの「Split using delimiter」のとこに入れてるのね。

あと必要ない情報のところが分割したデータの最初と最後のとこに残っちゃうので、それを除外するために「Cut content from 〜 to 〜」のフィールドにやっぱりタグのパターンを入れています。

情報を分割するパターンを見つける

step-02

5

ノートパソコンだとpipesを作るには画面が狭いのでけっこうつらい…

pipesで扱うデータのかたまりはアイテムと呼ばれるんですが、そのアイテムに意味別でいくつかのサブ要素を分けておくと、あとで情報を読んだり表示したりするときに便利なので、それらしいのを作ってます。今回のだと本のタイトル(title)とか、作者(author)とか、更新日(pubDate)とかね。

それをするにはRenameモジュールっていうもので、最初につくったリストを複製して別名をつけるという方法を使います。なんかここはちょっとスマートじゃない気がするので、そのうち改良されそうな気がします。

ちなみに下のDebbugerというスペースで、現在変換されたデータにどういう要素がくっついているかが確認できるので、これで確かめながら作ってます。

アイテムの要素をコピーして増やす

step-03

4

ここがこのpipeのハイライトかな。Regexモジュールでさっきコピーした要素の中身を名前にふさわしいデータに刈り込みます。

Regexってのは「正規表現(せいきひょうげん)」と呼ばれるプログラムの世界ではよく使われる独特の式のことでして、その式をテンプレートにしていろんなデータのなかから欲しい情報を切り出します。

今回ので言うとブックのタイトルは<h3>というタグに囲まれているので、「<h3>(.+)</h3>」という正規表現によってh3タグに囲まれた任意の長さのタイトルを取り出しています。これはさすがにプログラムのこと知らないと理解するの無理ですな。

ともかく、こんな感じでふつうのwebページからフォーマットされた情報を作り出していきます。

BCCKS新着ページのデータは情報がわりとちゃんとそろってるんで切り出しやすかった

step-04

正規表現!

3

画面が狭くなったので最初のほうのモジュールは畳んでバーだけにしてますよ。

あとはわりとオマケなかんじですね。pipesに慣れてないのでいろいろつけてみましたが、別にいらないのかもしれないです。

やってることは、
・ 前のとこで切り出した日付テキスト(pubDate)を
  ちゃんとした日付データに変換
  (Loopモジュール)
・ 変換した日付データで新着順に並べ替え
  (Sortモジュール)
・ リストの数が多すぎるので最新20件だけにする
  (Truncateモジュール)
です。

最後に「Pipe Output」につないで完成!

step-05

時間で並べたり、数を削ったり

2

というわけで、BCCKSの新着リストをRSSで取得できるpipeが完成しました。RSSリーダーとかを使ってるひとはこれを登録しておけばブックの見逃しがなくなるというわけです。やったー! 便利!

http://pipes.yahoo.com/doppac/bcckslatestbcck

そのうち本家サイトがふつうにRSSを配信してくれる気もしますが、まあそれはそれでよいこととして。

こんな感じでネット生活の身近な不便をありものと工夫で解決、という、日曜DIYというか、主婦の収納術的な感覚がPipesにはあります。作るのけっこう時間かかりますけどね。楽しいからいいけど。

こんな感じでまたネタをみつけたらpipe作業を記録したいと思います。それではこれにて。

リンクはブック情報のページに飛びます。直接ブックを開くとウインドウサイズ的に問題があるので。

step-06

できた! 便利!

1

pipesbon!
  • 著者:doppac
  • photo:doppac
作 成 日:2008 年 02月 13日
発   行:doppac
BSBN 1-01-00011046

photo | Dummy