iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0

在Python中,進行網絡請求非常方便,常用的工具之一是 requests 庫。這個第三方庫提供了簡潔易用的API,讓你可以發送HTTP請求、處理回應、下載文件等。

安裝 requests

如果你尚未安裝 requests,可以通過以下命令進行安裝:

pip install requests

壹、發送 HTTP 請求

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 請求用來向服務器提交數據,可以通過 datajson 參數來傳遞數據。

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 格式內容

四、發送 PUTDELETE 請求

PUTDELETE 請求與 GETPOST 類似,只是方法不同。使用 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 格式的數據,可以使用 .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'])  # 獲取特定的頭部信息

上一篇
第25天:多線程
下一篇
第27天:網絡請求 part2
系列文
python30天入門學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言