requests庫是一個廣泛使用的HTTP庫,用于發送HTTP請求和處理響應。
以下是requests庫中一些主要類和方法的詳細介紹:
requests庫主要類和方法
類:
requests.models.Response:
status_code: 響應狀態碼。
text: 以Unicode形式返回響應內容。
content: 以字節形式返回響應內容。
headers: 響應頭信息。
json(): 將響應內容解析為JSON格式。
方法:
requests.request(method, url, **kwargs):發送HTTP請求,并返回Response對象。可以指定請求方法、URL,以及其他參數。
requests.get(url, params=None, **kwargs):發送GET請求,并返回Response對象。可以指定URL、查詢參數等。
requests.post(url, data=None, json=None, **kwargs):發送POST請求,并返回Response對象。可以指定URL、表單數據、JSON數據等。
requests.put(url, data=None, **kwargs):發送PUT請求,并返回Response對象。
requests.delete(url, **kwargs):發送DELETE請求,并返回Response對象。
requests.head(url, **kwargs):發送HEAD請求,并返回Response對象。
requests.options(url, **kwargs):發送OPTIONS請求,并返回Response對象。
requests.Session():創建一個會話對象,可以跨多個請求保持會話狀態,共享Cookie等信息。
requests.exceptions.RequestException:所有requests庫的異常的基類。
在requests
庫中,Response
對象的content
屬性以字節形式返回響應內容。這個屬性返回的是原始的字節數據,通常用于處理非文本內容(如圖片、視頻等)的響應。?
在requests
庫中,Response
對象的text
屬性以Unicode形式返回響應內容,以便進行文本處理和解析。
import requests# 發送GET請求
response = requests.get('https://www.example.com')# 獲取響應內容的Unicode形式
response_text = response.text# 打印響應內容的前100個字符
print(response_text)
---------------------------------------
urllib3庫提供了許多類和方法,用于發送HTTP請求、管理連接池、處理代理、證書驗證等功能。
以下是urllib3庫中最常用的類及其方法的簡要介紹:
urllib3.PoolManager類
request(method, url, fields=None, **urlopen_kw):發送HTTP請求并返回HTTPResponse對象。可以指定請求方法、URL,以及其他參數。
urlopen(method, url, body=None, headers=None, retries=3, redirect=True, assert_same_host=True, timeout=Timeout.DEFAULT_TIMEOUT, pool_timeout=None, release_conn=None, chunked=False, body_pos=0, fields=None, preload_content=True, decode_content=True, retries=Retry.DEFAULT, **response_kw):發送HTTP請求并返回HTTPResponse對象。與request方法類似,但提供更多的參數選項。
urllib3.HTTPResponse類
status:獲取響應狀態碼。
data:獲取響應的原始字節流數據。response.data.decode('utf-8')?# 將原始字節流解碼為字符串
headers:獲取響應頭信息。
連接管理
urllib3.connection_from_url(url, **kw):根據URL創建一個連接對象。
urllib3.make_headers(**headers):創建HTTP請求頭。
urllib3.disable_warnings(category=InsecureRequestWarning):禁用特定的警告類別。
異常類
urllib3.exceptions.MaxRetryError:超過最大重試次數時引發的異常。
urllib3.exceptions.SSLError:SSL證書驗證失敗時引發的異常。
import urllib3# 創建一個PoolManager對象
http = urllib3.PoolManager()# 發送GET請求并獲取響應對象
response = http.request('GET', 'https://www.example.com')# 檢查響應狀態碼
if response.status == 200:# 讀取并打印網頁內容html_content = response.data.decode('utf-8')print(html_content)
else:print("Failed to fetch the webpage. Status code:", response.status)
?在urllib3中,使用data屬性來獲取響應的原始字節流數據。可以將這些數據解碼為字符串,如UTF-8編碼,以獲取文本內容。
import urllib3
import jsonhttp = urllib3.PoolManager()data = {'attribute': 'value'}
encoded_data = json.dumps(data).encode('utf-8')response = http.request('POST','http://httpbin.org/post',body=encoded_data,headers={'Content-Type': 'application/json'}
)print(response.status)
print(response.data.decode('utf-8'))