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 req='requests.post("http://www.google.com",' params="data)</pre"> <p>發出 PUT 請求</p> <p>PUT 請求類似於 POST 請求,用於更新數據。例如,以下 API 顯示瞭如何發出 PUT 請求:</p> <pre class="brush:php;toolbar:false">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 文件
還可以使用 requests
和 urllib
庫下載 CSV 文件,並使用 csv
模塊處理響應。讓我們使用一些示例 CSV 地址數據。
import requests req = requests.get("https://www.google.com")
結論
本教程介紹了最常用的文件下載方法以及最常見的文件格式。儘管使用 urllib
模塊時編寫的代碼較少,但由於其簡單性、流行性和許多附加功能(包括:保持活動和連接池、具有 cookie 持久性的會話、瀏覽器樣式的 SSL 驗證、自動內容解碼、身份驗證、自動解壓縮、Unicode 響應正文、HTTP(S) 代理支持、多部分文件上傳、流下載、連接超時、分塊請求、.netrc
支持),因此更推薦使用 requests
模塊。
以上是如何在Python中下載文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具