#python #yahoo-finance #pandas-datareader
#python #yahoo-финансы #pandas-datareader
Вопрос:
Я пишу следующую строку кода
import numpy as np
import pandas as pd
from pandas_datareader import data as wb
tickers=['RELIANCE.NS','MBECL.NS']
mystocks=pd.DataFrame()
for t in tickers:
mystocks[t]=wb.DataReader(t,data_source='yahoo',start='2015-1-1')['Adj Close']
mystocks
Но это возвращает
ConnectionError: HTTPSConnectionPool(host='finance.yahoo.com', port=443): Read timed out.
Доступ к yahoo finance из браузера работает. Я мог делать это до прошлой недели, но теперь та же строка кода выдает ошибку подключения.
Комментарии:
1. Этот код выполняется для меня как есть, поэтому, вероятно, что-то мешает сетевому соединению. Вполне возможно, что это на стороне yahoo. Я бы продолжил генерировать эквивалентную команду curl и посмотрел, изменит ли поведение что-то вроде изменения пользовательского агента или пути URI.
Ответ №1:
Я предлагаю вам поместить код для получения фрейма данных в инструкцию try / except. Таким образом, он будет ждать, пока ваше соединение не будет восстановлено.
for t in tickers:
try:
mystocks[t]=wb.DataReader(t,data_source='yahoo',start='2015-1-1')['Adj Close']
except:
continue
mystocks