如果只是粘贴到浏览器中,我有以下csv网址正常工作:
http://www.google.com/finance/historical?q=JSE%3AMTN&startdate=Nov 1, 2011&enddate=Nov 30, 2011&output=csv
但是我似乎无法使用pandas下载csv。我收到错误:
urllib.error.HTTPERROR: HTTP ERROR 400: Bad Request
代码:
import pandas as pd
def main():
url = 'http://www.google.com/finance/historical?q=JSE%3AMTN&startdate=Nov 1, 2011&enddate=Nov 30, 2011&output=csv'
df = pd.read_csv(url)
print(df)
请有人指出我正确的方向。
答案 0 :(得分:3)
该URL未正确编码。您的浏览器会自动将空格' '
替换为'%20'
,来自python标准库的基础urllib
请求不会这样做。用'%20'
替换所有空格,你没事。
另外,如果你使用pandas 0.16,你可以跳过所有这些,因为现在已经内置了对Google财经数据的支持(参见http://pandas.pydata.org/pandas-docs/stable/remote_data.html#remote-data-google):
import pandas.io.data as web
df = web.DataReader("F", 'JSE:MTN', "2011-11-01", "2011-11-30")