REXMLでのパース処置アレコレー最終回ー
今までのREXMLでのパース処理の実装をもとに、Livedoor天気情報を取得します。
Livedoor天気情報
Livedoor天気情報の仕様にも書いてありますが、パスを指定することで、特定の地域・時間の天気を取得することができます。ただ、今回はREXMLの実装ということで、例で示された福岡県久留米の天気を取得します。さっそくコードです。
#Livedoor天気情報を取得するスクリプトです # -*- encoding: utf-8 -*- #!ruby -Ks class Call require 'open-uri' require 'rexml/document' require 'kconv' def call_wheather #URIを指定します。Livedoor天気情報の例からそのまま抜粋しています。 #city、dayの値を変えてあげれば他の地域の情報が取得できます。今回は実装しません。 uri = "http://weather.livedoor.com/forecast/webservice/rest/v1?city=113&day=tomorrow" doc = nil begin open(uri) do |uri| doc = REXML::Document.new(uri) end wheather = doc.root root_text = wheather.text #root要素からtelopを抜き出す print("#{doc.elements["lwws"].elements["telop"].text}","\n") rescue SocketError puts"SocketError:#{uri}" rescue OpenURI::HTTPError puts"HTTPError:#{uri}" end end end w = Call.new w.call_wheather #=>曇時々雨
以上です。URLを指定するフォームを用意するほどの気力が残ってなかったので、福岡県久留米の情報を取得して終了です。