Python beautifulsoup 中文亂碼


在爬百度"今日熱點事件排行榜"的時候發現打印在控制台的中文全部顯示亂碼,開始懷疑控制台的原因導致了亂碼,后來輸出一個中文,發現顯示正常。

#-*- 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)

執行代碼控制台返回一串亂碼

查看網頁的源碼發現網頁的編碼方式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)

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM