2

私は、Yahoo の株価システムを使用して、オンラインからいくつかの株価を検索する課題に取り組んでいます。残念ながら、私が使用する必要があるYahoo APIは、株が取引された 1 日ごとに 1 行が含まれているように見える .csv ファイルを返します。それらのいくつかの千行()。

ただし、2 行目にある現在の価格だけが気になります。

私は現在これをやっています:

require 'open-uri'
def get_ticker_price(stock)
   open("http://ichart.finance.yahoo.com/table.csv?s=#{stock}") do |io|
      io.read.split(',')[10].to_f
   end
end

...しかし、それは本当に遅いです。

  1. すべての遅延はファイルの取得によるものですか、それとも私の処理方法によるものですか? io.readファイル全体を読んでいますか?

  2. Yahoo CSV ファイルから最初の数行だけをダウンロードする方法はありますか?

  3. 質問 1 と 2 への回答がこれを無関係にしない場合、ファイル全体を見る必要のない、それを処理するより良い方法はありますか (それが何をしていると仮定しますio.read)?

4

1 に答える 1

3

クエリ文字列パラメーターを使用すると、日付範囲パラメーターを使用して、データを現在の日付に減らすことができます。

2012年7月13日のMOの例:(開始/終了月はゼロインデックスで開始します、{00-11})。

http://ichart.finance.yahoo.com/table.csv?s=MO&a=06&b=13&c=2012&d=6&e=13&f=2012&g=d

ここでのAPIの説明:http: //etraderzone.com/free-scripts/47-historical-quotes-yahoo.html

于 2012-07-16T03:55:59.013 に答える