目前,我可以通过使用XML和JSON来获得股票报价 YQL控制台 喜欢

选择符号,从csv中的价格url ='http://download.finance.yahoo.com/d/quotes.csv?s = ibm,yhoo,yhoo,goog,goog,msft&f = sl1d1t1c1ohgv&e = .csv' ,日期,时间,变化,COL1,高,低,COL2'

我想从

http://download.finance.yahoo.com/d/quotes.csv?s=@^ hsi&f = sl1d1t1c1ohgv&e=.csv

使用YQL控制台,因此我在YQL Console中输入以下语句

选择符号,从csv中选择url ='http://download.finance.yahoo.com/d/quotes.csv?s =@s =@s =@f = sl1d1t1c1ohgv&e=.csv'and columns =' ,变化,Col1,高,低,COL2'

但它说我的链接无效。有什么想法和改变解决方案吗?

有帮助吗?

解决方案

您的查询几乎是正确的,但是如您所指出的那样,URL被认为是“无效的”。解决方案是正确逃脱查询字符串值。

http://download.finance.yahoo.com/d/quotes.csv?s=@^HSI&f=sl1d1t1c1ohgv&e=.csv

变成

http://download.finance.yahoo.com/d/quotes.csv?s=%40%5EHSI&f=sl1d1t1c1ohgv&e=.csv

仅将这两个字符更改为其%编码值,YQL可以撤回CSV数据。

select * from csv where url='http://download.finance.yahoo.com/d/quotes.csv?s=%40%5EHSI&f=sl1d1t1c1ohgv&e=.csv'

在旁边: :yql不喜欢CSV在文件末尾有一个空行,这将在您尝试使用时会引起问题 columns 在哪里条款。如果您可以打电话给 col<number> 并想跳过最后一排,然后使用 and col8 is not null 在查询结束时。

其他提示

这是正确的URL:

http://quote.yahoo.com/d/quotes.csv?s=u003Csymbol> &f = SL1D1T1C1OHGV&e = .csv

对于可口可乐:

http://quote.yahoo.com/d/quotes.csv?s=ko&f=sl1d1T1C1OHGV&e=.csv

结果:“ ko”,69.74,“ 9/2/2011”,“ 4:00 pm”,-0.71,69.7201,69.99,69.50,8765529

对于HSI:

http://quote.yahoo.com/d/quotes.csv?s=^HSI&F = SL1D1T1C1OHGV&e = .csv

“^hsi”,19616.40,“ 2011年9月5日”,“ 4:01 AM”,-596.51,19830.50,19830.50,50,19567.77,77,0

这是一个API文档:

http://www.gummy-stuff.org/yahoo-data.htm

不幸的是,以上解决方案并未完全回答问题,您只会获得第一个51-52结果(首页),而不是完整的索引。

我认为这在RAW YQL中是不可能的,但是您需要编写一些代码以获取HTML,然后循环浏览组件的每个页面,然后从中构建自己的数据表。

我已经尝试了几种方法,并且有一个可以做到的C#脚本,在Python中执行此操作并将其加载到Pandas Dataframe时也很琐碎构建组件列表以测试投资组合的符号。

如果人们仍然对此解决方案感兴趣,我可以发布指向它的链接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top