如何修复Python requests库Max retries exceeded with url错误
问题根因
[Errno 111] Connection refused 是TCP握手阶段被目标站点直接拒绝连接导致的,和你之前调整的allow_redirects、timeout、verify参数没有关系——这些参数都是TCP连接建立成功后才会生效的配置,完全碰不到这个错误的触发点。
你的爬虫稳定运行1年后突然出现这个问题,核心原因是目标站点更新了反爬/WAF规则,把AWS Lambda默认使用的区域共享公网IP池整体拉黑了。这类共享IP池常年被各种爬虫、扫描器调用,被反爬系统标记是常态。
现有方案的无效原因
- 重试逻辑存在缺陷:首次请求未配置超时参数,裸捕获所有异常后重试仍然走默认出口IP,等于重复用被拉黑的IP发起请求,不可能成功。
- 代理配置根本没有生效:你在构造代理列表时特意过滤掉了HTTPS协议代理,但目标站点是HTTPS服务,
requests发HTTPS请求时只会读取代理配置中https键对应的地址,你传入的代理字典只有http/socks4/socks5键,属于无效配置,请求还是走Lambda默认公网出口。 - 免费代理可用性极差:你用的公共代理池里的IP大部分本身已经被目标站点拉黑,或者已经失效,即使代理配置正确,随机选中可用IP的概率也极低。
修复方案
优先调整AWS Lambda配置(见效最快,稳定性最高)
- 为Lambda配置固定公网出口IP:将Lambda部署到VPC私有子网,绑定公网NAT网关,给NAT网关分配固定弹性公网IP(EIP)。配置完成后先测试该EIP是否能正常访问目标站点,如果仍被拦截,直接更换新的EIP直到拿到未被标记的IP即可,后续爬虫固定走这个EIP出口,不会再碰到共享IP池被拉黑的问题。
- 排查VPC网络规则:确认Lambda绑定的安全组、VPC网络ACL没有拦截443端口的出站流量,可以先在Lambda中发起对其他公共HTTPS站点的测试请求,确认基础出站连通性正常。
代码逻辑修复
- 重构请求重试逻辑,所有请求统一配置超时,按异常类型区分处理,不要裸捕所有异常做无效重试:
import requests import time import random def sending_request(input_url, max_retry=3, proxy=None): last_err = None for retry_cnt in range(max_retry): try: resp = requests.get( input_url, allow_redirects=True, headers=get_random_header(), timeout=(5, 15), # 连接超时5秒,读取超时15秒 proxies=proxy, verify=False ) resp.raise_for_status() # 自动触发4xx/5xx状态码异常 print(f"Request success, status code: {resp.status_code}") return resp except requests.exceptions.ConnectionError as e: last_err = e print(f"Connection failed, retry {retry_cnt+1}/{max_retry}: {str(e)}") time.sleep(random.randint(1,3)) except Exception as e: last_err = e print(f"Request failed, retry {retry_cnt+1}/{max_retry}: {str(e)}") time.sleep(random.randint(2,5)) raise last_err
- 如果选择走代理方案,修正代理筛选逻辑:优先筛选HTTPS协议代理,每个代理拿到后先发起测试请求验证能正常访问目标站点,验证通过的代理再加入可用列表,不要直接使用未经过校验的公共代理。公共代理存活率极低,长期运行建议使用付费高匿代理池。
- 移除无意义的
verify参数切换逻辑:SSL证书校验和连接拒绝错误完全无关,关闭校验既解决不了问题,还会带来证书伪造的安全风险。
验证顺序
- 先在Lambda控制台发起最简测试,直接执行
requests.get("https://www.niederglatt-zh.ch", timeout=(5,15)),确认是否稳定复现连接拒绝错误。 - 配置VPC+NAT+固定EIP后再次执行测试,验证连通性。
- 若固定EIP仍被拦截,更换EIP或切换为可用高匿代理即可。
内容的提问来源于stack exchange,提问作者taga
相关产品推荐
相关产品推荐

