pandas-datareader は HTTP 処理に Requests セッションを受け取ります。たとえば FRED のリーダーは、アプリケーションが設定したセッションを使えます。

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 と end はアプリケーションが要求する日付です。コンテキストはリーダーの終了後にセッションを閉じます。HTTP プロキシ一覧から選んだ公開 HTTP エンドポイントを、このセッションのプロキシマップのアドレスとして使えます。

この例では Requests の環境変数との統合は有効なままです。環境のプロキシ値に依存しない明示的な経路が必要な場合は、session.trust_env=False を設定し、必要な CA バンドルや .netrc 由来の認証を別途用意してください。

インストール済みの pandas-datareader のバージョンが対応するリーダーを選んでください。提供終了したプロバイダーの API や変更されたシンボル形式は、プロキシ接続が成功した後でも失敗することがあります。セッションを設定しても、削除されたデータエンドポイントは復元されません。

関連記事