株価情報を取ってきたかったので適当に頑張ってみる。
試行錯誤しながら進めてたので改めてみるとDRYでないなぁ。後できれいにしよう(regrep_strという名前も…)。
require 'net/http' require 'kconv' class YahooInfo def get(code) Net::HTTP.version_1_2 Net::HTTP.start('quote.yahoo.co.jp', 80) {|http| response = http.get("/q?s=#{code}.t&d=t") response_body = response.body.kconv(Kconv::SJIS, Kconv::EUC) regrep_str = "<td nowrap> <b>(.*?)</b>" name = response_body.scan(/#{regrep_str}/) regrep_str= "</b> <b>【</b>(.*?):<b>" exchange = response_body.scan(/#{regrep_str}/) regrep_str= "取引値<br>.*?<b>(.*?)</b>" price = response_body.scan(/#{regrep_str}/) regrep_str= "<td nowrap>出来高<br>(.*?)</td>" volume = response_body.scan(/#{regrep_str}/) regrep_str= "<td nowrap>時価総額<br>(.*?)</td>" capital = response_body.scan(/#{regrep_str}/) regrep_str= "<td nowrap>発行済株式数<br>(.*?)</td>" issue_number = response_body.scan(/#{regrep_str}/) puts name puts exchange puts price puts volume puts capital puts issue_number } end end $ irb irb(main):001:0> require 'yahoo_info.rb' => true irb(main):002:0> yi=YahooInfo.new => #<YahooInfo:0x69a1ed0> irb(main):003:0> yi.get 4666 パーク24(株) 東証1部 1,508 493,500 222,954百万円 147,847,804株 => nil irb(main):004:0>