python多线程下载图片

发布时间 2023-12-07 09:26:26作者: 苦逼yw

urls.json文件数据格式如下

[
    "https://example.com/image1.jpg",
    "https://example.com/image2.jpg",
    "https://example.com/image3.jpg"
]

 

代码如下

import json
import requests
import threading

def download_image(url):
    response = requests.get(url)
    if response.status_code == 200:
        filename = url.split('/')[-1]  # 使用图片链接的最后一部分作为文件名
        with open(filename, 'wb') as f:
            f.write(response.content)
        print(f"已下载图片:{filename}")
    else:
        print(f"下载失败:{url}")

def main():
    # 读取包含图片URL的JSON文件
    with open('urls.json', 'r') as f:
        urls = json.load(f)

    threads = []
    for url in urls:
        t = threading.Thread(target=download_image, args=(url,))
        threads.append(t)
        t.start()

    # 等待所有线程结束
    for t in threads:
        t.join()

    print("所有图片下载完毕")

if __name__ == '__main__':
    main()