RSSについて勉強
「Ruby(2) さまざまなデータとアルゴリズム 」を読んでいます。それで、ついにRSSの項目にたどり着いたぁ!!!RSS気になってたんだよね!!!さて、どんなんかな〜vvv
・・・
・・・なんだこりゃ・・・
RSSリーダとRSSってのは別のプログラムで、ネットワークを通して接続すると思えばいい・・・のかな?処理の流れが難しい。想像以上に複雑な説明がいっぱいある。orz
- ソケット
- ネットワーク送信元のアドレス&プロセス、ネットワーク受信元のアドレス&プロセス、プロトコル、送受信するデータをまとめたもの。プログラム同士がネットワークを通して接続できるようにしたもの。
- "open-uri"ライブラリ
- HTTPやFTPによるデータ読み込みライブラリ
open-uriをロードすると、ファイル用のopen関数がURIを引数にとれるようになる。open-uriライブラリを利用することで、「ソケット通信」と「HTTPによる通信」処理をファイルから読み込みレベルまで抽象化している。なので、RSSリーダをつくると↓下記のコードになる。
require "open-uri" open("URIを指定") do |http| File.open("xmlファイル名", "w") do |file| file.write(http.read()) end end
.xmlを解析していく。
#エンコーディング <?xml version="1.0" encoding="UTF-8"?> ...(省略) #RSSはchennelが配信の単位 <channel> #タイトル <title> #URI <link> #著作権 <copyright> #言語情報 <language> #公開日時 <pubDate> #説明 <description> #エントリ(記事項目で複数存在) <item> #エントリが持つ固有値 <guid isPermaLink="true">
以上のxmlタグで構成されている。タグに付けられた名前[title,channel.etc]を要素名、タグで囲まれた部分を要素[