requests庫/urllib3庫返回WEB響應內容的處理差異

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'))

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713330.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713330.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713330.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL的主從同步原理

MySQL的主從同步(也稱為復制)是一種數據同步技術,用于將一個MySQL服務器(主服務器)上的數據和變更實時復制到另一個或多個MySQL服務器(從服務器)。這項技術支持數據備份、讀寫分離、故障恢復等多…

帝國cms7.5仿非小號區塊鏈門戶資訊網站源碼 帶手機版

帝國cms7.5仿非小號區塊鏈門戶資訊網站源碼 帶手機版 帶自動采集 開發環境:帝國cms 7.5 安裝環境:phpmysql 包含火車頭采集規則和模塊,采集目標站非小號官網。 專業的數字貨幣大數據平臺模板,采用帝國cms7.5內核仿制&#xff0…

LeetCode_22_中等_括號生成

文章目錄 1. 題目2. 思路及代碼實現(Python)2.1 暴力法2.2 回溯法 1. 題目 數字 n n n 代表生成括號的對數,請你設計一個函數,用于能夠生成所有可能的并且 有效的 括號組合。 示例 1: 輸入: n 3 n 3 …

Ai-WB2-32S在window下使用vs 和 msys2編譯以及燒錄

文章目錄 前言一、使用前準備第一步 安裝vscode第二步 安裝msys2 二、使用步驟1.打開MSYS2 MINGW64(1)在開始欄中找到MSYS2 MINGW64并打開(2)安裝git(3)安裝make(4)安裝好之后的文件…

前端面試練習24.3.1

一.進程和線程的區別 進程:是程序的一次執行過程,擁有獨立的內存空間 線程:是進程中的一個執行單元,共享所屬進程的內存空間和系統資源 進程(Process)和線程(Thread)是操作系統中的重要概念,它…

Redis 之五:Redis 的主從復制

概念 主從復制,是指將一臺 Redis 服務器的數據,復制到其他的Redis服務器。前者稱為主節點(master),后者稱為從節點(slave);數據的復制是單向的,只能由主節點到從節點。 默認情況下,每臺Redis服務器都是主節…

【0272】postgres內核分配 MyBackendId 實現原理(MyBackendId、MyProc、shmInvalBuffer)(三)

相關文章: 【0255】揭曉pg內核中MyBackendId的分配機制(后端進程Id,BackendId)(一) 【0256】揭曉pg內核中MyBackendId的分配機制(后端進程Id,BackendId)(二) 第一個backend process前,shmInvalBuffer的值情況 (gdb) p *shmInvalBuffer $153 = {minMsgNum =

webpack-cli

webpack-cli做了什么 webpack-cli 是 Webpack 提供的命令行工具,用于在命令行中執行 Webpack 相關的操作。webpack-cli 主要完成以下幾項工作: 解析和處理命令行參數:webpack-cli 負責解析用戶在命令行中輸入的參數,包括配置文件…

云天勵飛戰略投資神州云海,布局機器人市場

日前,AI上市企業云天勵飛(688343.SH)完成了對深圳市神州云海智能科技有限公司(以下簡稱“神州云海”)的B輪戰略投資。 公開資料顯示,自2015年于深圳創立以來,神州云海始終聚焦人工智能與服務機器人廣闊的應用市場,依托自主的核心算法能力,深耕機器人硬件本體研發,整合上下游產…

Java學習筆記001——入門基礎知識

Java語言是一種高級編程語言,它采用了面向對象編程的思想,具有跨平臺性和安全性等優點。現如今,Java語言成為了世界上最流行的編程語言之一。 前一段學習Python語言,本文是學習java的第一篇筆記。 1. java運行環境搭建&#xff…

RabbitMQ-TTL/死信隊列/延遲隊列高級特性

文章目錄 TTL死信隊列消息成為死信的三種情況隊列如何綁定死信交換機 延遲隊列RabbitMQ如何實現延遲隊列 總結來源B站黑馬程序員 TTL TTLTTL(Time To Live):存活時間/過期時間當信息到達存活時間后,還沒有被消費,會被自動清除。RabbitMQ可以對消息設置過…

Win10系統如何重置系統

Win10系統如何重置 大家可以使用Win10內建的重設電腦設定,如以下操作: 首先,可以先到桌面左下角的【開始】 選擇【設定】 在【設定】裡找到【更新與安全性】 在左側欄有一項【復原】 在復原的標題下,副標題有一項【重設此電腦】…

【algorithm】算法基礎課---排序算法(附筆記 | 建議收藏)

🚀write in front🚀 📝個人主頁:認真寫博客的夏目淺石. 🎁歡迎各位→點贊👍 收藏?? 留言📝 📣系列專欄:AcWing算法學習筆記 💬總結:希望你看完…

tvm交叉編譯參考資料整理

環境 ubuntu20.04,ndk交叉編譯部署到adnroid手機 參考: TVM部署神經網絡模型到android端_tvm android-CSDN博客 使用TVM在android中進行Mobilenet SSD部署 - 知乎

深度探析低代碼:助力“數智轉型”賦能中國制造

隨著數字化和智能化技術的飛速發展,我國制造業正面臨著從傳統制造向智能制造的轉型升級。在這個過程中,低代碼技術作為一種創新性的軟件開發模式,逐漸成為助力我國制造業數智轉型的關鍵驅動力。本文將從低代碼技術的原理、應用場景以及在我國…

?The Sandbox的南極之旅|鏈接世界:從南極洲到元宇宙

真正的發現之旅不在于尋找新的景觀,而在于擁有新的眼光。 - 馬塞爾-普魯斯特 在這個數字世界和物理世界日益交織的時代,The Sandbox 的聯合創始人 Arthur Madrid 和 Sebastien Borget 踏上了遠離數字空間的旅程,前往地球上未被開發的寶藏地點…

無用工作、UBI與AI

有些隱晦和黑暗的事實無法陳述,因為任何的系統中“無用”的結局都是被無情的拋棄和淘汰,AI監督下的人類結局更是如此。 什么是無用工作? 無用無效工作通常指的是那些看似忙碌但實際上對社會或個人沒有實質性貢獻的工作。這類工作可能包括以下…

2024環境工程、能源系統與化學材料國際會議(ICEEESCM 2024)

2024環境工程、能源系統與化學材料國際會議(ICEEESCM 2024) 一、【會議簡介】 2024環境工程、能源系統與化學材料國際會議(ICEEESCM 2024)將于2024年在西安舉行。會議將圍繞環境工程、能源系統與化學材料等議題展開討論,旨在為從事環境工程…

ABB雙語言共享充電寶投資理財源碼/共享充電寶系統源碼/共享充電寶市場分析/五級分銷返利+地圖顯示模式

ABB雙語言共享充電寶投資理財源碼/五級分銷返利地圖顯示模式/vue編譯后前端 測試環境:Linux系統CentOS7.6、寶塔、PHP7.3、MySQL5.6,根目錄public,偽靜態laravel5, 源碼下載:https://download.csdn.net/download/m0_…

人臉高清算法GFPGAN之TensorRT推理

1. 綜述 最近由于做數字人項目,采用的是wav2lip GFPGAN進行人臉面部高清,但GFPGAN模型本身比較大,所以想著使用TensorRT來代替原始的pth推理看看能否提升運行速度,于是便開始了這趟windows1之下進行GFPGAN的trt推理的折騰之旅。…