気象庁から最高気温を最低気温を取得する

ここ数日は本当に暑い。一体どのくらいの勢いで最高気温を更新してんだよってことで書いてみた。

#!/usr/bin/ruby -Ku
# -*- coding: utf-8 -*-
# 過去一ヶ月間の最高気温、最低気温を取得する

require 'iconv'
require 'rubygems'
require 'mechanize'
require 'hpricot'
require 'open-uri'
require 'pp'

TargetCity = ""  # Ex. TargetCity = "東京"
if TargetCity == ""
  puts "データを取得したい都市 ( TargetCity ) を設定してください"
  exit -1
else
  puts TargetCity
end

a = Mechanize.new

(1..30).each do |num|
  a.get("http://www.data.jma.go.jp/obd/stats/data/mdrr/synopday/data#{num}.html") do |page|
    (page/"tr").each do |tr|
      city = (tr/"td.o0").map do |td| Iconv.conv('UTF-8','EUC-JP',td.inner_html) end.first
      if city == TargetCity
        list = (tr/"td.oR").map do |i| Iconv.conv('UTF-8','EUC-JP',i.inner_html) end
        day  = (Time.now-(num-1)*24*3600).day
        puts "day=#{day}  max=#{list[3]} min=#{list[4]}"
      end
    end
  end
end

気象庁で公開されているデータは過去一ヶ月分で、当日分は毎30分あたりに更新されるそうです。

コメント

このブログの人気の投稿

[Java] 母音か子音か

git-svnでFILE was not found in commit HASH

駄文