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

如何使用requests通过代理连接网站并保持连接10秒?

嘿,我来帮你搞定这个问题!你的思路是对的,用requests.Session来复用连接,但默认情况下,get()请求完成后连接很快就会被释放,所以没法保持10秒。咱们可以通过几个小调整来实现需求:

修改思路及完整脚本

要让连接保持10秒,核心是让TCP连接处于活跃状态,不要在请求完成后立刻关闭。具体要做这几件事:

  • 启用流式响应(stream=True):阻止requests一次性下载完所有响应内容,这样连接会维持打开状态
  • 加入延迟等待:用time.sleep(10)来让连接保持活跃10秒
  • 确保长连接生效:requests的Session默认会发送Connection: keep-alive请求头,不过要确保你的代理服务器也支持长连接

下面是修改后的完整代码:

import requests
import time

url = 'http://WEBSITE.com/'
proxies = {'http': 'http://IP:PORT'}

# 创建会话并配置代理
s = requests.Session()
s.proxies.update(proxies)

try:
    # 发送流式请求,保持连接打开
    response = s.get(url, stream=True)
    # 维持连接10秒
    time.sleep(10)
finally:
    # 确保资源被正确释放
    response.close()
    s.close()
额外说明
  • 如果目标网站是HTTPS协议,记得把代理配置里的http改成https,或者同时配置两种协议的代理:
    proxies = {'http': 'http://IP:PORT', 'https': 'http://IP:PORT'}
    
  • 有些代理服务器可能会强制关闭长时间闲置的连接,如果遇到这种情况,可以在等待期间偶尔读取一小段响应内容(比如response.raw.read(1))来保持连接活跃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:06:09