スゴイスゴイ yahoo pipes

Yahoo.com からすごいサービスが提供されました



yahoo.pipes

このサービスはさまざまなwebサービス(api)をプログラムなしでmashupする
サービスです。
わかる人は ようは plaggerにUIがついて簡単にできるようになったやつね と直感的にわかると思いますが、 plagger? という方はハア?と思ってしまうでしょうね。

サンプルを用いてどんなことができるのか解説してみましょう。
たとえば、私もよく使っている知識検索
Yahoo!JAPANが提供する Yahoo!知恵袋.gooが提供する 教えてgoo.Livedoorが提供する livedoor knowledge
なにか、知りたいことがあったときにこれらのサイトから既存に質問が投稿されて良回答がついてないか調べることがあります。各サイトで検索するのって面倒だから1回の検索で3つのサイトが一度に検索できたら便利ですね。そんなウエブサービスをつくることをmashupするといいます。そんなものをプログラムなしで作れます。やってみましょう。

まずは下調べ各サイトの検索結果はRSSで配信されていますのでそれを調べましょう。
たとえば「DVD」で検索した結果は、各々以下のようなURLで結果が取得できるようです。
Yahoo知恵袋(解決済みの質問の場合) :
http://search.chiebukuro.yahoo.co.jp/search/search.php?p=DVD&flg=1&rss=1
教えてgoo :
http://oshiete.goo.ne.jp/search/search.php?status=select&MT=DVD&fr=1&rss=1
Livedoor knowledge :
http://knowledge.livedoor.com/search/rss?q=DVD
(gooは一部不要と思われる部分をカットしました...)

さて、下調べはOK。 pipes.yahoo.com にアクセスして [create new pipes] してみましょう!

こんな画面が開きます。とりあえず、詳しい説明は今回はしないで、どんどん作っていきます。

まずは、作りたいアプリケーションは入力としてキーワードの窓が必要です。なので、左側の
User Input から Text Input を選択しモジュールをフィールドにドラックして次のように入力します

これは、textの入力エリアを設けて(そこに入れた文字を textinput1 に割り当てます。) プロンプトとして [please input query] という文字を窓の横に設置します。pipesの構築の際に毎度クエリ入れるの面倒なので、とりあえずは DVD という文字列が入っている前提(debug)で以後進めます。 という意味をもつモジュールになります。

次に 各サービスへリクエストするURLを作ります。 左のモジュールの URLの項目の URLBuilderを選択してフィールドにドラッグします。このモジュールではリクエストするURLを定義します。たとえば 教えてgoo の場合
http://oshiete.goo.ne.jp/search/search.php?status=select&MT=DVD&fr=1&rss=1
がリクエストするURLでした。MT=の部分に 先ほど作った textinput1の文字列が来ればいいわけです。

baseの部分にリクエストの ? の前の部分を、query parameterの部分に ? 以降の key=value を入れます。 MT の部分の value は 微妙に薄い丸が右にあると思いますが、textinput1のモジュールの下部にある○どドラッグしてこの丸に連結させます。(この行為がpipesするってことでしょうか...) これで MT の部分は textinputの値とする。という定義ができたことになります。

同じように Yahoo!知恵袋と、livedoor knowledge も作ります。

結果的にtextinput1からは3本のpipeが伸びるようになりました。

この URLBuilderは名前のとおり URLを作るためのモジュールであり、リクエストを実際に投げるわけでありません。なので、3つのURLBuilderそれぞれのURLを実際にリクエストを投げるモジュールにつなげましょう。

リクエストを投げるモジュールは, Source の fetchモジュールです。
fetchモジュールをフィールドにエントリーするとURLを入れる部分があります。
同じように右に薄い○がありますので、ここに URLBuilderの下部の ○を連結します。

URLは複数入力できてここに3つとも連結できそうな予感ですが、ここは各 URLBuilderに 各fetchを設けることにします。
さて、fetchを通過後は各リモートAPIをcallしてリクエストを受信した状態になります。

各fetchを選択して(オレンジの状態にして)フィールドの下の部分で refreshを押すと
各モジュール終了時のデータの状態がdebugとしてみれます。ここでおおスゲーとちょっと感動します:-)


教えてgooのfetch部分を覗いたところ

次に3つのfetchのデータをマージします。マージの処理は Operationの Union または Unique がソレにあたります。おそらく 結果のURLのでの結合処理なので今回はUniqueになることはありえないので、どちらも同じなので Union を使います。
Unionのモジュールは 2つのリクエストを1つにするものなので、3つの結合の場合は


こんな感じになります。

