Windows唤醒后Python Requests模块挂起问题解决方案咨询
解决睡眠唤醒后requests脚本挂起的方案
这种情况确实是睡眠后系统保留的失效套接字被requests的连接池复用导致的,以下是几个实用的解决办法:
强制关闭单次请求的连接
在每次请求里添加Connection: close头,让请求完成后直接关闭连接,不进入连接池复用:import requests response = requests.get("你的目标URL", headers={"Connection": "close"})使用新会话替代全局连接池
不要用requests的全局请求方法,每次运行脚本时创建全新的会话,避免复用之前残留的失效连接:import requests # 每次脚本启动都创建新会话 session = requests.Session() # 可选:给会话设置默认的关闭连接头 session.headers.update({"Connection": "close"}) response = session.get("你的目标URL")添加超时与重试机制
给请求设置超时时间,避免无限挂起,同时捕获超时异常后自动重试,适配睡眠后网络状态不稳定的情况:import requests from requests.exceptions import Timeout def fetch_url_with_retry(url, retries=3, timeout=10): for _ in range(retries): try: return requests.get(url, timeout=timeout, headers={"Connection": "close"}) except Timeout: continue raise Exception("多次重试后仍无法获取数据") response = fetch_url_with_retry("你的目标URL")调整Windows电源设置
关闭Windows的快速启动功能,这个功能会让系统睡眠/唤醒时保留部分硬件状态,可能导致网络套接字异常:- 打开「控制面板」→「电源选项」
- 点击「选择电源按钮的功能」
- 点击「更改当前不可用的设置」
- 取消勾选「启用快速启动(推荐)」,保存更改
内容的提问来源于stack exchange,提问作者ouai
相关产品推荐
相关产品推荐

