Python - 从Google财经中提取指数数据

时间:2017-05-24 15:49:41

标签: python pandas google-finance

我正试图从Google财经中提取指数的历史数据,但它无效。虽然我能够轻松地提取单个股票的历史数据。我是否对指数做错了什么?

我的股票代码

from pandas_datareader import data
from dateutil.relativedelta import relativedelta
import datetime as dt

enddate = dt.datetime.today()
begdate = enddate + relativedelta(years=-1)


x= data.get_data_google("GOOGL",begdate,enddate)
print(x.head())

输出

              Open    High     Low   Close   Volume
Date                                               
2016-05-24  719.85  734.20  719.64  733.03  1890195
2016-05-25  735.00  739.89  732.60  738.10  1610773
2016-05-26  736.00  741.10  733.00  736.93  1298295
2016-05-27  737.51  747.91  737.01  747.60  1738913
2016-05-31  748.76  753.48  745.57  748.85  2124248

我的索引代码

x= data.get_data_google(".DJI",begdate,enddate)

错误

RemoteDataError: Unable to read URL: http://www.google.com/finance/historical

1 个答案:

答案 0 :(得分:2)

我不确定问题出在哪里,但GOOGLE Finance网站上存在差异。

当您尝试查看GOOGL的历史数据时:
https://finance.google.com/finance/historical?q=NASDAQ:GOOGL

在网站的右侧(图表下方),您会看到导出部分,其中包含指向CSV的链接。

然而对于DJI:
https://finance.google.com/finance/historical?q=INDEXDJX:.DJI

没有这样的链接。

可能是pandas_datareader的实现使用该链接来获取数据。我更改了INDEXDJX的csv下载链接:.DJI并返回错误。

<强>更新
我看到该功能正试图达到 http://www.google.com/finance/historical?q=INDEXDJX%3A.DJI&startdate=Oct+20%2C+2016&enddate=Oct+20%2C+2017&output=csv

这不存在。当我在上面替换google ticker时,会下载该文件。

与此同时,我发现this comment似乎证实了上述情况,即所有交易所see google doc都不支持导出到csv以获取更多信息。