2013-07-17 15 views
11

Czy można ograniczyć szybkość pobierania żądań GET przy użyciu biblioteki Python requests? Na przykład z taką komendą:Jak ograniczyć szybkość pobierania żądań HTTP w żądaniach biblioteki Pythona?

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

... czy możliwe jest ograniczenie szybkości pobierania? Mam nadzieję, że coś podobnego do tego polecenia wget:

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

wiem, że to possible z urllib2. Pytam konkretnie o bibliotekę requests.

Odpowiedz

7

Istnieje kilka podejść do ograniczenia szybkości; jednym z nich jest token bucket, dla którego można znaleźć a recipe here i another one here.

Zwykle chcesz zrobić dławienie lub ograniczenie prędkości na socket.send() i socket.recv(). Możesz grać z socket-throttle i sprawdzić, czy robi to, czego potrzebujesz.


to nie należy mylić z x-ratelimit rate limiting response headers, które odnoszą się do liczby wniosków niż tempie download/transferu.