Как ограничить скорость загрузки HTTP-запросов в библиотеках python запросов?

Можно ли ограничить скорость загрузки запросов GET с помощью библиотеки requests Python? Например, с помощью следующей команды:

r = requests.get('https://stackoverflow.com/')

... можно ли ограничить скорость загрузки? Я надеюсь на что-то подобное этой команде wget:

wget --limit-rate=20k https://stackoverflow.com/

Я знаю это возможно с помощью urllib2. Я спрашиваю конкретно о библиотеке requests.

Ответ 1

Существует несколько подходов к ограничению скорости; один из них токен bucket, для которого вы можете найти рецепт здесь и другой здесь.

Обычно вы хотите сделать дросселирование или ограничение скорости на socket.send() и socket.recv(). Вы можете играть с socket-throttle и посмотреть, делает ли он то, что вам нужно.


Не следует путать с x-ratelimit заголовками ответов ограничения скорости, которые связаны с количеством запросов, а не скоростью загрузки/передачи.