Eine proxyfähige Requests-Session mit pandas-datareader verwenden
Übergeben Sie eine proxyfähige Requests-Session an DataReader, statt das globale Verhalten von pandas zu ändern.
pandas-datareader akzeptiert für seine HTTP-Arbeit eine Requests-Session. Ein FRED-Reader kann beispielsweise eine von der Anwendung konfigurierte Session verwenden:
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 und end sind die von der Anwendung angeforderten Daten. Der Kontext schließt die Session, sobald der Reader fertig ist. Ein öffentlicher HTTP-Endpunkt aus der HTTP-Proxy-Liste kann die Adresse in der Proxy-Zuordnung dieser Session bereitstellen.
Die Umgebungsintegration von Requests bleibt in diesem Beispiel aktiv. Wenn die Anwendung eine ausdrückliche Route unabhängig von den Proxy-Werten der Umgebung benötigt, setzen Sie session.trust_env=False und stellen Sie ein erforderliches CA-Bundle oder eine aus .netrc abgeleitete Authentifizierung separat bereit.
Wählen Sie einen Reader, den die installierte pandas-datareader-Version unterstützt. Eine eingestellte Anbieter-API oder ein geändertes Symbolformat kann fehlschlagen, nachdem die Proxy-Verbindung erfolgreich war; das Setzen der Session stellt einen entfernten Datenendpunkt nicht wieder her.