最近中文字幕国语免费完整,中文亚洲无线码49vv,中文无码热在线视频,亚洲自偷自拍熟女另类,中文字幕高清av在线

當(dāng)前位置: 首頁 > 技術(shù)教程

Python中的requests庫如何使用?

  requests是Python中最流行的HTTP庫之一,它簡化了發(fā)送HTTP請求的過程。通過requests庫,開發(fā)者可以輕松地發(fā)送各種HTTP請求(如GET、POST、PUT、DELETE等),處理響應(yīng),支持會話管理、重定向、代理、文件上傳等功能,是Web開發(fā)和API交互中不可或缺的工具。

  一、安裝requests庫

  首先,確保你已經(jīng)安裝了requests庫。如果沒有安裝,可以通過pip命令輕松安裝:

  bashCopy Codepip install requests

  安裝完成后,即可在代碼中導(dǎo)入并使用該庫。

  二、基本用法

  requests庫提供了簡單易用的API來進行HTTP請求操作。最常見的請求方法包括GET、POST、PUT、DELETE等。以下是幾種常見請求的示例:

  1. 發(fā)送GET請求

  GET請求用于從服務(wù)器獲取資源,通常用于瀏覽器訪問網(wǎng)頁。

  pythonCopy Codeimport requests

  # 發(fā)送GET請求

  response = requests.get('https://httpbin.org/get')

  # 打印響應(yīng)的狀態(tài)碼

  print(response.status_code)

  # 打印響應(yīng)的文本內(nèi)容

  print(response.text)

  # 打印響應(yīng)的JSON內(nèi)容(如果響應(yīng)為JSON格式)

  print(response.json())

  解析:

  status_code: 返回HTTP響應(yīng)的狀態(tài)碼,如200表示請求成功。

  text: 返回響應(yīng)的內(nèi)容,通常是字符串形式。

  json(): 將響應(yīng)內(nèi)容解析為JSON格式(如果響應(yīng)是JSON格式的話)。

  2. 發(fā)送POST請求

  POST請求用于向服務(wù)器提交數(shù)據(jù)。常用于表單提交或API數(shù)據(jù)交互。

  pythonCopy Codeimport requests

  # 要發(fā)送的數(shù)據(jù)(可以是字典、JSON等格式)

  data = {'username': 'john_doe', 'password': '123456'}

  # 發(fā)送POST請求

  response = requests.post('https://httpbin.org/post', data=data)

  # 打印響應(yīng)內(nèi)容

  print(response.status_code)

  print(response.json())

  解析:

  data: POST請求的表單數(shù)據(jù)(可以是字典、列表、字符串等)。

  json(): 可以直接解析返回的JSON格式響應(yīng)。

  3. 發(fā)送PUT請求

  PUT請求用于更新資源。類似于POST請求,但通常用于更新現(xiàn)有資源。

  pythonCopy Codeimport requests

  data = {'username': 'john_doe', 'password': 'newpassword123'}

  # 發(fā)送PUT請求

  response = requests.put('https://httpbin.org/put', data=data)

  print(response.status_code)

  print(response.json())

  4. 發(fā)送DELETE請求

  DELETE請求用于刪除服務(wù)器上的資源。

  pythonCopy Codeimport requests

  # 發(fā)送DELETE請求

  response = requests.delete('https://httpbin.org/delete')

  print(response.status_code)

  print(response.json())

