Ответ 1
Конечно, скрученный может. Вы хотите twisted.protocols.policies.ThrottlingFactory
. Просто заверните свой существующий factory в него, прежде чем передавать его на все, что угодно factory.
Какие библиотеки позволяют вам контролировать скорость загрузки сетевых запросов (в частности, http). Я не вижу ничего встроенного в urllib2 (и в (Py) Qt, который я намереваюсь использовать).
Может ли витая ширина полосы управления? Если нет, как я могу контролировать размер буфера чтения urllib2 или Twisted? sleep
Выполнение приостановки сетевых операций не является вариантом.
Конечно, скрученный может. Вы хотите twisted.protocols.policies.ThrottlingFactory
. Просто заверните свой существующий factory в него, прежде чем передавать его на все, что угодно factory.
urllib2 не предлагает способ сделать это, поэтому вам нужно будет расширить некоторые классы, которые он использует, и реализовать ограничение скорости. Вы можете посмотреть этот вопрос. Если вы решите написать ограничитель, прочитайте маркер токена и протекающий ковш.
В качестве альтернативы вы можете использовать pycurl вместе с CURLOPTMAXRECVSPEEDLARGE.
EDIT: urlgrabber пакет также поддерживает дросселирование, и, вероятно, легче понять, чем pycurl.
Если вы предпочитаете программировать с использованием модели цикла событий, существует подход Twisted, который уже упоминался в другом ответе.