2021年4月1日 星期四

【Python】爬取網頁資料出現中文亂碼的解決辦法

在用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

沒有留言:

張貼留言