云計算12.png

  三、請求參數(shù)與頭部設(shè)置

  1. 傳遞URL參數(shù)(Query參數(shù))

  GET請求可以在URL中附加參數(shù)。你可以通過params參數(shù)傳遞這些查詢字符串。

  pythonCopy Codeimport requests

  # 發(fā)送帶有查詢參數(shù)的GET請求

  params = {'search': 'python', 'page': 2}

  response = requests.get('https://httpbin.org/get', params=params)

  print(response.url) # 打印最終的URL

  print(response.json()) # 打印返回的JSON數(shù)據(jù)

  解析:

  params: 將字典類型的查詢參數(shù)附加到請求URL中。

  2. 自定義請求頭(Headers)

  你可以通過headers參數(shù)傳遞自定義請求頭信息,通常用于設(shè)置User-Agent、Authorization等信息。

  pythonCopy Codeimport requests

  headers = {'User-Agent': 'Mozilla/5.0', 'Authorization': 'Bearer <token>'}

  response = requests.get('https://httpbin.org/headers', headers=headers)

  print(response.json()) # 打印響應(yīng)的頭部信息

  解析:

  headers: 用于設(shè)置HTTP請求頭,如User-Agent、Content-Type、Authorization等。

  3. 傳遞JSON數(shù)據(jù)

  如果要發(fā)送JSON數(shù)據(jù),可以使用json參數(shù)。requests會自動將字典數(shù)據(jù)轉(zhuǎn)為JSON格式并設(shè)置正確的Content-Type頭部。

  pythonCopy Codeimport requests

  data = {'name': 'John', 'age': 30}

  # 發(fā)送POST請求,傳遞JSON數(shù)據(jù)

  response = requests.post('https://httpbin.org/post', json=data)

  print(response.json())

  四、會話管理與Cookie

  requests庫還提供了會話管理功能,允許你保持某個會話的狀態(tài),跨多個請求保持Cookie、身份驗證等信息。

  pythonCopy Codeimport requests

  # 創(chuàng)建一個會話對象

  session = requests.Session()

  # 第一次請求,保存cookie

  response = session.get('https://httpbin.org/cookies/set?name=foo&value=bar')

  print(response.status_code)

  # 第二次請求,帶上之前保存的cookie

  response = session.get('https://httpbin.org/cookies')

  print(response.json()) # 查看cookie信息

  解析:

  使用Session對象可以自動管理Cookie和會話信息。

  五、文件上傳與下載

  1. 文件上傳

  通過files參數(shù),你可以上傳文件。在發(fā)送POST請求時,通常會使用這個參數(shù)。

  pythonCopy Codeimport requests

  # 要上傳的文件

  files = {'file': open('example.txt', 'rb')}

  # 發(fā)送文件上傳請求

  response = requests.post('https://httpbin.org/post', files=files)

  print(response.json())

  2. 文件下載

  你可以使用requests下載文件,并將文件內(nèi)容寫入本地。

  pythonCopy Codeimport requests

  url = 'https://www.example.com/somefile.zip'

  # 發(fā)送GET請求下載文件

  response = requests.get(url, stream=True)

  # 保存文件到本地

  with open('downloaded_file.zip', 'wb') as f:

  for chunk in response.iter_content(chunk_size=1024):

  if chunk:

  f.write(chunk)

  print("文件下載完成")

  解析:

  stream=True: 使得響應(yīng)體以流的方式處理,適用于大文件下載。

  iter_content(): 按塊讀取文件內(nèi)容。

  六、錯誤處理與調(diào)試

  1. 錯誤處理

  在發(fā)送請求時,你可能遇到一些網(wǎng)絡(luò)問題或服務(wù)器錯誤。requests提供了異常處理機制,常用的異常類包括:

  requests.exceptions.RequestException: 基類,所有請求異常的基類。

  requests.exceptions.HTTPError: HTTP響應(yīng)錯誤。

  requests.exceptions.Timeout: 請求超時。

  requests.exceptions.ConnectionError: 網(wǎng)絡(luò)連接錯誤。

  pythonCopy Codeimport requests

  try:

  response = requests.get('https://httpbin.org/status/404')

  response.raise_for_status() # 如果響應(yīng)狀態(tài)碼不是2xx,會拋出HTTPError

  except requests.exceptions.HTTPError as err:

  print(f"HTTP錯誤: {err}")

  except requests.exceptions.RequestException as err:

  print(f"請求錯誤: {err}")

  2. 調(diào)試請求

  你可以使用requests的response對象獲取更詳細(xì)的調(diào)試信息,例如響應(yīng)頭、請求體等。

  pythonCopy Codeimport requests

  response = requests.get('https://httpbin.org/get')

  print(f"請求URL: {response.url}")

  print(f"請求頭: {response.request.headers}")

  print(f"響應(yīng)頭: {response.headers}")

  print(f"響應(yīng)文本: {response.text}")

  requests庫提供了簡單且強大的功能,使得Python開發(fā)者能夠輕松地進行HTTP請求。通過掌握基本的GET、POST請求的使用方法,結(jié)合會話管理、文件上傳下載、錯誤處理等技巧,可以應(yīng)對絕大多數(shù)的網(wǎng)絡(luò)請求需求。希望本篇文章能幫助你快速上手并高效使用requests庫進行Web請求。

 


猜你喜歡