首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何限制请求python库中HTTP请求的下载率?

如何限制请求python库中HTTP请求的下载率?
EN

Stack Overflow用户
提问于 2013-07-17 12:40:42
回答 2查看 12.3K关注 0票数 20

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

代码语言:javascript
复制
r = requests.get('https://stackoverflow.com/')

...is可以限制下载速率吗?我希望得到类似于这个wget命令的东西:

代码语言:javascript
复制
wget --limit-rate=20k https://stackoverflow.com/

我知道是possibleurllib2在一起。我特别问的是requests库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-17 13:27:07

有几种速率限制的方法;其中之一是token bucket,您可以找到a recipe hereanother one here

通常,您会希望在socket.send()socket.recv()上执行节流或速率限制。你可以使用socket-throttle,看看它是否能满足你的需求。

这不能与x-ratelimit rate limiting response headers混淆,后者与许多请求相关,而不是与下载/传输速率相关。

票数 9
EN

Stack Overflow用户

发布于 2021-07-12 16:20:01

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

代码语言:javascript
复制
>>> 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)
...

advanced usage中,它允许您一次检索较小数量的响应。

在我的网络中,上面的例子(产生一个几GB的大文件)没有休眠,带宽为17.4MB/s,休眠为1ms,带宽为2.5MB/s。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17691231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档