一、讀取返回的頁面數據
在瀏覽器打開的時候查看源代碼,如果在頭部信息中指定了UTF-8
那么再python代碼中讀取頁面信息的時候,就需要指定讀取的編碼方式:
response.read().decode('utf-8')
二、把中文數據寫入到文件的時候
python默認的是按照ACSII的編碼往外寫,所以中文數據往外寫肯定會出現亂碼
那么再往外寫入文件的時候需要對中文數據進行編碼:
fout.write('<td>%s</td>' %(data['title'].encode('utf-8')))
三、寫入到HTML文件的時候
為了顯示方便,把抓取下來的數據寫入到HTML文件里面,在瀏覽中顯示
在寫入的時候,需要指定HTML文件的編碼方式
如果沒有指定默認的是UTF8無BOM編碼,直接用瀏覽打開會產生亂碼
所以需要在往外寫的時候指定編碼方式:
fout.write('<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/></head>')
四、設置了以上編碼之后還可能會報錯,在加入以下代碼
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
