gouf
7/22/2014 - 4:05 AM

Yahoo! JP 天気から、今日と明日の最高気温・最低気温を取得する

Yahoo! JP 天気から、今日と明日の最高気温・最低気温を取得する

require 'mechanize'

a = Mechanize.new {|a|
  a.user_agent_alias = 'Mac Safari'
}

def city_url name
  'http://weather.yahoo.co.jp/weather/jp/' + {
    tsugaru: '2/3110.html',
    naha:    '47/9110.html',
    kyoto:   '26/6110.html',
    yokohama: '14/4610.html'
  }[name]
end
def date page
  page.search('//p[@class="date"]').map{|x| x.text}
end
def high_temp page
  page.search('//*[@class="temp"]/li[@class="high"]/em').map{|x| x.text}
end
def low_temp page
  page.search('//*[@class="temp"]/li[@class="low"]/em').map{|x| x.text}
end
page = a.get(city_url :yokohama)

p date page #=> ["7月22日(火)", "7月23日(水)"]
p high_temp page #=> ["31", "31"]
p low_temp page  #=> ["23", "24"]