首頁 >後端開發 >Python教學 >如何在Python中下載文件

如何在Python中下載文件

William Shakespeare
William Shakespeare原創
2025-03-01 10:03:14322瀏覽

How to Download Files in Python

Python 提供多種從互聯網下載文件的方法,可以使用 urllib 包或 requests 庫通過 HTTP 進行下載。本教程將介紹如何使用這些庫通過 Python 從 URL 下載文件。

requests

requests 是 Python 中最流行的庫之一。它允許發送 HTTP/1.1 請求,無需手動將查詢字符串添加到 URL 或對 POST 數據進行表單編碼。

requests 庫可以執行許多功能,包括:

  • 添加表單數據
  • 添加多部分文件
  • 訪問 Python 的響應數據

發出請求

首先,需要安裝該庫,方法很簡單:

pip install requests

要測試安裝是否成功,可以在 Python 解釋器中簡單地輸入以下命令:

import requests

如果安裝成功,不會出現錯誤。

HTTP 請求包括:

  • GET
  • POST
  • PUT
  • DELETE
  • OPTIONS
  • HEAD

發出 GET 請求

發出請求非常簡單,如下所示:

import requests
req = requests.get("https://www.google.com")

上述命令將獲取 Google 網頁並將信息存儲在 status_code 中。

import requests
req = requests.get("https://www.google.com")
req.status_code
200  # 200 表示请求成功

如果想知道 Google 網頁的編碼類型呢?

req.encoding
'ISO-8859-1'

可能還想了解響應的內容:

req.text

這只是響應內容的截斷部分。

<code>'<meta content="Search the world\'s information, including webpages, imag...'</code>

發出 POST 請求

簡單來說,POST 請求用於創建或更新數據,尤其用於表單提交。

假設有一個註冊表單,需要輸入電子郵件地址和密碼。單擊註冊提交按鈕時,POST 請求如下所示:

data = {"email": "info@tutsplus.com",
        "password": "12345"}
req = requests.post("http://www.google.com", params=data)

發出 PUT 請求

PUT 請求類似於 POST 請求,用於更新數據。例如,以下 API 顯示瞭如何發出 PUT 請求:

data = {"name": "tutsplus",
        "telephone": "12345"}
r.put("http://www.contact.com", params=data)

發出 DELETE 請求

顧名思義,DELETE 請求用於刪除數據。以下是一個 DELETE 請求的示例:

data = {'name': 'Tutsplus'}
url = "https://www.contact.com/api/"
response = requests.delete(url, params=data)

urllib

urllib 包收集了用於處理 URL 的多個模塊:

  • urllib.error 包含 urllib.parse 引發的異常,用於解析 URL
  • robots.txt 文件

urllib.request 如下所示:

import urllib.request
with urllib.request.urlopen('http://python.org/') as response:
    html = response.read()

如果希望檢索互聯網資源並將其存儲,可以通過 urlretrieve() 函數進行:

import urllib.request
filename, headers = urllib.request.urlretrieve('http://python.org/')
html = open(filename)

使用 Python 下載圖像

在此示例中,將使用 requests 庫和 urllib 模塊下載此示例圖像。

url = 'https://www.python.org/static/opengraph-icon-200x200.png'
# 使用 urllib 下载
# 导入 urllib 库
import urllib.request
# 将网络对象复制到本地文件
urllib.request.urlretrieve(url, "python.png")
# 使用 requests 下载
# 导入 requests 库
import requests
# 以二进制格式下载 url 内容
r = requests.get(url)
# open 方法打开系统上的文件并写入内容
with open("python1.png", "wb") as code:
    code.write(r.content)

使用 Python 下載 PDF 文件

在此示例中,將下載關於 Google 趨勢的 PDF 文件。

url = 'https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdf'
# 使用 urllib 下载
# 导入 urllib 包
import urllib.request
# 将网络对象复制到本地文件
urllib.request.urlretrieve(url, "tutorial.pdf")
# 使用 requests 下载
# 导入 requests 库
import requests
# 以二进制格式下载文件内容
r = requests.get(url)
# open 方法打开系统上的文件并写入内容
with open("tutorial1.pdf", "wb") as code:
    code.write(r.content)

使用 Python 下載 Zip 文件

在此示例中,將下載 GitHub 存儲庫的內容並將文件存儲在本地。

pip install requests

使用 Python 下載視頻

在此示例中,將下載一個視頻講座。

import requests

使用 Python 下載 CSV 文件

還可以使用 requestsurllib 庫下載 CSV 文件,並使用 csv 模塊處理響應。讓我們使用一些示例 CSV 地址數據。

import requests
req = requests.get("https://www.google.com")

結論

本教程介紹了最常用的文件下載方法以及最常見的文件格式。儘管使用 urllib 模塊時編寫的代碼較少,但由於其簡單性、流行性和許多附加功能(包括:保持活動和連接池、具有 cookie 持久性的會話、瀏覽器樣式的 SSL 驗證、自動內容解碼、身份驗證、自動解壓縮、Unicode 響應正文、HTTP(S) 代理支持、多部分文件上傳、流下載、連接超時、分塊請求、.netrc 支持),因此更推薦使用 requests 模塊。

以上是如何在Python中下載文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn