You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

代理环境下使用yfinance调用sp500.info遇ConnectTimeout错误求解决

解决yfinance调用info时的代理超时问题

问题背景

已完成yfinance升级安装:

pip install yfinance --upgrade --no-cache-dir

可成功初始化Ticker对象:

import yfinance as yf
sp500=yf.Ticker("^GSPC")
print ("got sp500")

但调用sp500.info时,无论是否设置sp500.proxy="http://my-proxy.org.com:xxx",均出现以下连接超时错误:

ConnectTimeout: HTTPSConnectionPool(host='fc.yahoo.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000028F3FA23590>, 'Connection to fc.yahoo.com timed out. (connect timeout=30)'))

处于代理环境,问题与代理配置相关。

解决方案

1. 全局配置requests代理(推荐)

yfinance依赖requests库发起网络请求,直接给requests会话全局配置代理,优先级高于单个Ticker的proxy设置:

import requests
import yfinance as yf

# 配置HTTP/HTTPS代理
proxies = {
    'http': 'http://my-proxy.org.com:xxx',
    'https': 'http://my-proxy.org.com:xxx'
}
# 更新全局会话的代理设置
requests.Session().proxies.update(proxies)

# 初始化Ticker并调用info
sp500 = yf.Ticker("^GSPC")
print(sp500.info)

若代理需要身份认证,格式为http://用户名:密码@my-proxy.org.com:xxx

2. 验证代理的HTTPS支持

错误提示为HTTPS连接超时,需确认代理服务器是否支持HTTPS请求转发。部分代理仅配置了HTTP协议,需在代理端开启HTTPS支持,或更换支持HTTPS的代理地址。

3. 延长请求超时时间

yfinance默认超时时间为30秒,可通过修改Ticker的timeout参数延长:

import yfinance as yf

sp500 = yf.Ticker("^GSPC")
sp500.proxy = "http://my-proxy.org.com:xxx"
sp500.timeout = 60  # 设置超时为60秒
print(sp500.info)

4. 单独测试代理连通性

先通过requests直接测试代理能否访问目标域名,排除代理本身的连通性问题:

import requests

proxies = {
    'https': 'http://my-proxy.org.com:xxx'
}
try:
    resp = requests.get('https://fc.yahoo.com', proxies=proxies, timeout=30)
    print(f"代理访问成功,状态码: {resp.status_code}")
except Exception as e:
    print(f"代理访问失败: {str(e)}")

若测试失败,需联系代理管理员排查,或更换可用代理。

内容的提问来源于stack exchange,提问作者kathikeyan A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:45:55