爬蟲 content 和 text 的用法區別

2021-08-21 12:30:51 字數 895 閱讀 4819

requests物件的get和post方法都會返回乙個response物件,這個物件裡面存的是伺服器返回的所有資訊,包括響應頭,響應狀態碼等。其中返回的網頁部分會存在.content和.text兩個物件中。

.content中間存的是位元組碼 .text存的是.content編碼後的字串

一般來說 .text直接用比較方便 返回的是字串 但是有時候會解析不正常導致

返回的是一堆亂碼這時用.content.decode('utf-8')就可以使其顯示正常。

總的來說.text是現成的字串,.content還要編碼,但是.text不是所有時候顯示都正常,這是就需要用.content進行手動編碼。

對requests獲取的原始資料,有兩種獲取形式,乙個是r.content乙個是r.text。

二者的區別在於content返回的是byte型資料,而text返回的是unicode資料,也就是說text對原始資料進行的特殊的編碼,而這個編碼方式是基於對原始資料的猜測(響應頭),

text一般用於返回的文字

content的一般用於對返回的其他資料型別

但是對於某些**的中文用text可能會導致返回亂碼,所以最好是使用content然後自己進行重新編碼。

最終結論是:text 返回的是unicode 型的資料,一般是在網頁的header中定義的編碼形式。

content返回的是bytes,二級制型的資料。

也就是說你如果想要提取文字就用text

但是如果你想要提取、檔案,就要用到content

舉例說明:

GET和POST區別和用法 ContentType

很多人都分不清get與post的區別,以及什麼時候用get?什麼時候用post?get和post兩種方法都是將資料送到伺服器,但你該用哪一種呢?http標準包含這兩種方法是為了達到不同的目的。post用於建立資源,資源的內容會被編入http請示的內容中。例如,處理訂貨表單 在資料庫中加入新資料行等。...

ASP 的Content控制項

contentplaceholderid globalcontent runat server 其中 contentplaceholderid是masterpage中 的id值 可見content控制項不是單獨存在的,它是和 contentplaceholder 控制項一起同時存在,而 conten...

關於content的理解

context字面意思上下文,位於framework packageandroid.content.context中,其實該類為long型,類似win32中的handle控制代碼,很多方法需要通過 context才能識別呼叫者的實 例,比如說toast的第乙個引數就是context,一般在activ...