Hpricot を使用してページを解析し、Yahoo から過去の株価を取得する Ruby スクリプトに取り組んでいます。これはほとんど簡単です: URL は " http://finance.yahoo.com/q/hp?s= TickerSymbol " です。たとえば、Google を検索するには、" http://finance.yahoo.com/qを使用します。 /hp?s=GOOG "
残念ながら、インデックスの価格を調べているとうまくいきません。ダウの場合、" http://finance.yahoo.com/q/hp?s= ^DJI" のように、インデックスの前にキャレットが付きます。
この線:
ticker_symbol = '^DJI'
doc = Hpricot(open("http://finance.yahoo.com/q/hp?s=#{ticker_symbol}"))
この例外をスローします:
bad URI(is not URI?): http://finance.yahoo.com/q/hp?s=^DJI
Hpricot はキャレットでチョークします (基盤となる Ruby URI ライブラリがチョークするからだと思います)。その文字をエスケープする方法、またはライブラリに強制的に試す方法はありますか?