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

在PythonAnywhere中使用requests库遇ProxyError问题的求助

解决requests访问CNN时的ProxyError问题

Hey Jerry,从你的描述来看,你的环境已经自动配置了代理http://proxy.server:3128,但这个代理无法正常连接到CNN服务器,导致了Max retries exceeded的错误。下面给你几个可行的解决思路:

1. 验证并手动配置代理(如果代理是必需的)

如果这个代理是你必须使用的(比如公司内网要求),先确认代理的地址、端口是否正确,以及该代理是否允许访问外部网站(比如CNN)。确认无误后,可以手动在requests请求中指定代理:

import requests

# 配置HTTP和HTTPS代理
proxies = {
    'http': 'http://proxy.server:3128',
    'https': 'http://proxy.server:3128'
}

url = 'https://www.cnn.com/'
try:
    response = requests.get(url, proxies=proxies)
    response.raise_for_status()  # 主动抛出HTTP错误
    print("请求成功!")
except requests.exceptions.ProxyError as e:
    print(f"代理连接失败:{str(e)}")

如果代理需要身份验证,把代理地址改成http://用户名:密码@proxy.server:3128即可。

2. 强制跳过代理(如果代理不需要)

如果这个代理是系统自动配置的,但你当前的网络环境不需要它(比如个人家用网络),可以直接让requests忽略代理:

import requests

url = 'https://www.cnn.com/'
# 通过proxies参数禁用代理
response = requests.get(url, proxies={'http': None, 'https': None})

或者你也可以在代码开头清除环境变量中的代理设置:

import os
import requests

# 移除环境中的代理变量
os.environ.pop('http_proxy', None)
os.environ.pop('https_proxy', None)

url = 'https://www.cnn.com/'
response = requests.get(url)

3. 排查网络环境问题

如果上面的方法都没用,建议先检查:

  • 用浏览器直接访问CNN,看看是否能正常打开(排除目标网站本身的访问问题)
  • 测试代理服务器是否可用,比如用curl命令测试:curl -x http://proxy.server:3128 https://www.cnn.com
  • 确认你的网络是否有防火墙或其他限制,阻止了对CNN或代理服务器的访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:45:16