Yahooのトランジットから運賃を取得する
GoogleでもYahooでも路線情報は便利なのですが、運賃を教えてくれるAPIってないから、乱暴だけどURIから情報を無理やり取るようにしてみた。
Yahooの路線情報から料金だけを取得する
#!/usr/bin/env ruby require 'rubygems' require 'hpricot' require 'open-uri' require 'kconv' ## 岐阜 -> 秋田 getで送ってるURL url = "http://transit.yahoo.co.jp/search/result?from=%E5%B2%90%E9%98%9C&to=%E7%A7%8B%E7%94%B0&via=&shin=1&ex=1&hb=1&al=1&ym=200810&d=29&hh=02&m1=1&m2=3&type=1&ost=0&ei=utf-8&x=59&y=5" class YahooTransit def initialize(url) @url = url @doc = Hpricot(open(@url).read) @parse_tag = "span[@class^='route-fare']" end def expense #(@doc/@parse_tag).map {|elem| elem.inner_html.toutf8.gsub(/(,|円)/,'') }.sort (@doc/@parse_tag).map {|elem| elem.inner_html.toutf8.gsub(/[^0-9]/,'') }.sort end end yt = YahooTransit.new(url) puts yt.expense.join(",") #=> 30740,30830,31980
CSSのセレクタに正規表現とかも使えるんだ。知らなかった。ちゃんとドキュメント読まないとダメですね。
@parse_tag = "span[@class^='route-fare']"