テクニック > RSSで提供された情報を取得する

解説


概念自体は結構前からあったのですが、ここ数年Blogの隆盛とともにじわっと認知度が上がってきた感のあるRSS。行きつけのサイトでRSSやRDF、XMLと書かれたアイコンを見たことがある方も多いと思います。
ここ、Samurize Wikiでも下の方にスクロールさせていくと http://samurize.xworks.org/wiki/image/rss.pngが見えるはずです。クリックしても意味不明なタグ付文が出てくる(ブラウザやrssのバージョンによっては通常のサイトとほぼ変わりなく読めるものもあります)ため、なんじゃこりゃと思われたかもしれません。
RSSの専門的な説明は各自で調べていただくとして、要するにサイトの見出しを効率的に取得するために統一化された規格だと思ってください。
Firefoxのようにサイドバーに取得手段を持つものもありますが、一般的にブラウザで閲覧するようなものではありません。
普段巡回しているサイトがRSSを提供してくれているならば、ブラウザを立ち上げてサイトをいちいち巡回して新着記事を確認しなくても、 RSSを何らかの方法で取得させてデスクトップに表示させておけば、新着があった時知らせてくれます。さすがに携帯電話のメールのようにリアルタイムでとは行きませんが、かなりの手間を省けるはずです。

SamurizeにもRSSリーダーはかなり以前から複数存在しているのですが、残念ながら幾つかの理由であまり有用とは言い難いものでした(公開されている有志制作者様方には非礼な発言であることをお詫びします)。簡単に上げてみると、
01.設定が面倒なわりに複数の巡回先を設定するのが不可能/難しい
02.取得出来たり出来なかったりする(統一を謳いながらRSSに複数規格が存在するため)
03.見出しに対してリンク機能がない
04.見出しが欲しいサイトがRSSを提供してくれない
あたりでしょうか。04は個人の努力ではどうにもならない(スクリプト組む人もいるでしょうが)のでさておくとしても。
そんな感じで長いことRSS取得環境は不遇だったSamurizeですが、 lalabyte氏が提供してくれたpNewsがこれらの不満をいい感じに解消してくれました。どんなサイトのRSSでも取得可能とはいきませんが、基本的な記述がされているRSSなら取得出来ると思います。
惜しむらくはlalabyte氏がドイツ在住の方であり、設定画面で我々には英語以上に馴染みのないドイツ語が一部使用されていることです。幸い項目は少なく、英語から類推出来る単語ばかりということもあって使用はかなり簡単です。それでも幾つか気付きづらいこともあるので、導入から設定までを軽く解説。

pNewsをダウンロード/インストールする


こちらのリンクからpNewsをダウンロードします。ダウンロードしたファイルを解凍して、でてきたpnews2.dllとpNewsフォルダを
C:\Program Files\Samurize\Plugins\
フォルダ内にコピーしてください。以上でインストールは終わりです。

設定


下準備として取得するRSSのURLを設定します。 C:\Program Files\Samurize\Plugins\pNews\pNews2.iniをメモ帳などのテキストエディタで開くと、このようになっているはずです。
Config1.jpg
[Sites]以下に書かれているのがサイト名(便宜上必要なものなので適当に設定可)と取得するRSSのURLです。
最初から登録されているURLは、如何せん大多数の日本人にはちょっと不必要なものなので削除して構いません。あなたが必要なサイトだけ登録してください。
登録方法は先例を見ればわかると思いますが、
サイト名=RSSのURL
です。gooのニューストピックスを取得したいなら
goo=http://news.goo.ne.jp/news/rss/topics/chumoku/index.rdf
のようになります。複数登録出来ますので、必要なだけ記述していってください。
ただしサイト名に日本語等全角を使うと設定時に化けます。それでも取得は出来ますが、意味ないので半角英数を使用してください。加えて+などが入ると取得に失敗するようです。半角英数でも記号の使用は避けてください。
また、最初からある[LastDL]以下の文も削除して構いません。以上で下準備は終わりです。

  • Samurize側で設定をしていきます。
    • いつもどおりConfig.exeを起動し、「メーターの追加」→「プラグイン」→「pNews2.dll」を追加します。「情報」タブへ行き、「実行する関数」を「GetNews」にし、「設定」を押します。
 Config2.jpg

  • 「News-Seite」と書かれたプルダウンメニューをクリックすると、先ほど登録したサイト名が出てきますので、取得したいサイト名を選択します。その下の項目はNewsを選択。

  • 「Startzeille」は取得開始行、「Endzeille」は取得終了行です。適当に設定してください。複数行を選択すると「Style」で表示形式を選択することが出来ます。「Ticker」は横一列(主にスクロール機能を利用して表示させるためのもの)に、「Liste」だと項目ごとに改行が入るリスト状に表示されます。

  • 「Updateintervall」は巡回頻度、単位は分です。あまり頻繁に更新するとサーバの負担になりますので、適当な数値に抑えてください。
ただこの項目どうもバグ持ちのようで、どんな設定していてもpNewsの設定画面を開き直すとデフォルトの5分に戻されます。一回設定したあと、再び設定画面を開かずにiniを保存すれば数値はそのまま保存される模様です。
不安な方はiniを直接開いて、該当メータのRefreshrateを手動で編集してください。
  • 「情報」タブの「全体設定」を押すと「Save RDF/RSS on Disk」という項目が現れます。これにチェックを入れると C:\Program Files\Samurize\Plugins\pNews\内に取得した情報がxml形式で保存されます。必要ならばチェックを。チェックした方がネットワークの負荷は低そうですが仕様がよくわかりません。あまり関係ないかも。
  • 以上で基本的な設定は終わりです。
