2007 . 07 . 28

openkapowでカスタムRSSの作成

グラフィックや写真などアート系の総合サイトで有名な、deviantART には最近のサイトの例に漏れず、RSSを配信していますが、このRSSが視覚的なコンテンツが命のサイトにあって、RSSの内容はTEXTオンリーという、どうにもいただけないRSSなのです。
そこで、先日紹介したopenkapowのRoboMakerを使用してサムネイル画像入りのカスタムRSSを作ってみたいと思います。




アプリケーションを起動してしばらくすると、ウィザード画面が表示されます。
今回はRSSを作成する目的のRobotを作るので「Create an RSS/ATOM Feed」を選択した後、ソース元のURLを入力します。

次にRSSフィードのタイトルとこのフィードの概要を入力します。
するとソース下に指定したページが読み込まれます。

上部のステップ画面の「Load Page」との途中に新しいステップを追加しましょう

このステップでは、各アイテムのタイトル要素にしたい部分を指定してみることにします。プレビュー画面やソース画面をクリックするとその部分のタグが破線で囲われます。
これらの範囲指定はプレビュー画面上部のボタンで操作することもできます。

タイトルにしようとする文字列があるタグを指定したら「Use This Tag」をクリックしてます。

今回の場合は、画面で指定したアンカータグ部分のtitle属性をタイトルとして使用したいので、Actionを「Extract Tag Attribute」にして属性に「title」と入力し、それをRSSの各アイテムタイトルにするよう下セレクトボックスの「RSSItem.Title」にします。

つぎに先と同じようにステップを追加して、先ほどと同じ部分を指定して今度はそれを各アイテムのURLにするようにします。
画面のように「Extract URL」を下セレクトボックスの選択します。

同様にステップを追加して、今度はサムネイル画像をに入れることとします。
イメージタグを指定して「Extract Description」をクリック、要素にいれるそのままイメージタグも入れたいので、画面のように「HTML」を選択します。

これで一先ず、チェックしてみます。
上部ステップ画面の「Return Item」をクリックすると出力結果が右下の出力画面に表示されます。
今まで行った、タイトル、URL、概要(サムネイル画像)の抽出はとりあえずできていることが分かります。

さて、次にこの一連のステップを繰り返し行わせて、このページ内から目的の情報をすべて抽出することにします。
「Load Page」の後にステップを追加して、繰り返し処理を行う範囲を指定します。

今回は、spanタグ毎に繰り返し処理を行いたいので、画面のように選択します。

これで各アイテムごと内容が抽出できているか、先ほどのようにチェックしてみます。矢印ボタンでループ処理、この場合、先に指定したspanタグおきに範囲が切り替わっていきます。

さて、ここで実際、出力を見てみると、すべてが一番目の内容となってしまっています。これはタグの指定が一番目に限定されているためで、修正が必要です。下のようにそれぞれのステップの「Tag Finders」タブを下の画面のように修正していきましょう。

RSSItem.Title、RSSItem.URL

Extract Description

それでは最終チェックをしてみます。

デバッグウィンドウが開くので左上のスタートボタンをクリックすると今まで作成した一連のステップが実行された後、下欄に結果が表示されます。

うまくできているようなので、これ(Robot)に名前やフィードURL、説明、カテゴリー、タグなどを付けて、サーバ上で実行される間隔を選択した後、openkapowのサーバにアップロードします。

アップロード完了ダイアログのリンクにアクセスすれば、作成したRSSが出力されます。

今回作成したRobotによるRSS生成の結果が以下

deviantART Popular Wallpaper

その後、作成したRobotはopenkapowのサーバ上で運用されることになります。また、アップロードした時点でopenkapowコミュニティー上でこのRobotが公開、共有される仕組みになっています。



さて、今回は手始めということで、比較的簡単な作成例を紹介しましたが、もちろんもっと自由で複雑なRobotを作ることも可能です。
ブラウザそっくりの動きのRobotを、GUIで作れるところがこのRogoMakerの真骨頂といえます。

今回使用してみた感想としては、アプリケーションとしては非常に高機能でよく作り込まれているものの、難がないわけでもありません。このアプリケーションは常にopenkapowのデータサーバと交信しているようなのですが、その接続数が半端じゃなく、ひ弱な環境だとシステムが不安定になったりします。
また、作成したRobotも結局はopenkapow任せなので、ここがダウンしたりすれば、役に立たない(しばしばダウンするよう)訳なので、これをベースにしてWebサービスを立ち上げるほどの信頼性はないかもしれませんが、個人で利用するようなレベルでは、十分だと思います。

今回は、特にRSS編ということでしたが、もう少し使い方に慣れたら、REST編やClip編にも挑戦してみたいと思います。