當(dāng)我們爬取一些頁面的中文信息時(shí),會(huì)出現(xiàn)如下情況:

11.png
爬取的中文編碼格式不是UTF-8,無法正常顯示,查看編碼格式:

12.png
編碼格式為ISO-8859-1(長見識啦~)
我們先定義一個(gè)這種編碼的字符串:

14.png
先編碼

15.png
后解碼

16.png
完整流程

13.png
爬取內(nèi)容變?yōu)橹形?br>

20.png
encode(編碼):按照某種規(guī)則將“文本”轉(zhuǎn)換為“字節(jié)流”,unicode轉(zhuǎn)化為str
decode(解碼):將“字節(jié)流”按照某種規(guī)則轉(zhuǎn)換成“文本”,str轉(zhuǎn)化為unicode
s.decode(' '):運(yùn)行會(huì)出錯(cuò)。因?yàn)閜ython 3中的str類型對象有點(diǎn)像Python 2中的unicode, 而decode是將str轉(zhuǎn)為unicode編碼,所以str僅有一個(gè)encode方法,調(diào)用這個(gè)方法后將產(chǎn)生一個(gè)編碼后的byte類型的字符。
AttributeError: 'str' object has no attribute 'decode'
AttributeError: 'bytes' object has no attribute 'encode'