在用python爬取網頁資料時,獲取的中文資料出現亂碼情況
第一種情況:
沒有宣告編碼格式,即沒有進行 encoding = 'utf-8' 編碼宣告
在獲取資料中<span> 裡中文出現亂碼,例如:
<li><em>00:00</em><span>±±Æ½Õ½ÓëºÍ(20)</span></li>
<li><em>00:10</em><span>±±Æ½Õ½ÓëºÍ(21)</span></li>
<li><em>00:57</em><span>±±Æ½Õ½ÓëºÍ(22)</span></li>
這類解決辦法是:加上 encoding = 'utf-8' 即可
s = requests.get(url)
s.encoding = 'utf-8'
第二種情況:
已經進行編碼宣告 encoding = 'utf-8' 但還是出現中文亂碼
解決辦法:檢查網頁編碼,更正編碼宣告,如:encoding = 'GBK'
出現這樣的情況時,就要檢查一下抓取網頁頁面的編碼格式,網頁的編碼不一定是 UTF-8 格式的,也有可能是 GBK、GB2312、GB18030等格式python
例如:
s = requests.get(url)
s.encoding = 'GBK'
宣告編碼為GBK格式後,資料中的中文資料恢復正常
<li><em>06:00</em><span>英雄出少年</span></li>
<li><em>07:00</em><span>大倉庫</span></li>
如何檢視網頁編碼格式:
一般在網頁空白處/右鍵/檢視編碼,即可
或
在主控台console輸入 document.charset
沒有留言:
張貼留言