Python使用requests.get请求出现ConnectTimeout超时错误如何解决?
解决方法
你可以通过try...except异常捕获结构包裹请求逻辑,同时优化原有代码中读取子域名的冗余逻辑,修复行尾换行符导致的URL无效问题,修改后的可运行代码如下:
import requests # 读取子域名列表 直接去重去空 省略冗余计数和追加逻辑 with open("test.txt","r", encoding="utf-8") as f: subdomain_list = [line.strip() for line in f if line.strip()] for url in subdomain_list: try: # 把请求逻辑放到try块中执行 resp = requests.get(url, timeout=5) print(f"{url} 请求成功,状态码:{resp.status_code}") except requests.exceptions.ConnectTimeout: # 专门捕获5秒超时的情况 print(f"{url} 请求超时,超出5秒限制") except requests.exceptions.RequestException as e: # 兜底捕获所有requests相关的其他异常,比如连接失败、DNS解析错误等 print(f"{url} 请求异常,错误信息:{str(e)}")
逻辑说明
- 读取子域名阶段直接用列表推导式处理,自动过滤空行,同时用
strip()去掉每行末尾的换行符,避免URL携带无效字符导致请求失败 - 超时异常会被第一个
except块单独捕获,不会中断整个子域名遍历流程 - 兜底异常块可以覆盖所有请求相关的其他错误,避免程序意外退出
内容的提问来源于stack exchange,提问作者X_jrbgyt_3
相关产品推荐
相关产品推荐

