インターネットでは、様々な情報が提供されているが、 これらの情報を効率よく見つけ出すには、労力を要する。 このため、インターネット上の情報サイトでは、 RSS(Rich Site Summary) と呼ばれる XML をベースとした、サイトの概要情報を提供している。 これらの RSS の情報は、 フィードリーダ というソフトを使うことで、 そのタイトル・概要をシンプルに表示してくれることから、 読者が興味のある記事を見つけやすくなる。
今回は、これらの RSS 形式のデータを活用するために、 自分の作成した情報の RSS データを作成したり、 一般に公開されている RSS フィードを読み込み解析し、 2次利用できるようにしたり、自分たちの使うインターネットと連動できる プログラム開発を、文字列処理の得意なプログラム言語である、Perl や PHP を用いて 作成することを目指す。
RSSと解析ライブラリ
RSSには、その発展の歴史の中から、少しづつ書式を変えながら発展してきた。 最初は、RDF と呼ばれる形式であったが、RSS 2.0 に発展する中で、 XML 形式による書式となった。 この他にも、RSS の問題点を改良した Atom 形式なども提案されている。
RSSのデータ形式は様々で、全ての形式に対応したプログラム作成は本来難しい。 しかし Perl や PHP では、便利なパーサ・ライブラリがあるので、RSSの情報の中から、 希望する情報だけを簡単に抽出することが可能となっている。
Perl で RSS 形式のデータを扱うために、今回は "XML::FeedPP"モジュールを使用する。 このライブラリは、RSS/RDF/Atom など様々な フィード形式に対応している。 XML::FeedPP の解説サイトには、データを入力・出力するなどの手続きの例が、 いくつか記載されているので、これらのサンプルプログラムを元にプログラムを作成せよ。
#!/usr/bin/perl # 使用するモジュールを選ぶ use XML::TreePP ; # use 文は C言語の #include みたいなもの。 use XML::FeedPP ; # 日本語の文字コード変換モジュール use Jcode ; # 読み込むフィード my $source = 'http://use.perl.org/index.rss'; # my は局所変数宣言 # RSSデータを解析し読み込ませる my $feed = XML::FeedPP->new( $source ); # 記事全体の情報を表示 my $title = $feed->title() ; # Jcode->new( "文字列" ) に対する変換コード(以下が利用可) # ->utf8 , ->unicode , ->jis , ->sjis , ->euc print "Title: ", Jcode->new( $title )->utf8 , "\n"; print "Date: ", $feed->pubDate(), "\n"; # 個別の記事の情報を表示 foreach my $item ( $feed->get_item() ) { print "URL: ", $item->link(), "\n"; my $title = $item->title() ; print "Title: ", Jcode->new( $title )->utf8, "\n"; } # foreach文は、配列要素すべてに対する処理ループを実行 # foreach $要素 ( @配列 ) { ... }
実験方法
プログラムの実験にあたり、 ファイルの編集にはファイル共有機能を使用し、 プログラムの実行にはターミナルソフト(TeraTerm)を使用する。
最初に、実験端末に TeraTerm がインストールしてなければ、 このページ先より入手し、インストールを行うこと。
サーバに接続し、プログラムを実行するには、TeraTermPro.exe を実行し、 Host:「tsaitoh.ei.fukui-nct.ac.jp /KR=UTF-8 /KT=UTF-8」, Service:SSH で接続し、 別途指定された ユーザ名 , パスワード を利用し、Login せよ。
ファイルを編集する際には、Windows 端末のファイル共有にて、 「¥¥tsaitoh.ei.fukui-nct.ac.jp¥ユーザ名」にてアクセスし、 login 画面が出たら、ユーザ名とパスワードを入力せよ。 Windows のエディタで、ファイルを編集し保存する際には、 「文字コード: UTF-8 , 行末コード: nl」を指定すること。
(( 前述の feed.pl を実行する場合 )) $ perl feed.pl
最初の課題
上記のプログラムを動作させ、得られる結果などを確認せよ。 RSSフィードの http://…./…xml などは、Firefox などのブラウザであれば、 わかりやすいように表示をしてくれる。さらに、"ページソースを表示"などを実行すれば、 元々の XML 形式のデータを見ることもできる。
まずは、プログラムの内容などを確認したうえで、 インターネット上に掲載されている RSS フィードにどのようなものがあるか調べ、 これらの情報をどのように活用したら便利かアイデアを検討せよ。