爬蟲網頁編碼問題解決思路

用python抓取網頁,很容易遇到例如:'utf8' codec can't decode byte 0xc5 類似的編碼的問題。

這裏提供幾種排查思路:

  1. 可以先查看你的Linux系統是不是UTF-8。如果不是的話可以修改:

    echo $LANG

    export LANG=en_US.UTF8


  2. 首先python2默認所有編碼統一是unicode,因此你可以在代碼前面加入

    #-*-coding:utf-8 -*-
  3. 網頁的編碼可能爲gbk,可以把gbk先decode,在統一encode爲utf-8。

    response = response.decode('gbk','ignore').encode('utf-8')
  4. 也可以利用import chardet先做判斷

    encoding_dict = chardet.detect(response)
    web_encoding = encoding_dict['encoding']
    if web_encoding == 'utf-8' or web_encoding == 'UTF-8':
      html = response
    else :
       html = response.decode('gbk','ignore').encode('utf-8')

我遇到的問題就解決了,如果有其他情況,我會繼續補充,歡迎指正




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章