5 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
有個(gè) chardet 用來檢測編碼的,如果安裝了,BeautifulSoup 貌似會(huì)自動(dòng)調(diào)用這個(gè)庫來檢測編碼并 decode 成 unicode。
對了,上面是從網(wǎng)上看的。
總之拿到文件編碼就好辦了。

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
查看一下網(wǎng)頁的編碼,比如是gbk的話,就r.encoding='gbk'。一下內(nèi)容摘自requests文檔
Requests會(huì)自動(dòng)解碼來自服務(wù)器的內(nèi)容。大多數(shù)unicode字符集都能被無縫地解碼。
請求發(fā)出后,Requests會(huì)基于HTTP頭部對響應(yīng)的編碼作出有根據(jù)的推測。當(dāng)你訪問 r.text 之時(shí),Requests會(huì)使用其推測的文本編碼。你可以找出Requests使用了什么編碼,并且能夠使用 r.encoding 屬性來改變它:
r.encoding
'utf-8'
r.encoding = 'ISO-8859-1'
如果你改變了編碼,每當(dāng)你訪問 r.text ,Request都將會(huì)使用 r.encoding 的新值。你可能希望在使用特殊邏輯計(jì)算出文本的編碼的情況下來修改編碼。比如 HTTP 和 XML 自身可以指定編碼。這樣的話,你應(yīng)該使用 r.content 來找到編碼,然后設(shè)置 r.encoding 為相應(yīng)的編碼。這樣就能使用正確的編碼解析 r.text 了。

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
先看看是不是編碼問題,如果不是的話,建議再看看是不是gzip加密了,如果是的話需要解密,Python有自帶的gzip庫,
import gzip
g = gzip.open(path, 'rb')
然后對象g就能當(dāng)普通文件對象進(jìn)行操作了(雖然type不是'file')

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
with open('r.txt','w',encoding='utf-8') as ff:
ff.write(r.text)
添加回答
舉報(bào)