📜  python 下载图片 - Python (1)

📅  最后修改于: 2023-12-03 15:19:06.634000             🧑  作者: Mango

Python 下载图片

在Python中,可以使用requests库来下载图片。下面是一个简单的Python脚本,用于从URL下载图片并保存到本地文件夹。

import requests

url = 'https://example.com/image.jpg'
response = requests.get(url)
with open('image.jpg', 'wb') as f:
    f.write(response.content)

上述代码使用requests.get()方法发送GET请求,并将响应保存在response变量中。然后使用Python中的open()方法来创建一个新文件,并将字节流写入这个文件。最后,使用'wb'模式来打开文件,以二进制模式写入文件。

如果要下载的图片需要验证身份,可以使用requests库的auth参数来发送身份验证信息。

import requests

url = 'https://example.com/image.jpg'
username = 'user'
password = 'password'

response = requests.get(url, auth=(username, password))
with open('image.jpg', 'wb') as f:
    f.write(response.content)

上述代码在请求中包含了用户名和密码,使用HTTP基本认证来验证用户身份。如果需要发送其他类型的身份验证,请查阅requests库的文档。

还可以使用Python的多线程或多进程来下载多个图片,以提高下载速度。下面是一个使用多线程的示例代码。

import requests
import threading

def download_image(url, filename):
    response = requests.get(url)
    with open(filename, 'wb') as f:
        f.write(response.content)

url_list = ['https://example.com/image1.jpg', 'https://example.com/image2.jpg', 'https://example.com/image3.jpg']
filename_list = ['image1.jpg', 'image2.jpg', 'image3.jpg']

thread_list = []
for i in range(len(url_list)):
    t = threading.Thread(target=download_image, args=(url_list[i], filename_list[i]))
    thread_list.append(t)
    t.start()

for t in thread_list:
    t.join()

上述代码将下载多个图片的过程分配给多个线程,每个线程负责下载一个图片并将其保存到本地。为了等待所有线程结束,我们使用join()方法将主进程阻塞,直到所有线程结束为止。

总结:

本文介绍了使用Python下载图片的方法,包括使用requests库发送HTTP请求、使用多线程下载多个图片等。这些方法在实践中都非常实用,可以帮助程序员快速地获取所需的图片资源。