Unable to read S&P500 using pandas_datareader on G

2019-07-25 14:04发布

Goal:

I'm trying to read historical data from Google Finance for the S&P500 using pandas_datareader.

Issue

I'm using the symbol on google finance but I keep getting the same error "unable to read url". I pretty sure I'm putting in the wrong symbol but I've tried all the options I know and I don't know what else to do. What symbol can I use with pandas_datareader to pull the historical data for the S&P 500? Any help would be greatly appreciated.

Results

Results & Errors

Code

import urllib, sys, pandas, pandas_datareader
from yahoo_finance import Share
from bs4 import BeautifulSoup
from pandas_datareader import data
import fix_yahoo_finance
from datetime import datetime

def Main():
    datetime_start = datetime(2010, 1, 1)
    datetime_finish = datetime(2013, 1, 27)

    f_google = data.DataReader('F', 'google', datetime_start, datetime_finish)
    print('Ford on google, symbol "F", on 04 January 2010: %s' %f_google.loc['2010-01-04'])

    sp_500_yahoo = Share('^GSPC')
    print('Yahoo S&P 500: %s' %sp_500_yahoo.get_price())

    list_symbols = ['INDEXSP:.INX', 'INDEXSP', '.INX', 'INDEXSP:', '^GSPC', 'SPX']

    for string_symbol in list_symbols:
        try:
            sp500_google = data.DataReader(string_symbol, 'google', start = datetime_start, end = datetime_finish)
            print('\nS&P 500 on google, symbol %s, on 04 January 2010: %s' %(string_symbol, sp500_google.loc['2010-01-04']))
            except Exception as e:
                string_error = str(e.args)
                print('\nError for S&P 500 symbol %s on google: %s' %(string_symbol, string_error))
        else:
           pass
        finally:
           pass

     # system info
     print('\npython version: %s' %sys.version)
     print('pandas version: %s' %pandas.__version__)
     print('pandas_datareader version: %s' %pandas_datareader.__version__)
     print('fix_yahoo_finance version: %s' %fix_yahoo_finance.__version__)

if __name__ == '__main__':
     Main()

0条回答
登录 后发表回答