有哪些庫允許您控制網絡請求(特別是http)的下載速度。我沒有看到任何內置於urllib2中的內容(也不在我打算使用的(Py)Qt中)。Python中的帶寬限制
可以扭曲控制帶寬嗎?如果不是,我該如何控制urllib2或Twisted的讀取緩衝區大小? sleep
暫停網絡操作不是一種選擇。
有哪些庫允許您控制網絡請求(特別是http)的下載速度。我沒有看到任何內置於urllib2中的內容(也不在我打算使用的(Py)Qt中)。Python中的帶寬限制
可以扭曲控制帶寬嗎?如果不是,我該如何控制urllib2或Twisted的讀取緩衝區大小? sleep
暫停網絡操作不是一種選擇。
當然扭曲可以。你想要twisted.protocols.policies.ThrottlingFactory
。在將其傳遞給任何需要工廠的產品之前,只需將其中現有的工廠包裝在其中。
urllib2沒有提供這樣做的方法,所以你必須擴展一些它使用的類並實現自己的速率限制。你可能想看看this question。如果您決定編寫限制器,請閱讀token bucket和leaky bucket算法。
或者,您可以使用pycurl以及CURLOPTMAXRECVSPEEDLARGE選項。
編輯:urlgrabber包似乎也支持節流,並且可能比pycurl更容易理解。
如果您更願意使用事件循環模型進行編程,則可以使用Twisted方法,該方法在另一個答案中已經提到。
你能發表一個完整的例子嗎?我被所有的課程迷失了一些。 – 2010-08-15 18:47:10