Usar uma sessão Requests com proxy no pandas-datareader
Passe uma sessão Requests com proxy para o DataReader em vez de alterar o comportamento global do pandas.
O pandas-datareader aceita uma sessão Requests para o seu trabalho HTTP. Por exemplo, um leitor de FRED pode usar uma sessão configurada pela aplicação:
import requests
from pandas_datareader import data as web
with requests.Session() as session:
session.proxies.update({
"http": "http://proxy.example.net:8080",
"https": "http://proxy.example.net:8080",
})
frame = web.DataReader(
"GDP", "fred", start, end, session=session
)
start e end são as datas solicitadas pela aplicação. O contexto fecha a sessão quando o leitor termina. Um endpoint HTTP público escolhido da lista de proxies HTTP pode fornecer o endereço no mapa de proxies desta sessão.
A integração do Requests com o ambiente continua ativa neste exemplo. Se a aplicação precisa de uma rota explícita independente dos valores de proxy do ambiente, defina session.trust_env=False e forneça separadamente o pacote CA necessário ou a autenticação derivada de .netrc.
Escolha um leitor compatível com a versão instalada do pandas-datareader. Uma API de fornecedor descontinuada ou um formato de símbolo alterado pode falhar depois de a ligação de proxy ter êxito; definir a sessão não restaura um endpoint de dados removido.