Python beautifulsoup 中文亂碼

在爬百度"今日熱點事件排行榜"的時候發現打印在控制檯的中文所有顯示亂碼,開始懷疑控制檯的緣由致使了亂碼,後來輸出一箇中文,發現顯示正常。html

#-*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
res = requests.get("http://top.baidu.com/buzz?b=341&fr=topbuzz_b1&qq-pf-to=pcqq.discussion")
soup = BeautifulSoup(res.text,'lxml')
print(soup.head.title.text)

執行代碼控制檯返回一串亂碼ui

查看網頁的源碼發現網頁的編碼方式gbk,BeautifulSoup解析後獲得的soup,打印出來是亂碼,實際上其自己已是正確的(從原始的GB2312編碼)解析(爲Unicode)後的了。之因此亂碼,那是由於,打印soup時,調用的是__str__,其默認是UTF-8,因此輸出到GBK的cmd中,才顯示是亂碼(參考一些文章編碼

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
#-*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
res = requests.get("http://top.baidu.com/buzz?b=341&fr=topbuzz_b1&qq-pf-to=pcqq.discussion")
res.encoding = 'gb18030' 
soup = BeautifulSoup(res.text,'lxml')
print(soup.head.title.text)
相關文章
相關標籤/搜索