我知道这个问题已经回答了一段时间,但我最近遇到了这个 ^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) 提到的 ^DJI 和其他一些人屏蔽,但 2) 实际上直到前几天仍在工作。我知道这一点是因为我一直在使用它并且它在大约一周前停止工作(事实证明)。顺便说一句,2) 的好处是它实际上允许您检索比通过 1) 或 3) 明显可用的数据更多的数据,例如,您可以使用方法 2) 检索一直到 1928 年的数据,但我离题了。无论如何,正如我所说,2) 最近也停止了工作,这让我对无法自动更新数据集/模型感到沮丧。
鉴于我实际上将 ^DJI 数据用于我的一些模型等,我今天最终花了一两个小时为普通报价页面(例如第 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"