Hpricot fun

rq.rb

%w(rubygems hpricot open-uri).each{|f| require f }
T = %w(goog nyx lmc fwlt nly aapl amzn vg)
scrape = lambda{|t| t.inner_html.gsub(/ |\(|\)/, '').strip }
doc = Hpricot(open("http://finance.google.com/finance?q=#{T.join('+')}"))
doc.search('table.results tr').each_with_index do |row, i|
  next if i == 0 # header
  tds = row/'td'
  s = scrape[tds[1]/'a']
  p = scrape[tds[2]]
  dc = scrape[tds[3]/'font']
  pc = scrape[tds[4]/'font']
  puts sprintf("%5s %10s %8s %8s", s, p, dc, pc)
end

ruby rq.rb

 GOOG     471.26    +0.14    0.03%
  NYX      83.70    -0.71   -0.84%
  LMC      13.11    +0.21    1.63%
 FWLT      71.21    +0.70    0.99%
  NLY      15.87    +0.12    0.75%
 AAPL     103.04    +2.23    2.21%
 AMZN      62.25    -0.98   -1.55%
   VG       3.09    -0.03   -0.96%
Comment or question via
FYI: This post was migrated over from another blogging engine. If you encounter any issues please let me know on . Thanks.