Python的 requests 庫怎么用?如何發送 HTTP 請求?

requests 庫是 python 中用于發送 http 請求的常用工具,支持多種請求方式及異常處理。1. 發送 get 請求可使用 requests.get() 方法獲取響應狀態碼與文本內容;2. 發送 post 請求可通過 data 參數傳遞表單數據;3. 發送 json 數據時使用 json 參數自動序列化并設置 content-type 為 application/json;4. 響應處理包括判斷狀態碼、打印響應頭及解析 json 數據;5. 超時異常通過 timeout 參數設置超時時間,并結合 try…except 捕獲 timeout 異常及其他請求異常;6. 自定義請求頭可通過 headers 參數傳入字典實現;7. cookies 可自動保存并在后續請求中攜帶,也可通過 cookies 參數手動設置。

Python的 requests 庫怎么用?如何發送 HTTP 請求?

python 的 requests 庫,用起來相當順手,可以輕松發送各種 HTTP 請求,處理響應。簡單來說,就是個讓你用 Python 代碼跟服務器“聊天”的工具

Python的 requests 庫怎么用?如何發送 HTTP 請求?

requests 庫的核心就是發送 HTTP 請求。下面是一些常見用法:

Python的 requests 庫怎么用?如何發送 HTTP 請求?

發送 GET 請求:

立即學習Python免費學習筆記(深入)”;

import requests  response = requests.get('https://www.example.com')  print(response.status_code)  # 打印狀態碼,例如 200 print(response.text)        # 打印響應內容(文本)

發送 POST 請求:

Python的 requests 庫怎么用?如何發送 HTTP 請求?

import requests  payload = {'key1': 'value1', 'key2': 'value2'} response = requests.post('https://www.example.com/post', data=payload)  print(response.status_code) print(response.text)

發送帶有 JSON 數據的 POST 請求:

import requests import json  payload = {'key1': 'value1', 'key2': 'value2'} response = requests.post('https://www.example.com/post', json=payload)  print(response.status_code) print(response.json()) # 如果響應是 JSON,可以直接解析

處理響應:

import requests  response = requests.get('https://www.example.com')  if response.status_code == 200:     print("請求成功!")     print(response.headers) # 打印響應頭     # 其他操作 else:     print(f"請求失敗,狀態碼:{response.status_code}")

如何處理 requests 庫的超時異常

網絡請求,最怕的就是卡住不動。requests 庫提供了 timeout 參數,可以設置請求的超時時間。如果超過這個時間還沒收到響應,就會拋出異常。

import requests  try:     response = requests.get('https://www.example.com', timeout=5)  # 設置超時時間為 5 秒     print(response.status_code) except requests.exceptions.Timeout:     print("請求超時!") except requests.exceptions.RequestException as e:     print(f"其他請求異常:{e}")

這里用 try…except 塊捕獲了 requests.exceptions.Timeout 異常,這樣即使請求超時,程序也不會崩潰,可以優雅地處理錯誤。 另外,requests.exceptions.RequestException 是一個更寬泛的異常,可以捕獲其他類型的請求錯誤,比如連接錯誤、DNS 解析錯誤等等。

如何在 requests 庫中添加請求頭?

有時候,我們需要在請求中添加一些自定義的請求頭,比如 User-Agent,或者 Authorization。

import requests  headers = {'User-Agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}  response = requests.get('https://www.example.com', headers=headers)  print(response.status_code)

很簡單,就是把請求頭放到一個字典里,然后通過 headers 參數傳遞給 requests.get() 或 requests.post() 等方法。

requests 庫如何處理 cookies?

網站經常會用 cookies 來跟蹤用戶的會話狀態。requests 庫可以自動處理 cookies,也可以手動設置和獲取 cookies。

自動處理 cookies:

import requests  response = requests.get('https://www.example.com')  print(response.cookies) # 打印服務器返回的 cookies  # 后續的請求會自動帶上這些 cookies response2 = requests.get('https://www.example.com/profile')

手動設置 cookies:

import requests  url = 'https://www.example.com' cookies = {'sessionid': '1234567890'}  response = requests.get(url, cookies=cookies)  print(response.status_code)

requests 會自動保存服務器返回的 cookies,并在后續的請求中自動帶上。如果你需要手動設置 cookies,可以通過 cookies 參數傳遞一個字典。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享