1. 程式人生 > >寫爬蟲總是出現亂碼,習慣不好所以謝謝筆記

寫爬蟲總是出現亂碼,習慣不好所以謝謝筆記

寫爬蟲有時候需要靜態頁面 就不得不把頁面下載下來,但是 寫入的時候總是出現一些奇怪的亂碼 或者不能寫入比如: ’gbk’ codec can’t encode character ‘\xa0’ in position 4877: illegal multibyte sequence

	這種錯誤,gbk codec can’t encode character :說明是將Unicode字元編碼為GBK時候出現了問題,可能是本身Unicode型別的字元中,包含了一些無法轉換為GBK編碼的一些字元;

requests.post()獲取的response是Unicode字元 通常我寫入檔案時沒有寫明編碼集如:

  with open('h.html','w',) as f:
    f.write(h)

那麼問題就大了 windos預設建立檔案是’GBK‘的 可是 “GBK”中沒有這個’\xa0’,所以就會報錯,最好的方法是 ‘response’的編碼集設定一下

 response.encoding="utf-8"

寫入檔案的時候,設定檔案的編碼集。

with open('h.html','w', encoding="utf-8") as f:
    f.write(h)

這樣基本不會出現亂碼的寫入錯誤了