各 unionのモジュールを選択して fetchと同じように debugの画面をみれば unionの結果がみれます。

最後に全体の結果をソートすることにしましょう。 ソートモジュールは
Operation の Sortモジュールがそれです。 フィールドにエントリーし、 3つが連結したunionの出力とつなげます。ソートのモジュールでは "何で" ソートするかを選択できるので、
titleで昇順にソートすることにします。(RSSのmashupなどはは pubDateでソートするのが一般ですね。今回はそれでは上手くmixされなかったのでとりあえず...)
ソートの出力を outputのpipeoutputにつなげて作業は終わりです

これを上のメニューの save で保存します。 Layoutを選ぶとキレイに整列します。またまた感動 :-)

mypipeのページに移動して、

こんな画面がでるので、ここで [run this pipe]を押すと

ちゃんと設置した入力窓が出てきて検索してみると

オシイ!description文字化け。でもデキタ。感動:-)

ちゃんと

この出力をRSS JSONで出力できます。

もうちょっと改造してみましょう。あまり意味は無いですが、結果のtitleの部分に入力文字が含まれていないものがあります。これをノイズと見なして消しちゃうという処理を加えて見ましょう。そういう場合は Operation の filterモジュールを使います。

こんな感じに挟み込みます。

いやー便利になったものだ。まだ、こんなモジュールあればな。。というのとか挙動を欲理解していない部分あるのでこれからも要チェックや!


今回作ったpipe. (エディト画面も見れます 要Yahoo!INCのID)

http://pipes.yahoo.com/pipes/IKpnMfi32xGYNFVQZFUMqA/


トラックバック(0)

このブログ記事を参照しているブログ一覧: スゴイスゴイ yahoo pipes

このブログ記事に対するトラックバックURL: http://hiyuzawa.jpn.org/MT-4.0-ja/mt-tb.cgi/34

コメント(11)

maki :

これはおもしろい!いいサービスですね。UIもいい感じ。引数のそれぞれが何を意味していそうかがわかれば十分っていうのは画期的ですねぇ。

Cool site. Thanks!!!
laptop

Nice site. Thank you:-)
sony vaio

Very good site. Thank you.
software

Very good site. Thank you.
software

Good site. Thanks!!!

Had a lil kim exposed little quiet bitch pamela cooed. With barely.

Good site. Thanks.

コメントする


■MapPepper

HotPepperAPIとGoogle/YahooMapAPIと連動させたアプリ。

■FlashImageSearch

flashで見る画像検索。アイドルデータベースと連動。

■FindJob転職情報メール一気読み

FindJobから定期的に送られてくる転職情報メールを一気に確認するためのTool。

■新着pickup

Yahoo!の新着ピックアップサイトをサムネイル付きで表示。自動更新。

■AU-GPS with Gmap

AU携帯電話をGPSとして利用.GoogleMapで行動を表示.製作記録まとめ中!!

■finding_yado

じゃらんAPIを使った宿探しサイト.リクルートMashupコンテスト応募作品

■オークション商品分析Tool

Y!オクAPIを使って多角的に商品を表示。Flashにて

■Yahoo!Directory with History

FlashでY!カテゴリをブラウズ.登録日時も合わせてビジアル表示.

■Okiny-Flash-Search

Yahoo!検索APIを用いてflash上で検索.ソフトウエアキーボドや検索語Suggest,人気語なども表示.

■Okiny-Search

YahooUILibraryのEffectとYahoo!検索APIを組み合わせた面白い検索結果の表示方法を体験.

■Quick-Dictonary

firefoxのGrasemonkeyを使ってウエブ上の単語(英語/日本語)を簡単に単語翻訳

■サーバサイドブックマーク

環境やブラウザに問わずどこでも自分のブックマークがみれるTool. タグによる保存も..本人はてぶ使ってますorz...

■myweb-bookmark/search

ウエブ/画像/Q&A/Amazon/Blogみんな一度に検索しちゃいます

■myweb-bookmark

ウエブ/Q&A/Amazon/BlogみんなでブックマークしちゃうTool.


--形にまだなってないやつ--
■地域スポット(観光地)登録
位置情報とコンテンツ情報を登録しておくといいことあるかも...


■国土数値情報ウエブサービス化
ダウンロードしてGoogleMapに重ねてみました...


このブログ記事について

このページは、が2007年2月 9日 20:39に書いたブログ記事です。

ひとつ前のブログ記事は「BootCamp & Parallels Beta (MacBook on XP)」です。

次のブログ記事は「php curlをつかったオリジナルクラス (myCurlRequest)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0