在 pandas-datareader 中使用感知代理的 Requests 会话
把感知代理的 Requests 会话传给 DataReader,而不是改变 pandas 的全局行为。
pandas-datareader 接受 Requests 会话来完成其 HTTP 工作。例如,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 或变更的代码格式即使在代理连接成功后也可能失败;设置会话并不能恢复已被移除的数据端点。