pandas-datareader でプロキシ対応の Requests セッションを使う
pandas のグローバルな挙動を変えるのではなく、プロキシ対応の Requests セッションを DataReader に渡します。
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 や変更されたシンボル形式は、プロキシ接続が成功した後でも失敗することがあります。セッションを設定しても、削除されたデータエンドポイントは復元されません。