使用 Python 透過 HTTP 下載檔案


在 Python 中,我們使用 Python 內建庫(如 **urllib**、**request** 和 **httplib**)透過 HTTP 下載檔案。HTTP 是超文字傳輸協議,用於透過全球資訊網訪問資料。HTTP 請求通常由客戶端(例如 Web 瀏覽器)發起,併發送到託管請求資源的伺服器。請求通常包含方法(例如 GET 或 POST)、標識資源的統一資源定位符 (URL) 以及提供有關請求的其他資訊的可選標頭。在本文中,我們將瞭解如何使用 urllib 和 request 庫來下載檔案。

使用 urllib 下載檔案

Urllib 包含諸如 urllib.request 之類的子模組,可用於輕鬆地從網際網路下載檔案。urllib.request 以檔案的 URL 和您要賦予下載檔案的名稱作為輸入。

語法

urllib.request.urlretrieve(URL, filename)

這裡 **urllib.request.urlretrieve** 接受兩個引數。一個是網際網路上檔案的 URL,另一個是您要賦予下載檔案的名稱。

示例

在下面的示例中,要使用 urllib 庫透過 HTTP 下載檔案,首先匯入 urllib.request 模組,然後呼叫 urllib.request 模組的 urlretrive 函式。傳遞要下載的檔案的 URL 和下載檔案後要保留的檔名。

如果傳遞了無效的 URL 或檔案不可下載,則會引發異常。

import urllib.request
from PIL import Image

url = 'https://python.club.tw/static/img/python-logo.png'
filename = 'python-logo.png'

urllib.request.urlretrieve(url, filename)

with open(filename, 'rb') as f:
   image = Image.open(f)
   image.show()

輸出

使用 requests 庫下載檔案

requests 庫使用其 get 方法在 Python 中發出 HTTP 請求。它只需將檔案的 URL 作為輸入,併發出 get 請求以下載檔案,並將下載的檔案作為響應返回。

語法

requests.get(URL)

這裡在 **requests.get()** 方法中,URL 是要透過網際網路下載的檔案的 URL。

示例

在下面的示例中,我們匯入 requests 庫並指定我們要下載的檔案的 URL 和我們要賦予下載檔案的名稱。然後,我們匯入 requests 庫並使用 requests.get() 方法下載 Python 徽標。該方法返回一個包含檔案內容的響應物件。最後,我們讀取下載的檔案並將其列印到螢幕上。

import requests

url = 'https://python.club.tw/static/img/python-logo.png'
filename = 'python-logo.png'

response = requests.get(url)

from PIL import Image

with open(filename, 'rb') as f:
   image = Image.open(f)
   image.show()

輸出

結論

在本文中,我們討論瞭如何使用 Python 內建庫(如 urllib 和 requests 庫)透過 HTTP 在 Python 中下載檔案。requests 庫提供了更高級別的介面,並且比 urllib 更易於使用。requests 庫提供了比 urllib 庫更簡單的方法來下載檔案。任何庫都可以用於在 Python 中下載檔案。

更新於: 2023年7月10日

449 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.