Ошибка подключения Python: HTTPSConnectionPool (хост=’финансы.yahoo.com ‘, порт = 443): время ожидания чтения истекло

#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