用requests模組獲取網站資料時,網站的編碼是個很麻煩的問題。一般情況下,requests會自動識別網站的編碼,如果網頁沒有指定編碼,那就會預設為是ISO-8859-1編碼。這個時候可能就會出問題。
一般有幾種方式,最簡單的就是,人為的指定編碼 r.encoding = ‘utf-8’
但是採集資料時,可能訪問不同域名的網站,這時候就不好為每一個網站都人為的指定一個正確的編碼。以下是通用方法
if r.encoding == 'ISO-8859-1':
encodings = requests.utils.get_encodings_from_content(r.text)
if encodings:
encoding = encodings[0]
else:
encoding = r.apparent_encoding
return r.content.decode(encoding, 'replace')
else:
return r.text
本作品採用《CC 協議》,轉載必須註明作者和本文連結