单线程:
from urllib.request import urlretrieve
import time
import random
start=time.time()
f=open('E:\Python\py\web\hh.txt','r')#打开存放URL的文件
a=f.readlines()
f.close()
for i in a:b=random.randint(0,30)urlretrieve(i,'%d.png'%b)
end=time.time()
print(end-start)
多线程:
from urllib.request import urlretrieve
import queue
import threading
import random
import time
class download(threading.Thread): def __init__(self,que): threading.Thread.__init__(self) self.que=que def run(self): while True: if not self.que.empty(): host=self.que.get()a=random.randint(0,30)urlretrieve(host,'%d.png'%a) else: break def Down(): f=open('E:\Python\py\web\hh.txt','r')a=f.readlines()f.close()que=queue.Queue() threads=[]for i in a: que.put(i) for i in range(20): d=download(que) threads.append(d)for i in threads:i.start()for i in threads:i.join()if __name__=='__main__': start=time.time()Down() end=time.time()print(end-start)