Python中的带宽限制

Ida*_*n K 10 python networking network-programming

哪些库可以让您控制网络请求的下载速度(特别是http).我没有在urllib2中看到任何内置内容(也没有在我打算使用的(Py)Qt中看到).

可以扭曲控制带宽吗?如果没有,我如何控制urllib2或Twisted的读缓冲区大小?sleep暂停网络运营不是一种选择.

hab*_*bit 8

当然扭曲了.你想要的twisted.protocols.policies.ThrottlingFactory.只需将现有工厂包装在其中,然后再将其传递给任何需要工厂的工厂.

  • 你能发表一个完整的例子吗?我对所有课程都有些迷茫。 (2认同)

ʇsә*_*ɹoɈ 8

urllib2没有提供这样做的方法,所以你必须扩展它使用的一些类并自己实现速率限制.你可能想看看这个问题.如果您决定编写限制器,请阅读令牌桶漏桶算法.

或者,您可以将pycurlCURLOPTMAXRECVSPEEDLARGE选项一起使用.

编辑:urlgrabber包似乎也支持限制,并且可能比pycurl更容易理解.

如果您更喜欢使用事件循环模型进行编程,那么Twisted方法已经在另一个答案中提到了.