在 Python 中下载图片
本教程将讨论一些使用 Python 从互联网上下载图片的最主要方法。
使用 Python 中的 urllib
包下载图片
urllib
包是一个用于处理 URLs 的若干模块的集合。urllib.request
是一个用于打开和读取 URLs 内容的模块。在本教程中,我们将使用 Python 从 https://www.python.org/images/success/nasa.jpg 下载一个图片文件。在 urllib.request
模块中,有两种方法可以用来下载图片,下面将对其进行说明。
使用 urllib.request.urlretrieve(url, filename)
方法下载图片
下面的代码示例显示了我们如何使用 urlretrieve(url, filename)
方法在 Python 中下载一张图片。
import urllib.request
urllib.request.urlretrieve("https://www.python.org/images/success/nasa.jpg", "NASA.jpg")
print("download successful")
输出:
download successful
上面的代码将图片下载到当前工作目录。urlretrieve(url, filename)
方法将图像的 URL 和你想存储的文件名作为参数。urlretrieve(url, filename)
方法被列在官方文档的旧界面下,这意味着 urlretrieve(url, filename)
方法将在未来被弃用。
使用 urllib.request.urlopen(url)
方法下载图片
为了克服 urlretrieve(url, filename)
方法的不可避免的被弃用的现实,可以使用 urlopen(url)
方法进行文件处理。根据 Python 官方文档,urlopen(url)
方法用于打开任何 URL。
以下代码示例显示了如何使用具有文件处理功能的 urlopen(url)
方法下载图像。
import urllib.request
f = open("NASA2.jpg", "wb")
f.write(urllib.request.urlopen("https://www.python.org/images/success/nasa.jpg").read())
f.close()
print("download successful")
输出:
download successful
在上面的代码中,我们首先使用 open(filename, mode)
方法在 write binaries
模式下打开一个名为 NASA2.jpg
的文件。在下一行中,我们使用 write()
方法将从文件中的 URL 中读取的内容写入。之后,我们使用 close()
方法关闭文件。
使用 Python 中的 requests
库下载图像
requests
是一个 Python 库,我们可以用它来向服务器发送 HTTP/1.1 请求。我们可以使用 requests
库中的 get(url)
方法向 URL 发送 GET
请求,从 URL 中获取图片文件,然后使用文件处理保存。
下面的代码示例显示了我们如何使用带有文件处理功能的 requests
库下载图片。
import requests
f = open("NASA3.jpg", "wb")
response = requests.get("https://www.python.org/images/success/nasa.jpg")
f.write(response.content)
f.close()
print("download successful")
输出:
download successful
在上面的代码中,我们首先使用 open(filename, mode)
方法在 write binaries
模式下打开一个名为 NASA3.jpg
的文件。
在接下来的一行中,我们将 GET 请求的响应存储在变量-response
中。
之后,我们使用 write()
方法将 response
中的二进制内容写入文件。
最后,我们使用 close()
方法关闭文件。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn