前言
在爬蟲有時會遇到類似?¥???????é?3?1?????¥???????MVé????¨è??é???o?????????¢è?°??????????????a? 3?3¨??|???格式的編碼,很是頭疼。如何解決這種問題呢?下面來看一下編碼方法
requests編碼
屬性
說明
r.encoding
從http header中提取響應(yīng)內(nèi)容編碼
r.apparent_encoding
從內(nèi)容中分析出的響應(yīng)內(nèi)容編碼
encoding是從http中的header中的charset字段中提取的編碼方式,若header中沒有charset字段則默認為ISO-8859-1編碼模式,則無法解析中文,這是亂碼的原因。
apparent_encoding會從網(wǎng)頁的內(nèi)容中分析網(wǎng)頁編碼的方式,所以apparent_encoding比encoding更加準確。當網(wǎng)頁出現(xiàn)亂碼時可以把apparent_encoding的編碼格式賦值給encoding。
解決亂碼
import requests
url = "********"
reqs= requests.get(url)
reqs.encoding = reqs.apparent_encoding
print(reqs.text)
|