雅虎财务CSV文件不会返回道琼斯(^ DJI)

时间:2010-09-09 19:25:44

标签: api csv yahoo finance

我正在尝试从Yahoo!检索市场数据金融和剧本多年来一直运作良好,但最近,它停止显示道琼斯数据。这是URL:

http://download.finance.yahoo.com/d/quotes.csv?s=^DJI,^IXIC,^GSPC,^TNX&f=snl1d1t1c1ohg

网址应返回以下数据:

  • 道琼斯
  • NASDAQ
  • S&安培; P
  • 10年期债券

它实际上并没有为我返回CSV,我已经尝试了我能想到的一切,但无济于事,我没有看到任何人在网上遇到同样的问题。

任何想法,是否有人有同样的问题?

感谢。

8 个答案:

答案 0 :(得分:31)

用INDU替换^ DJI(这是道指的代号之一) - 这将有效。

不知道为什么DJI上周末停止了工作 - 有人做了'负面增强'。

Cheerio

GT

答案 1 :(得分:26)

根据雅虎的说法:

http://developer.yahoo.net/forum/index.php?showtopic=6943

  

感谢您写信给Yahoo!金融。   我们了解到您报告说您无法下载^ DJI的CSV数据。我当然可以为您提供更多相关信息。   您遇到的限制是由于道琼斯指数的限制。雅虎不再能够以这种方式提供道琼斯指数数据。对由此造成的不便,我们深表歉意。   如果我能得到进一步的帮助,请告诉我。   再次感谢您与Yahoo!联系!金融。   问候,   布雷特   雅虎金融客户服务

另一篇暗示使用INDU的帖子似乎确实有用!...想知道雅虎(或道琼斯)是否错过了这个,它最终会消失......

答案 2 :(得分:8)

我知道这个问题已经回答了一段时间,但我最近遇到了这个^ DJI和Yahoo!由于Yahoo!的另一个变化,报价再次发布并提出了一个解决方案,可以帮助OP以及因搜索而到达此页面的任何其他人。

作为一点背景请注意,有几个URL可以用来从Yahoo下载历史报价数据。他们是:

1)http://download.finance.yahoo.com/d/quotes.csv

2)http://ichart.finance.yahoo.com/table.csv

3)http://finance.yahoo.com/q/hp

1)是OP列出的那个,2)实际上是你在网页下面显示的“下载”链接和3)是正常的历史价格报价网页URL。

事实证明,虽然1)自2011年8月起被马里奥·费尔南德斯(Mario Fernandez)提及后,其他一些人被封锁了,但是直到前几天才真正开始工作。我知道这是因为我一直在使用它,并且大约一周前它停止了工作(事实证明)。顺便说一下,2)有一个好处,它实际上可以让你检索比通过1)或3)显然可用的数据更多的数据,例如,你可以使用方法2)检索数据一直回到1928年,但是我离题了。无论如何,正如我所说,2)最近也停止了工作,这使我无法自动更新数据集/模型。

鉴于我实际上使用了^ DJI数据用于某些模型等,我最终花了一个小时或2个今天为正常的引号页面编写一个页面刮板(例如编号3),现在它将直接从中获取引号HTML引用网页。这是在用Python编写的开源命令行下载器应用程序的上下文中,我在过去几个月中做了一些小的工作。这是我目前用于定期刷新数据集的内容。有了最新的补丁,OP和其他任何想要下载^ DJI的人都可以根据需要下载^ DJI。

如果你想尝试一下,那么你需要首先下载并安装Python(在Windows上.Linux和Mac内置了Python。)我建议使用ActiveState的Python发行版,这里有:

http://www.activestate.com/activepython/downloads

请注意他们要求提供注册详细信息,但这不是强制性的。您可以忽略点击其中一个下载链接后获得的注册页面。

然后你需要pyQ程序源。您可以从项目页面获取此信息:

http://bazaar.launchpad.net/~wprins/python-pyq/trunk/view/head:/pyq.py

编辑2016-10-20:代码现在可以在github上使用,也可以在Python 3下运行:https://github.com/ByteJuggler/pyq

单击“下载”链接,并将脚本保存在合适的位置。然后打开一个命令提示符,“cd”到您下载脚本的文件夹,并尝试使用“pyq”运行脚本。假设已安装Python,则应向您显示使用情况摘要。在它最简单的形式中,命令如下:

pyq IBM

将获取IBM的实时报价行。

类似的东西:

pyq 20120601 20120701 IBM

...将从20120601到20120701日期获取IBM的报价。等等。输出实际上是CSV。如果要将输出保存到文件,请按正常方式重定向输出:

pyq 20120601 20120701 IBM> ibm.csv

无论如何,希望能有所帮助。 (我在今天早些时候偶然发现了这个页面,同时试图弄清楚为什么我的^ DJI数据集大约一周前就已经过时了,如果/当我想出一个解决方案,我决定回复这里。)

编辑:请注意^ DJI你应该引用自动收报机,例如:

pyq 20120601 20120701“^ DJI”>“^ DJI.csv”

答案 3 :(得分:5)

我认为你最好联系Yahoo! Finance。因为他们知道他们的系统并且很可能能够提供帮助。

答案 4 :(得分:4)

现在,雅虎阻止了INDU你可以使用追踪索引的ETF。我认为他们不会阻止它。

答案 5 :(得分:2)

我正在使用Google财经从Y获取数据!财务已停止工作。尽管谷歌未来也可能会改变他们的政策。在此之前我会访问

http://finance.google.com/finance/info?lient=ig&q=INDEXDJX:.DJI&callback=

将返回JSONP文档。

答案 6 :(得分:1)

上周我看到了......

http://webdesignsnow.com/forums/about125.html,它描述了csv文件中的变化和消息。

答案 7 :(得分:1)

以下链接:http://finance.yahoo.com/q/hp?s=^DJI将为您提供一些您感兴趣的信息(如Open,DaysHigh和DaysLow)。

此外,以下不起作用的代码:

wget -qO ^DJI.csv "http://ichart.finance.yahoo.com/table.csv?s=^DJI"

可以替换为以下hack:

(echo "Date,Open,High,Low,Close,Volume,Adj Close"
for y in {0..7603..66}; do # increase 7603 if necessary
  wget -qO- "http://finance.yahoo.com/q/hp?s=^DJI&y=$y" |
    sed 's/<\/\(td\|a\)>/\n/g' |
    grep yfnc_tabledata1 |
    sed -e 's/<.*>//g' -e 's/\([0-9]\),\([0-9]\)/\1\2/g' |
    grep -v ^$ |
    awk 'BEGIN {m["Jan"]=1; m["Feb"]=2; m["Mar"]=3;
    m["Apr"]=4; m["May"]=5; m["Jun"]=6;
    m["Jul"]=7; m["Aug"]=8; m["Sep"]=9;
    m["Oct"]=10; m["Nov"]=11; m["Dec"]=12}
    NR%7==1 {printf "%d-%02d-%02d,",$3,m[$1],$2}
    NR%7>1 {printf "%s,",$0} NR%7==0'
done) > ^DJI.csv

将生成一张表,其中包含自1985年1月29日开始的^ DJI的每日历史数据。