我正在研究一个ruby脚本,以便从雅虎获取历史股票价格,使用Hpricot来解析页面。这主要是直截了当的:网址是“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库)。有没有办法逃脱该角色或强迫图书馆尝试?
答案 0 :(得分:4)
doc = Hpricot(open(URI.encode("http://finance.yahoo.com/q/hp?s=#{ticker_symbol}")))
所以,如果有人想知道,你就是这样做的。 捂脸
答案 1 :(得分:2)
^的转义是%5E;你可以在网址上直接替换。