在 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