|
发表于 2018-11-7 10:24:40
|
显示全部楼层
本帖最后由 gougou6423 于 2018-11-7 14:37 编辑
python3的,需要先 pip install requests
[ol]THREAD = 10 #线程数LINK_PATH = 'link.txt' #保存链接的文件import concurrent.futuresimport timeimport requestsimport osimport imghdrdef download(url): url = url.strip() r = requests.get(url, stream=True) chunk_size=1048576 filename = url.split('/')[-1] with open(filename, "wb") as f: for chunk in r.iter_content(chunk_size=chunk_size): if chunk: f.write(chunk) print(filename + "下载完成") return filename start = time.time()print("图片下载开始")f = open(LINK_PATH)urls = f.readlines()f.close()executor = concurrent.futures.ThreadPoolExecutor(max_workers=THREAD)all_task = [executor.submit(download, (url)) for url in urls]for future in concurrent.futures.as_completed(all_task): filename = future.result() if not os.path.splitext(filename)[1]: img_type = imghdr.what(filename) os.rename(filename, filename + '.' + img_type)end = time.time() print("所有图片下载完成,耗时%.2f秒" %(end-start))[/ol]复制代码
|
|