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

使用Python Requests下载BCB Excel文件时无法建立新连接的问题求助

解决requests无法连接巴西央行服务器的问题

以下是几个可能的原因和对应的解决方法:

  • 检查网络代理与防火墙
    "Failed to establish a new connection" 本质是本地网络无法和目标服务器建立TCP连接,常见原因包括:

    • 公司/学校网络的代理拦截:Chrome可能自动使用系统代理,但requests默认不会,需要手动配置代理参数:
      proxies = {
          'http': 'http://你的代理地址:端口',
          'https': 'https://你的代理地址:端口'
      }
      response = requests.get(url, headers=headers, proxies=proxies)
      
    • 本地防火墙/杀毒软件拦截:临时关闭相关软件测试,确认是否是拦截导致的问题。
  • 简化请求头
    你复制的Chrome请求头包含多个浏览器专属的Sec-*字段,这些字段是Chrome的安全协议字段,requests模拟时可能引发服务器异常,同时你代码里的"是HTML转义字符,应该替换为普通双引号。建议只保留关键请求头:

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
        'Accept': '*/*',
        'Accept-Language': 'pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7'
    }
    
  • 验证域名解析
    尝试在命令行执行ping www.bcb.gov.br,如果无法返回IP地址,说明本地DNS解析失败。可以尝试切换DNS服务器(比如谷歌的8.8.8.8),或者在代码中直接使用服务器IP(不推荐,因为IP可能变动)。

  • 添加超时与会话保持

    • 添加超时参数避免无限等待:
      response = requests.get(url, headers=headers, timeout=10)
      
    • 使用Session保持连接状态,有些服务器会拒绝单次请求:
      session = requests.Session()
      session.headers.update(headers)
      response = session.get(url)
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:23:15