既然Python是一門全球流行的語言,那麼對於網路通信的HTTP的支持肯定也是非常的優秀的。Python中原生的urllib模塊也有對HTTP的支持,雖然也可以用來發送 HTTP 請求,但使用起來相對繁瑣,並且 API 設計不夠直觀。 requests 庫的出現填補了 Python 在 HTTP 請 ...
既然Python是一門全球流行的語言,那麼對於網路通信的HTTP的支持肯定也是非常的優秀的。Python中原生的urllib模塊也有對HTTP的支持,雖然也可以用來發送 HTTP 請求,但使用起來相對繁瑣,並且 API 設計不夠直觀。
requests 庫的出現填補了 Python 在 HTTP 請求方面的不足,簡化了開發者的工作流程,讓他們可以更加專註於業務邏輯的實現,而不用過多關註底層的 HTTP 請求細節。同時,requests 的清晰文檔和社區活躍也使得這個庫成為 Python 社區中最受歡迎的 HTTP 請求庫之一。
毫不誇張的說,requests就是為HTTP而生的,在Python領域難逢敵手。
requests是什麼
requests 是一個非常流行的 HTTP 庫,它提供了簡潔、易用的 API 介面,用於發送各種類型的 HTTP 請求並處理響應。requests 庫可以幫助開發者使用 Python 進行網路通信,與 Web 服務進行交互,獲取數據並處理返回的響應內容。
以下是聽說的一些他的強大功能:
- 支持多種 HTTP 請求方法:requests 庫支持常見的 HTTP 請求方法,如 GET、POST、PUT、DELETE 等,開發者可以輕鬆地發送不同類型的請求。
- 簡潔的 API 介面:requests 的設計理念是“用戶友好、易用性優先”,提供了簡潔直觀的介面,讓開發者可以快速上手,並且代碼易讀易維護。
- 請求和響應自動處理:requests 可以自動處理請求和響應的細節,如自動添加請求頭、處理重定向、管理 cookie 等,簡化了開發過程。
- 文件上傳和下載支持:requests 支持文件的上傳和下載操作,可以方便地處理文件相關的 HTTP 請求。
- 會話管理:requests 提供了會話對象,可以保持持久性會話,跨請求共用 cookies,而不用重覆設置。
- SSL 驗證:requests 支持 SSL 驗證,確保請求的安全性。
當然,這個功能聽著實在太抽象,所以需要你深入去瞭解他。
而我用一句話概況requests就是:requests一個非常優秀、受歡迎的HTTP庫。
requests的官網網站以及源碼地址:
官網網站:requests.readthedocs.io
源碼地址:github.com/psf/requests
安裝requests
要安裝requests包,可以使用Python的包管理器(如pip)在命令行中運行以下命令:
pip install requests
使用requests
安裝完成後,在 Python 腳本中引入 requests 模塊:
import requests
GET方法
接下來就可以使用 requests 發送 HTTP 請求了。以下是一個簡單的示例,演示如何使用 requests 發送一個 GET 請求。
# 導入 requests 庫
import requests
# 定義請求的 URL
url = "https://jsonplaceholder.typicode.com/posts/1"
# 發送 GET 請求
response = requests.get(url)
# 檢查響應狀態碼
if response.status_code == 200:
# 輸出一些請求信息
print(f"請求 URL: {url}")
print(f"請求狀態碼: {response.status_code}")
print("響應頭信息:")
for key, value in response.headers.items():
print(f" {key}: {value}")
print("")
# 輸出響應內容
print("響應內容:")
print(response.text) # 使用 text 屬性獲取響應內容(字元串形式)
# 如果響應是 JSON 格式,也可以直接獲取為 JSON 數據
json_data = response.json()
print("響應 JSON 數據:")
print(json_data)
else:
print(f"請求失敗,狀態碼: {response.status_code}")
以上代碼中,我們首先導入 requests 模塊,然後使用 requests.get() 方法發送一個 GET 請求,指定了目標 URL。請求發送完畢後,可以通過 response 對象獲取到響應內容,使用 response.text 可以獲得響應的文本內容。當然URL地址可以替換成任意你想要的地址,我上面只是弄個實例。
除了 GET 請求,requests 還支持其他 HTTP 請求方法,如 POST、PUT、DELETE 等。
POST方法
# 導入 requests 庫
import requests
# 定義請求的 URL
url = 'https://jsonplaceholder.typicode.com/posts'
# 定義要發送的 JSON 數據
data = {
'name': 'alittle',
'body-length': 180,
'company': 'home'
}
# 發送 POST 請求
response = requests.post(url, json=data)
# 檢查響應狀態碼
if response.status_code == 201: # 201 表示創建成功
print('創建成功,返回數據如下:')
print(response.json()) # 輸出響應內容
else:
print('請求失敗,狀態碼:', response.status_code)
大家可以看到,在上面的例子中,我們使用 requests.post() 方法發送一個 POST 請求,同時傳遞了一個 data 參數,用於設置 POST 請求的數據。
除了 GET 和 POST 請求,requests 還支持其他功能,如設置請求頭、處理響應、上傳文件、代理設置等。具體使用方法可以參考 requests 官方文檔,裡面包含了詳細的 API 參考和示例。
以上是一些非常簡單的 requests 庫的使用例子,主要是為了讓大家對這個庫的使用有一個大概的印象。
requests的相關函數
以下我總結的一些比較常用的一些requests庫的方法。
函數名 | 解釋 |
---|---|
requests.get() | 發送GET請求 |
requests.post() | 發送POST請求 |
requests.put() | 發送PUT請求 |
requests.delete() | 發送DELETE請求 |
requests.head() | 發送HEAD請求 |
requests.options() | 發送OPTIONS請求 |
requests.patch() | 發送PATCH請求 |
requests.request() | 發送自定義請求方法 |
requests.Session() | 創建一個持久性會話對象,可以跨請求保持某些參數 |
requests.cookies | Response 對象的 cookies 屬性,用於訪問響應的 cookies |
requests.getproxies() | 獲取當前系統的代理信息 |
requests.adapters | 適配器,用於發送請求和接收響應 |
更多精彩內容,請關註同名公眾:一點sir(alittle-sir)