2013-07-17 17 views
11

È possibile limitare la velocità di download delle richieste GET utilizzando la libreria Python requests? Ad esempio, con un comando come questo:Come limitare la velocità di download delle richieste HTTP nelle richieste della libreria Python?

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

... è possibile limitare il tasso di download? Spero in qualcosa di simile a questo comando wget:

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

Lo so che è possible con urllib2. Sto chiedendo in particolare la libreria requests.

risposta

7

Esistono diversi approcci per la limitazione della velocità; uno di questi è token bucket, per il quale è possibile trovare a recipe here e another one here.

In genere si consiglia di eseguire la limitazione o la limitazione della velocità su socket.send() e socket.recv(). Puoi giocare con socket-throttle e vedere se fa quello che ti serve.


Questo non deve essere confuso con x-ratelimit rate limiting response headers, che sono collegati ad una serie di richieste, piuttosto che una velocità di download/trasferimento.