下载大量多个文件

时间:2018-03-28 04:36:07

标签: python multithreading download python-requests

我有一组带索引的图片网址,现在我想通过下载程序解析它,可以一次下载多个文件以加快处理速度。

我尝试将文件名和URL放到dicts(分别是name和d2),然后使用请求和线程来执行此操作:

def Thread(start,stop):
    for i in range(start, stop):
        url = d2[i]
        r = requests.get(url)
        with open('assayImage/{}'.format(name[i]), 'wb') as f:
            f.write(r.content)

for n in range(0, len(d2), 1500):
    stop = n + 1500 if n +1500 <= len(d2) else len(d2)
    threading.Thread(target = Thread, args = (n,stop)).start()

但是,有时连接超时并且不会下载该文件,过一会儿,下载速度会急剧下降。例如,对于前1个小时,我可以下载10000个文件,但3个小时后我只能下载8000个文件。每个文件都很小,大约500KB。

所以,我想问一下有没有稳定的方法可以下载大量的多个文件?我非常感谢你的回答。

0 个答案:

没有答案