1. 程式人生 > >python2. requests爬取網上資料中文亂碼的情況處理方法

python2. requests爬取網上資料中文亂碼的情況處理方法

先說下發現的問題,今天在做一個爬取功能的時候,中文一直是亂碼,原來以為是返回的資料壓縮導致的,後邊查了下文件,requests裡如果headers設定了'Accept-Encoding': 'gzip, deflate',且目標網頁也支援壓縮的話,requests會把爬到的網頁自動解壓縮,所以應該不是壓縮的問題,後來把爬到的資料看了下編碼

   html = requests.get(url,headers=headers)

    print html.encoding,輸出:ISO-8859-1

   你妹的,原來返回的編碼是ISO-8859-1的,後邊查了下文件才知道,requests在返回的資料header裡沒有發現charset 的話,就會用預設的字符集ISO-8859-1編碼,尼瑪啊,爬的網頁編碼是utf-8的,你用ISO-8859-1編碼中文坑頂亂碼了,

  解決辦法:

      也很簡單,就是把返回的資料設定下編碼就可以了,

     html = requests.get(url,headers=headers)

     html.encoding = 'utf-8' #設定成utf-8就可以了

參考網址:https://blog.csdn.net/sentimental_dog/article/details/52661974?locationNum=3&fps=1