一文帶你玩轉(zhuǎn)python中的requests函數(shù)
介紹
在Python中,requests庫是用于發(fā)送HTTP請求的常用庫。它提供了簡潔易用的接口,使得發(fā)送HTTP請求變得非常簡單。本文將深入探討requests庫的使用方法,從入門到精通。
1. 安裝requests庫
在使用requests庫之前,我們需要先安裝它。可以使用以下命令來安裝requests庫:
pip install requests
2. 發(fā)送GET請求
requests庫中的get()函數(shù)可以用于發(fā)送GET請求。
import requests
# 發(fā)送GET請求
response = requests.get('https://api.example.com/data')
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用requests.get()函數(shù)發(fā)送GET請求到https://api.example.com/data,并將響應保存在變量response中。然后,使用response.text打印響應內(nèi)容。
3. 發(fā)送帶參數(shù)的GET請求
有時候我們需要發(fā)送帶參數(shù)的GET請求。
import requests
# 發(fā)送帶參數(shù)的GET請求
params = {'key': 'value'}
response = requests.get('https://api.example.com/data', params=params)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用params參數(shù)傳遞參數(shù),發(fā)送帶參數(shù)的GET請求到https://api.example.com/data,并將響應保存在變量response中。
4. 發(fā)送POST請求
requests庫中的post()函數(shù)可以用于發(fā)送POST請求。
import requests
# 發(fā)送POST請求
data = {'key': 'value'}
response = requests.post('https://api.example.com/data', data=data)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用requests.post()函數(shù)發(fā)送POST請求到https://api.example.com/data,并將響應保存在變量response中。
5. 發(fā)送帶參數(shù)的POST請求
有時候我們需要發(fā)送帶參數(shù)的POST請求。
import requests
# 發(fā)送帶參數(shù)的POST請求
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://api.example.com/data', data=data)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用data參數(shù)傳遞參數(shù),發(fā)送帶參數(shù)的POST請求到https://api.example.com/data,并將響應保存在變量response中。
6. 發(fā)送JSON數(shù)據(jù)
requests庫中的post()函數(shù)也可以用于發(fā)送JSON數(shù)據(jù)。
import requests
# 發(fā)送JSON數(shù)據(jù)
json_data = {'key': 'value'}
response = requests.post('https://api.example.com/data', json=json_data)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用json參數(shù)傳遞JSON數(shù)據(jù),發(fā)送POST請求到https://api.example.com/data,并將響應保存在變量response中。
7. 發(fā)送文件
requests庫中的post()函數(shù)還可以用于發(fā)送文件。
import requests
# 發(fā)送文件
files = {'file': open('data.txt', 'rb')}
response = requests.post('https://api.example.com/upload', files=files)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用files參數(shù)傳遞文件,發(fā)送POST請求到https://api.example.com/upload,并將響應保存在變量response中。
8. 設置請求頭
有時候我們需要設置請求頭,以便向服務器傳遞更多信息。
import requests
# 設置請求頭
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('https://api.example.com/data', headers=headers)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用headers參數(shù)設置請求頭,發(fā)送GET請求到https://api.example.com/data,并將響應保存在變量response中。
9. 設置超時時間
在發(fā)送請求時,有時候我們需要設置超時時間,防止請求時間過長。
import requests
# 設置超時時間為5秒
timeout = 5
response = requests.get('https://api.example.com/data', timeout=timeout)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用timeout參數(shù)設置超時時間為5秒,發(fā)送GET請求到https://api.example.com/data,并將響應保存在變量response中。
10. 處理響應
requests庫返回的響應是一個Response對象,我們可以通過該對象獲取響應的各種信息。
import requests
# 發(fā)送GET請求
response = requests.get('https://api.example.com/data')
# 獲取響應狀態(tài)碼
status_code = response.status_code
# 獲取響應頭
headers = response.headers
# 獲取響應內(nèi)容
content = response.text
# 輸出響應狀態(tài)碼、響應頭和響應內(nèi)容
print("狀態(tài)碼:", status_code)
print("響應頭:", headers)
print("響應內(nèi)容:", content)在上述代碼中,我們使用response.status_code獲取響應狀態(tài)碼,使用response.headers獲取響應頭,使用response.text獲取響應內(nèi)容,并將這些信息輸出。
11. 異常處理
在發(fā)送請求時,可能會發(fā)生一些異常,我們需要進行適當?shù)漠惓L幚怼?/p>
import requests
try:
# 發(fā)送GET請求
response = requests.get('https://api.example.com/data')
# 如果響應狀態(tài)碼不為200,拋出異常
response.raise_for_status()
# 輸出響應內(nèi)容
print(response.text)
except requests.exceptions.HTTPError as http_error:
print("HTTP錯誤:", http_error)
except requests.exceptions.ConnectionError as connection_error:
print("連接錯誤:", connection_error)
except requests.exceptions.Timeout as timeout_error:
print("超時錯誤:", timeout_error)
except requests.exceptions.RequestException as request_exception:
print("其他錯誤:", request_exception)在上述代碼中,我們使用try...except語句進行異常處理。如果響應狀態(tài)碼不為200,則使用response.raise_for_status()拋出HTTPError異常。除了HTTPError異常,requests庫還可能拋出ConnectionError、Timeout和RequestException等異常。
12. 會話管理
有時候我們需要在多個請求之間保持一些狀態(tài)信息,可以使用Session對象進行會話管理。
import requests
# 創(chuàng)建會話
session = requests.Session()
# 第一個請求
response1 = session.get('https://api.example.com/login')
# 第二個請求
response2 = session.post('https://api.example.com/data', data={'key': 'value'})
# 輸出響應內(nèi)容
print(response2.text)在上述代碼中,我們使用requests.Session()創(chuàng)建一個會話對象session。在session對象中,第一個請求和第二個請求可以共享會話信息,例如登錄信息等。
13. SSL證書驗證
在發(fā)送HTTPS請求時,默認會驗證服務器的SSL證書。如果不想驗證,可以設置verify參數(shù)為False。
import requests
# 發(fā)送HTTPS請求,不驗證SSL證書
response = requests.get('https://api.example.com/data', verify=False)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用verify=False設置不驗證SSL證書,發(fā)送HTTPS請求到https://api.example.com/data。
14. 代理設置
有時候我們需要通過代理服務器發(fā)送請求,可以通過proxies參數(shù)進行設置。
import requests
# 設置代理
proxies = {'http': 'http://user:password@proxy.example.com',
'https': 'https://user:password@proxy.example.com'}
response = requests.get('https://api.example.com/data', proxies=proxies)
# 輸出響應內(nèi)容
print(response.text)在上述代碼中,我們使用proxies參數(shù)設置代理,發(fā)送請求到https://api.example.com/data。
15. 總結(jié)
通過本文的講解,我們了解了requests庫的基本用法,從發(fā)送GET請求、發(fā)送帶參數(shù)的GET請求,到發(fā)送POST請求、發(fā)送帶參數(shù)的POST請求,再到發(fā)送JSON數(shù)據(jù)和文件,以及設置請求頭、超時時間,處理響應和異常,會話管理,SSL證書驗證和代理設置。
requests庫是發(fā)送HTTP請求的重要工具,熟練掌握它的使用將幫助我們在Python開發(fā)中更加靈活、高效地與網(wǎng)絡進行交互。
到此這篇關于一文帶你玩轉(zhuǎn)python中的requests函數(shù)的文章就介紹到這了,更多相關python requests內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pandas DataFrame 賦值的注意事項說明(index)
這篇文章主要介紹了pandas DataFrame 賦值的注意事項說明(index),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
python opencv檢測直線 cv2.HoughLinesP的實現(xiàn)
cv2.HoughLines()函數(shù)是在二值圖像中查找直線,本文結(jié)合示例詳細的介紹了cv2.HoughLinesP的用法,感興趣的可以了解一下2021-06-06
win10環(huán)境下配置vscode python開發(fā)環(huán)境的教程詳解
這篇文章主要介紹了win10環(huán)境下配置python開發(fā)環(huán)境(vscode)的教程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10

