Python 提供多種從互聯網下載文件的方法,可以使用 urllib
包或 requests
庫通過 HTTP 進行下載。本教程將介紹如何使用這些庫通過 Python 從 URL 下載文件。
requests
庫
requests
是 Python 中最流行的庫之一。它允許發送 HTTP/1.1 請求,無需手動將查詢字符串添加到 URL 或對 POST 數據進行表單編碼。
requests
庫可以執行許多功能,包括:
發出請求
首先,需要安裝該庫,方法很簡單:
pip install requests
要測試安裝是否成功,可以在 Python 解釋器中簡單地輸入以下命令:
import requests
如果安裝成功,不會出現錯誤。
HTTP 請求包括:
發出 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
引發的異常,用於解析 URLrobots.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 文件
還可以使用 requests
和 urllib
庫下載 CSV 文件,並使用 csv
模塊處理響應。讓我們使用一些示例 CSV 地址數據。
import requests req = requests.get("https://www.google.com")
結論
本教程介紹了最常用的文件下載方法以及最常見的文件格式。儘管使用 urllib
模塊時編寫的代碼較少,但由於其簡單性、流行性和許多附加功能(包括:保持活動和連接池、具有 cookie 持久性的會話、瀏覽器樣式的 SSL 驗證、自動內容解碼、身份驗證、自動解壓縮、Unicode 響應正文、HTTP(S) 代理支持、多部分文件上傳、流下載、連接超時、分塊請求、.netrc
支持),因此更推薦使用 requests
模塊。
以上是如何在Python中下載文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!