Получение ошибки 404 запроса в Python при доступе к API
Ранее я использовал API Morningstar для получения биржевых данных; однако теперь, когда я нахожусь за пределами США в течение недели, я не могу получить доступ к данным.
Это фрагмент кода:
import datetime as dt
from dateutil.relativedelta
import relativedelta
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as web
import csv
from mpl_finance
import candlestick_ohlc
import matplotlib.dates as mdates
from matplotlib.dates import DateFormatter, MonthLocator, YearLocator, DayLocator, WeekdayLocator
style.use( 'ggplot' )
end = dt.date.today()
start_48 = end - relativedelta( years=4 )
start_120 = end - relativedelta( years=10 )
ticker = input( 'Ticker: ' ) #should be in Uppercase
ticker = ticker.upper()
df_w = web.DataReader( ticker, 'morningstar', start_48, end )
df_m = web.DataReader( ticker, 'morningstar', start_120, end )
print()
file_name_w = ticker + 'weekly.csv'
file_name_m = ticker + 'monthly.csv'
df_w.to_csv( file_name_w )
df_m.to_csv( file_name_m )
df_w = pd.read_csv( file_name_w, parse_dates=True, index_col=0 )
df_m = pd.read_csv( file_name_m, parse_dates=True, index_col=0 )
Это сообщение об ошибке:
Ticker: spy
Traceback (most recent call last):
File "/Users/zubairjohal/Documents/OHLC.py", line 24, in <module>
df_w = web.DataReader( ticker, 'morningstar', start_48, end )
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pandas_datareader/data.py", line 391, in DataReader
session=session, interval="d").read()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pandas_datareader/mstar/daily.py", line 219, in read
df = self._dl_mult_symbols(symbols=symbols)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pandas_datareader/mstar/daily.py", line 130, in _dl_mult_symbols
resp.status_code, resp.reason))
Exception: Request Error!: 404 : Not Found
Это проблема IP, и есть ли способ это исправить? Я знаю, что этот код в порядке, потому что он работал отлично два дня назад.
2 ответа
У меня была такая же проблема, здесь, в США. Служба чтения данных (morningstar) работала 3 дня назад и перестала работать позавчера. Я полагаю, что здесь утром "Звездная звезда" изменила интерфейс REST, поэтому мы ничего не можем сделать, кроме как ждать, пока разработчики исправят это.
404 означает, что не найден, если вы не внесли никаких изменений и вдруг не работаете, я бы сказал, что либо URL-адрес API недоступен в этой стране (или заблокирован в этой конкретной сети), либо изменился их API (или на техобслуживании). Если вы знаете URL API, попробуйте его прямо в браузере с другими подключениями к Интернету.