1

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 ライブラリがチョークするからだと思います)。その文字をエスケープする方法、またはライブラリに強制的に試す方法はありますか?

4

2 に答える 2

2

^ のエスケープは %5E です。URL を直接置換できます。

http://finance.yahoo.com/q/hp?s=%5EDJI

于 2010-02-06T23:48:03.397 に答える