2025年1月13日 星期一

說明requests.get的參數

requests.get 是 Python requests 庫中的一個方法,用於發送 HTTP GET 請求。這個方法可以接受多個參數來定制請求的行為。下面是 requests.get 的一些常用參數及其說明:

基本語法:

requests.get(url, params=None, **kwargs)

主要參數:

  1. url (必需參數):

    • 要請求的網址(字串格式)。
    • 例如:https://api.example.com/data
  2. params (可選參數):

    • 要附加到 URL 的查詢參數,通常是字典格式。
    • 這些參數將自動以 key=value 的方式編碼並附加到 URL。
    • 例如:
      params = {'search': 'python', 'page': 2}
      requests.get('https://example.com', params=params)
      這將向 https://example.com?search=python&page=2 發送請求。
  3. headers (可選參數):

    • 要添加到請求的 HTTP 標頭,通常是字典格式。
    • 例如:
      headers = {'User-Agent': 'my-app'}
      requests.get('https://example.com', headers=headers)
      這會將 User-Agent 標頭設為 my-app
  4. cookies (可選參數):

    • 要附加到請求的 Cookie,通常是字典格式。
    • 例如:
      cookies = {'session_id': 'abcd1234'}
      requests.get('https://example.com', cookies=cookies)
  5. auth (可選參數):

    • 用於提供 HTTP 基本身份驗證的元組 (username, password)
    • 例如:
      auth = ('username', 'password')
      requests.get('https://example.com', auth=auth)
  6. timeout (可選參數):

    • 請求的超時時間(以秒為單位)。
    • 如果在超過指定時間內未收到回應,請求將引發 Timeout 異常。
    • 例如:
      requests.get('https://example.com', timeout=5) # 5秒後超時
  7. allow_redirects (可選參數,預設為 True):

    • 是否允許自動重定向。
    • 當設為 False 時,請求將不會跟隨 HTTP 重定向。
    • 例如:
      requests.get('https://example.com', allow_redirects=False)
  8. proxies (可選參數):

    • 用於設定 HTTP 請求所使用的代理伺服器,通常是字典格式。
    • 例如:
      proxies = {'http': 'http://10.10.1.10:3128', 'https': 'https://10.10.1.10:1080'}
      requests.get('https://example.com', proxies=proxies)
  9. stream (可選參數,預設為 False):

    • 是否流式下載內容。當設為 True 時,內容會分塊接收,適合下載大型文件或處理大量數據。
    • 例如:
      response = requests.get('https://example.com', stream=True)
  10. verify (可選參數,預設為 True):

    • 是否驗證 SSL 證書。
    • 設為 False 可以禁用 SSL 證書驗證(不建議這樣做,除非你非常清楚自己的需求)。
    • 例如:
      requests.get('https://example.com', verify=False)
  11. cert (可選參數):

    • 客戶端證書,可以是字符串(證書文件的路徑)或元組 (cert, key) 形式,指定 SSL 使用的證書和私鑰。

返回值:

  • requests.get 返回一個 Response 對象,其中包含了 HTTP 請求的回應數據,常用的屬性和方法有:
    • response.text:返回回應的內容(以字串形式)。
    • response.json():如果回應是 JSON 格式,則將其解析為 Python 字典。
    • response.status_code:HTTP 回應的狀態碼(例如 200 表示成功,404 表示未找到)。
    • response.headers:回應頭部資訊。

範例:

import requests
# 設定 URL 和查詢參數 url = 'https://jsonplaceholder.typicode.com/posts' params = {'userId': 1} # 發送 GET 請求 response = requests.get(url, params=params) # 檢查回應的狀態碼 if response.status_code == 200: # 解析回應為 JSON 格式 data = response.json() print(data) else: print(f"Request failed with status code {response.status_code}")

這段程式會向 jsonplaceholder API 發送帶有查詢參數 userId=1 的 GET 請求,並將回應結果作為 JSON 格式打印出來。

沒有留言:

張貼留言