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

requests请求遇超时及MaxRetryError问题求助

解决Requests请求中的Timeout、ConnectTimeout及MaxRetryError问题

问题根源

你的脚本存在以下核心问题,导致各类超时和连接异常无法被正确处理:

  1. 未设置请求超时:requests.get()默认无超时限制,等待过久会触发TimeoutError
  2. 异常捕获缺失:仅考虑ConnectionError,但TimeoutError、ConnectTimeoutError、MaxRetryError、SSLError等异常不在其捕获范围内
  3. SSL错误处理逻辑错误:SSLWeb = requests.exceptions.SSLError(website)是创建异常实例,而非判断请求是否触发SSL错误
  4. 无异常捕获机制:直接调用requests.get()会因异常中断脚本执行

修复后的完整代码

import requests
from requests.exceptions import RequestException, SSLError, Timeout

# 读取域名列表
with open('webs.txt') as archivo:
    webs_list = [linea.rstrip() for linea in archivo]

# 读取路径列表
with open('directorios.txt') as archivo_02:
    direcs_list = [linea.rstrip() for linea in archivo_02]

# 生成完整URL列表
urls = [web + direct for web in webs_list for direct in direcs_list]

AdminPanels_websites = []

for website in urls:
    try:
        # 设置超时:连接超时3秒,读取超时10秒,避免无限等待
        getweb = requests.get(website, timeout=(3, 10))
        # 检查响应时间,超过1秒则跳过
        if getweb.elapsed.total_seconds() >= 1:
            continue
        # 状态码200则收集链接
        if getweb.status_code == 200:
            AdminPanels_websites.append(website)
            print(f"找到有效链接: {website}")
    except SSLError:
        # 处理SSL证书错误,直接跳过
        print(f"SSL证书错误: {website}")
        continue
    except Timeout:
        # 处理各类超时异常
        print(f"请求超时: {website}")
        continue
    except RequestException as e:
        # 捕获其他所有requests请求异常(如MaxRetryError、ConnectionError等)
        print(f"请求失败: {website},错误信息: {str(e)}")
        continue

# 写入结果文件
with open("paneles.txt", "w") as archivo_03:
    for panel in AdminPanels_websites:
        archivo_03.write(f"{panel}\n")

关键改进说明

  • 设置请求超时:timeout=(3,10)指定连接超时3秒,读取响应超时10秒,从根源避免无限等待引发的TimeoutError
  • 分层异常捕获:
    • 单独捕获SSLError处理证书问题
    • 单独捕获Timeout处理各类超时异常(ConnectTimeoutError、TimeoutError等)
    • 用RequestException兜底捕获所有requests相关异常(含MaxRetryError)
  • 修正逻辑错误:移除原错误的SSL判断代码,改用异常捕获处理SSL问题
  • 优化代码结构:使用列表推导式简化列表生成,提升可读性
  • 脚本稳定性:异常发生时跳过当前URL,保证脚本持续运行处理后续链接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:40:39