Python pandas Google财经国际股票 - 寻找获取国际股票价格历史的方法
这个可以用:国内股票
gticker='NYSE:IBM'
import pandas.io.data as web
dfg = web.DataReader(gticker, 'google', '2013/1/1', '2014/3/1')
这个不行:国际股票
gticker='HKG:0700'
import pandas.io.data as web
dfg = web.DataReader(gticker, 'google', '2013/1/1', '2014/3/1')
尽管对于这两种股票,你都可以点击“历史价格”链接查看历史数据。
有什么建议吗?
2 个回答
3
看起来谷歌财经只支持美国和英国市场的CSV下载,因为在“历史图表”下的“下载到电子表格”链接,只会出现在这两个市场上市的股票上。下面是一个例子:
在英国上市的汇丰银行股票 https://www.google.com/finance/historical?q=LON%3AHSBA
在美国上市的汇丰银行股票 https://www.google.com/finance/historical?q=NYSE%3AHSEA
在香港上市的汇丰银行股票 https://www.google.com/finance/historical?q=HKG%3A0005
2
Google的数据读取器想要下载一个csv文件。所以对于股票代码'goog',它请求了以下网址来获取这个csv文件:
这对所有国内股票(比如IBM)都是适用的。但是对于'HKG:0700',它请求的是:
但是这会出现一个错误,提示“请求的URL在这个服务器上没有找到”。你可以查看历史数据,网址是:
但是看起来你无法获取到csv文件。
你可以看到在pandas/io/data.py中,它是如何创建这个网址的:
# www.google.com/finance/historical?q=GOOG&startdate=Jun+9%2C+2011&enddate=Jun+8%2C+2013&output=csv
url = "%s%s" % (_HISTORICAL_GOOGLE_URL,
urlencode({"q": sym,
"startdate": start.strftime('%b %d, ' '%Y'),
"enddate": end.strftime('%b %d, %Y'),
"output": "csv"}))