python requests的content和text方法的區別【轉】


requests對象的get和post方法都會返回一個Response對象,這個對象里面存的是服務器返回的所有信息,包括響應頭,響應狀態碼等。其中返回的網頁部分會存在.content和.text兩個對象中。

兩者區別在於,content中間存的是字節碼,而text中存的是Beautifulsoup根據猜測的編碼方式將content內容編碼成字符串。

直接輸出content,會發現前面存在b'這樣的標志,這是字節字符串的標志,而text是,沒有前面的b,對於純ascii碼,這兩個可以說一模一樣,對於其他的文字,需要正確編碼才能正常顯示。大部分情況建議使用.text,因為顯示的是漢字,但有時會顯示亂碼,這時需要用.content.decode('utf-8'),中文常用utf-8和GBK,GB2312等。這樣可以手工選擇文字編碼方式。

所以簡而言之,.text是現成的字符串,.content還要編碼,但是.text不是所有時候顯示都正常,這是就需要用.content進行手動編碼。

 

 

eg:text

輸出的結果為:

遇到中文時就會顯示亂碼

這樣不是我們想要的結果了

那么這個時候就只能用content的方法來實現解碼了

eg:content

 

結果是:

這個時候不過都是16進制的東西,這個沒有關系再進行encode('utf-8')對應的解碼就可以了

解決方案:進行encode('utf-8')對應的解碼就可以了

 

結果:

 

 這樣就可以顯示你想要的結果了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM