I need to download a thousand csv files size: 20KB - 350KB. Here is my code so far:
Im using urllib.request.urlretrieve. And with it i download thousand files with size of all of them together: 250MB, for over an hour.
So my question is:
How can I download thousand csv files faster then one hour? 
Thank you!
The issue is very unlikely to be bandwidth (connection speed) because any network connection can maintain that bandwidth. The issue is latency - the time it takes to establish a connection and set up your transfers. I know nothing about Python, but would suggest you split your list and run the queries in parallel if possible, on multiple threads or processes - since the issue is almost certainly neither CPU, nor bandwidth-bound. So, I am saying fire off multiple requests in parallel so a bunch of setups can all be proceeding at the same time and the time each takes is masked behind another.
By the way, if your thousand files amount to 5MB, then they are around 5kB each, rather than the 20kB to 350kB you say.
Fastest way to download thousand files using python?