Python 如何使用requests下载图片

Python 如何使用requests下载图片

在本文中,我们将介绍如何使用Python的requests库来下载图片。

阅读更多:Python 教程

1. 安装requests

在开始之前,我们需要先确保已经安装了requests库。如果没有安装,可以通过以下命令来安装:

pip install requests
Python

2. 使用requests下载图片

要下载图片,我们可以使用requests库提供的get方法。以下是一个简单的示例:

import requests

image_url = 'https://example.com/image.jpg'
response = requests.get(image_url)

if response.status_code == 200:
    with open('image.jpg', 'wb') as file:
        file.write(response.content)
        print('图片下载成功!')
else:
    print('图片下载失败!')
Python

在上面的示例中,我们首先指定了图片的URL。然后,我们使用requests.get方法来发送GET请求,获取到图片的响应。

如果响应的状态码为200,表示请求成功。我们可以通过response.content属性来获取图片的二进制数据,并将其写入到一个文件中,即实现了图片的下载。

如果响应的状态码不是200,表示请求失败。我们可以根据实际情况进行错误处理。

3. 自定义下载图片的文件名

默认情况下,我们使用上面的方法下载的图片的文件名是image.jpg。如果需要自定义文件名,可以在打开文件时指定文件名,如下所示:

import requests

image_url = 'https://example.com/image.jpg'
filename = 'my_image.jpg'  # 自定义文件名
response = requests.get(image_url)

if response.status_code == 200:
    with open(filename, 'wb') as file:
        file.write(response.content)
        print('图片下载成功!')
else:
    print('图片下载失败!')
Python

4. 下载多个图片

除了下载单个图片,我们也可以使用requests库来下载多个图片。以下是一个示例:

import requests

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

for i, image_url in enumerate(image_urls):
    response = requests.get(image_url)

    if response.status_code == 200:
        with open(f'image{i+1}.jpg', 'wb') as file:
            file.write(response.content)
            print(f'图片{i+1}下载成功!')
    else:
        print(f'图片{i+1}下载失败!')
Python

在上面的示例中,我们使用了一个列表来存储多个图片的URL。然后,我们使用for循环依次下载这些图片,并为每个图片自定义了文件名。

5. 下载大型图片

有时候,我们需要下载的图片可能非常大,可能比较耗时。为了提高下载的效率,我们可以使用stream参数来实现流式下载,如下所示:

import requests

image_url = 'https://example.com/large_image.jpg'
response = requests.get(image_url, stream=True)

if response.status_code == 200:
    with open('large_image.jpg', 'wb') as file:
        for chunk in response.iter_content(1024):
            file.write(chunk)
        print('图片下载成功!')
else:
    print('图片下载失败!')
Python

在上面的示例中,我们通过设置stream=True来开启流式下载。然后,我们使用response.iter_content方法以分块的方式写入文件,每块的大小为1024字节。

这种方式可以避免一次性将整个文件存储在内存中,从而节省内存空间。

总结

本文介绍了如何使用Python的requests库来下载图片。我们学会了下载单个图片、自定义文件名、下载多个图片以及下载大型图片的方法。希望本文对你有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册