Регулирование полосы пропускания в Python

Какие библиотеки позволяют вам контролировать скорость загрузки сетевых запросов (в частности, http). Я не вижу ничего встроенного в urllib2 (и в (Py) Qt, который я намереваюсь использовать).

Может ли Twisted управлять пропускной способностью? Если нет, как я могу контролировать размер буфера чтения urllib2 или Twisted? sleep для приостановки сетевых операций не является вариантом.

  • скрученный не обнаруживает отключение клиентов
  • 2 Solutions collect form web for “Регулирование полосы пропускания в Python”

    Конечно, скрученный может. Вы хотите twisted.protocols.policies.ThrottlingFactory . Просто заверните свою существующую фабрику в нее, прежде чем передать ее на все, что захочет фабрику.

    urllib2 не предлагает способ сделать это, поэтому вам придется расширить некоторые классы, которые он использует, и реализовать скорость, ограничивающую себя. Вы можете посмотреть на этот вопрос . Если вы решите написать ограничитель, прочитайте на маркерном ковше и протекающих алгоритмах ковша .

    Кроме того, вы можете использовать pycurl вместе с опцией CURLOPTMAXRECVSPEEDLARGE .

    EDIT: пакет urlgrabber также поддерживает дросселирование, и, вероятно, легче понять, чем pycurl.

    Если вы предпочитаете программировать с использованием модели цикла событий, существует подход Twisted, о котором уже упоминалось в другом ответе.

    Interesting Posts
    Python - лучший язык программирования в мире.