在Python中,進行網絡請求非常方便,常用的工具之一是 requests
庫。這個第三方庫提供了簡潔易用的API,讓你可以發送HTTP請求、處理回應、下載文件等。
requests
庫如果你尚未安裝 requests
,可以通過以下命令進行安裝:
pip install requests
requests
支持多種 HTTP 請求方法,常用的有:
GET
:從服務器獲取數據POST
:向服務器提交數據PUT
:更新資源DELETE
:刪除資源GET
請求GET
請求是從服務器獲取數據的常用方法。在 Python 中,使用 requests.get()
來發送 GET
請求。
import requests
response = requests.get("https://api.github.com")
print(response.status_code) # 查看狀態碼
print(response.text) # 查看響應內容
status_code
:返回 HTTP 狀態碼,例如 200
表示請求成功。text
:返回響應的內容,默認是字符串形式。GET
請求可以通過 params
參數向 GET
請求中添加查詢參數。
import requests
url = "https://httpbin.org/get"
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get(url, params=params)
print(response.url) # 查看完整的 URL
print(response.json()) # 將響應內容轉換為 JSON 格式
這樣發送的請求會包含查詢參數,例如 https://httpbin.org/get?key1=value1&key2=value2
。
POST
請求POST
請求用來向服務器提交數據,可以通過 data
或 json
參數來傳遞數據。
import requests
url = "https://httpbin.org/post"
data = {'username': 'user', 'password': 'pass'}
response = requests.post(url, data=data)
print(response.json()) # 查看響應的 JSON 格式內容
如果需要提交 JSON 數據,可以使用 json
參數:
import requests
url = "https://httpbin.org/post"
json_data = {'username': 'user', 'password': 'pass'}
response = requests.post(url, json=json_data)
print(response.json()) # 查看響應的 JSON 格式內容
PUT
和 DELETE
請求PUT
和 DELETE
請求與 GET
、POST
類似,只是方法不同。使用 requests.put()
和 requests.delete()
可以發送這些請求。
# 發送 PUT 請求
response = requests.put("https://httpbin.org/put", data={"key": "value"})
print(response.json())
# 發送 DELETE 請求
response = requests.delete("https://httpbin.org/delete")
print(response.status_code)
有時候,向服務器發送請求時需要添加一些自定義的請求頭(如 API token 或 User-Agent)。可以通過 headers
參數設置自定義的請求頭。
import requests
url = "https://httpbin.org/get"
headers = {
"User-Agent": "Mozilla/5.0",
"Authorization": "Bearer your_token"
}
response = requests.get(url, headers=headers)
print(response.json())
requests
庫能夠方便地處理服務器的響應,例如響應狀態、數據格式、頭部信息等。
import requests
response = requests.get("https://httpbin.org/status/404")
if response.status_code == 404:
print("資源未找到")
如果服務器返回的是 JSON 格式的數據,可以使用 .json()
方法將其轉換為 Python 對象。
import requests
response = requests.get("https://httpbin.org/json")
data = response.json()
print(data) # 解析並打印 JSON 數據
可以通過 .headers
屬性來查看響應的頭部信息:
import requests
response = requests.get("https://httpbin.org/get")
print(response.headers) # 打印所有響應頭
print(response.headers['Content-Type']) # 獲取特定的頭部信息