Python获取网络图片并保存
简介
在日常开发中,有时候我们需要从网络上获取图片并保存到本地,例如爬虫应用、图片下载器等。本文将介绍如何使用Python获取网络图片并保存到本地。
环境准备
在开始之前,确保你已经安装了Python环境,并且安装了requests
库。你可以使用以下命令安装requests
库:
pip install requests
使用requests
库获取图片
requests
是一个非常流行的HTTP请求库,它可以用来发送HTTP请求并获取响应。我们可以使用requests
库发送GET请求来获取网络图片的内容。
以下是一个简单的例子,展示如何使用requests
库获取网络图片的内容:
import requests
url = "
response = requests.get(url)
image_content = response.content
在上述代码中,我们首先使用requests.get(url)
函数发送了一个GET请求,并将响应保存在response
对象中。然后,我们可以通过response.content
属性获取到图片的二进制内容。
保存图片到本地
获取到图片的二进制内容后,我们可以将其保存到本地文件中。可以使用Python的文件操作来保存图片。
以下是一个简单的例子,展示如何将图片的二进制内容保存到本地文件:
import requests
url = "
response = requests.get(url)
image_content = response.content
with open("image.jpg", "wb") as file:
file.write(image_content)
在上述代码中,我们使用open
函数创建一个文件对象,并指定文件名为image.jpg
。然后,我们使用文件对象的write
方法将图片的二进制内容写入到文件中。
使用上述代码运行后,你将在当前目录下看到一个名为image.jpg
的文件,它就是从网络上获取到的图片。
下载多张图片
有时候,我们需要下载多张图片。可以使用循环结构来实现这个目标。
以下是一个简单的例子,展示如何使用循环结构下载多张图片:
import requests
image_urls = [
"
"
"
]
for url in image_urls:
response = requests.get(url)
image_content = response.content
with open(f"{image_urls.index(url) + 1}.jpg", "wb") as file:
file.write(image_content)
在上述代码中,我们使用一个列表image_urls
来保存多张图片的URL。然后,我们通过循环遍历列表中的每个URL,并使用相同的方式将图片保存到本地。
使用上述代码运行后,你将在当前目录下看到三个文件,分别为1.jpg
、2.jpg
和3.jpg
,它们分别对应从网络上获取到的三张图片。
异常处理
在实际开发中,网络请求可能会出现异常。为了保证程序的稳定性和健壮性,我们需要对异常情况进行处理。
以下是一个简单的例子,展示如何使用异常处理来处理网络请求中的异常:
import requests
url = "
try:
response = requests.get(url)
response.raise_for_status()
image_content = response.content
with open("image.jpg", "wb") as file:
file.write(image_content)
except requests.exceptions.HTTPError as e:
print(f"HTTP error occurred: {e}")
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
在上述代码中,我们使用try-except
结构来捕获可能出现的异常。如果请求返回的响应状态码不是200(表示请求成功),那么response.raise_for_status()
将抛出一个HTTPError
异常。如果在请求过程中发生其他异常,那么将抛出一个RequestException
异常。
使用上述代码运行后,你将在控制台上看到相应的错误信息。
总结
本文介绍了如何使用Python中的requests
库获取网络图片并保存到本地。首先,我们使用requests.get()
函数发送GET请求来获取图片的内容。然后,我们将图片的二进制内容保存到本地文件