【问题标题】:Python - Pulling Indices data from Google FinancePython - 从 Google 财经中提取指数数据
【发布时间】:2017-10-21 01:28:47
【问题描述】:

我正在尝试从 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

【问题讨论】:

    标签: python pandas google-finance


    【解决方案1】:

    我不确定问题出在哪里,但是在 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:.DJI 的 csv 下载链接,但它返回了错误。

    更新:
    我看到该函数正在尝试访问
    http://www.google.com/finance/historical?q=INDEXDJX%3A.DJI&startdate=Oct+20%2C+2016&enddate=Oct+20%2C+2017&output=csv

    这不存在。当我将上面替换为谷歌股票时,它会下载文件。

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

    【讨论】:

    • 这可能是相关的,但可能不是问题本身。检查“导出 csv”链接实际指向的端点(例如使用 firebug),搜索 pandas 代码以确保它正在尝试访问相同的链接,然后尝试访问 DJI 的可比较链接。这将表明 pandas 试图检索的东西无法从 google 获得。
    • 似乎它试图点击的链接是:google.com/finance/…,而这在谷歌金融上不存在。
    猜你喜欢
    • 1970-01-01
    • 2021-08-03
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多