如何在Python的requests库中限制HTTP请求的下载速率?

22

使用Python的requests库是否可以限制GET请求的下载速率?例如,使用以下命令:

r = requests.get('https://stackoverflow.com/')

有没有可能限制下载速度?我希望有类似于wget命令的东西:

wget --limit-rate=20k https://stackoverflow.com/

我知道使用 urllib2 可以实现,但我特别想问的是 requests 库能否实现。

2个回答

9

9
由于提问者询问如何使用 requests 库来实现这一点,因此这并没有真正回答问题......除非你建议他重新编写 requests 的深入部分以实现他想要的功能。 - Dan H
@DanH,非常欢迎您提供更好的答案。在撰写本答案时,答案是“否”,除非您干扰内部操作,这对OP没有帮助。 - dnozay

3

没有内置支持,但是可以使用流API。

>>> import requests
>>> import time
>>> req = requests.request('GET', 'https://httpbin.org/get', stream=True)
>>> for data in req.iter_content(chunk_size=1024):
...     time.sleep(0.001)
...

高级用法中写道,它允许您一次检索较小的响应量。

在我的网络中,上面的示例(导致几GB大的文件)没有休眠时带宽为17.4 MB/s,而休眠1毫秒后为2.5 MB/s。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接