「情報」ボタンの「テスト」を押して、「実行結果」に望み通りの情報が出力されたら成功です。お疲れ様でした。
  • 改行が%bで出力される関係で、武蔵を使う場合、武蔵側の設定で「%vの中にある%b %tも置き換える」のチェックを入れてないと改行されません。

リンク機能を使う


  • リンク機能ですが、先の方法では出力されません。使うには「Startzeille」と「Endzeille」の数値を一緒にして一行のみ出力させる必要があります。面倒ですがSamurizeのリンクタグは閉じるように出来ていないため、仕様上こうせざるを得ないです。複数行表示させる必要があるなら、行をずらして一行ずつ表示させてください。
  • 表示行数を一行にして「テスト」を押すと、「実行結果」に見出し%lURLが出力されるはずです。この%lがリンクタグで、以降のURLは画面には表示されず左クリックに渡されます。
実行結果を確認したらこのメーターの「入力」タブに行き、「入力コントロール」にチェックして「追加」を押して入力ウィザードを起動させます。「リンク」を選択し「次へ」、「リンク先」は空白のまま「次へ」、最後に「左クリック」にチェックを入れ、「完了」を押せば設定は終了です。Client上で先ほど作ったメーターを表示させて動作するか確認してください。動作しない場合、こちらを参考に。

ちょっと特殊な設定


  • 「設定」の項目内で「News」と「FreeStyle」の二択になっている箇所があります。通常は前者を選ぶのですが、後者を選択することで「FreestyleOptionen」のグレーアウトが解除され、 RSS内のタグで括られた部分を自分で選択して表示させることが可能です。自由度が上がるのもそうですが、取得に失敗するような場合でも項目が取得出来るようになるかも知れません。
  • 「Keynode」で指定した単語を目印に、以降から「Template」で指定した書式に沿って必要情報を出力します。デフォルトでは「<title>%l<link>」となっています。
これは「<title>から</title>で括られた箇所と<link>から</link>で括られた箇所を取得し、 linkの前にリンクタグ%lを付加して出力する」と解釈されます。
これを踏まえ、一例ですが、先ほどのgooを取得させたメーターで「Template」の部分を「<dc:date>」としてテストを押すと、見出しは出ずに更新時間が表示されます(GMTなどの絡みでかなり見辛いですが)。
どんな項目が使用出来るかはサイトによって違うので、ブラウザでRSSを提供しているURLを直接開いて自分で確認してください。開いてからさらにソース開かないとダメな場合もあります。
また、<>で囲まれていない文字列はそのまま出力される模様。%bで改行が入ります。
  • フィルタ設定が追加。「Fil String」に入力した文字列が出力内容に含まれていた場合、その文字列を出力しないようになります。日付出力時にくっついてくるGMTの+09:00などの定型で鬱陶しい文字列を消すのに便利かも知れません。日本語も化けますが一応使える模様。
「Filter html」にチェックを入れると、RSS内にあるhtmlタグを消去して出力してくれます。goo天気の<content:encoded>を使用してみるとわかりやすいかも。
その際「Filter wrap」にチェックを入れると無駄な空白を除去してくれるようです。

補記


  • Config上に既にpNewsのメーターがある状態でpNews.iniを編集しても、新たに追加/削除された項目は反映されません。一度Configを再起動させてください。
  • 2ちゃんねるの速報/実況ヘッドラインからRSSを取得していて、専用ブラウザで開きたいよという方は、「Freestyle」を選択して「Template」に
<title>%l"専用ブラウザのPath" "<link>"
とすることで可能なようです。半角スペースやダブルクォーテーションに注意してください。リンクの設定はこちらを参照。JaneDoeViewでのみ確認したので、全て同様の手法で可能かは不明ですが、どれもあまり変わらない気がします。
  • 2006/04より開始された2ch RSS menu +では<link>内のURLが該当スレへ貼られていないため、現状この手法は使えません。幸い後半部分は該当スレと同じなので、 Freestyleを選択し、Flt Stringで先頭を除去し、Templateで%lの後に該当板があるサーバのread.cgiへのURLを追加すれば行けるはずです。ソフトウェア板を例に取ると、
Templateが<title>%l"専用ブラウザのPath" "http://pc11.2ch.net/test/read.cgi/<link>"
Flt Stringがhttp://rss.s2ch.net/test/-/pc11.2ch.net/
となります。サーバが移転した場合手動で直さなければダメなので結構キツいかも。
  • 別にこれに限らないのですが、%ttで以降の構文をツールチップに渡せます。
速報/実況ヘッドラインからRSSを取得していている場合、<title>%tt<description>として、そのメーターのマウスオーバーにツールチップを設定すると1の本文がツールチップに出ます。ただ改行の位置が変なようで異様に読みづらいです。残念。もちろん先のリンクと組み合わせることも出来ます。
Sample.jpg
(このサンプルの場合、「Template」の記述は<title>%tt<title>%b<description>%l"専用ブラウザのPath" "<link>")
  • RSS配信しているサイトってどうやって探せばいいの? という方はRSS-searchさんや RSSNAVIさんなどで探してみてください。
  • 複数の情報を切り替えて使いたいという方は、この辺を参考に複数のiniを切り替える感じでどうぞ。

タグ:

+ タグ編集
  • タグ:
最終更新:2010年11月16日 19:08
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。