BeautifulSoup中文乱码解决问题 python 爬虫 乱码

importurllib2
2 fromBeautifulSoup importBeautifulSoup
3  
4 page=urllib2.urlopen('http://www.leeon.me');
5 soup=BeautifulSoup(page,fromEncoding="gb18030")
6  
7 printsoup.originalEncoding
8 printsoup.prettify()

如果中文页面编码是gb2312,gbk,在BeautifulSoup构造器中传入fromEncoding=”gb18030″参数即可解决乱码问题,即使分析的页面是utf8的页面使用gb18030也不会出现乱码问题!

转载自:《beautifulsoup解析中文网页乱码》

2012.9.19更新:

实际上,fromEncoding=”gb18030″并不是一劳永逸的方法,当面对iso-8859-1编码的中文网页时,还是会出现乱码。

BS会乱码的根源是:其内部猜测编码的机制并不完善。

因此,最根本的解决方法是,使用编码自动检测工具,获得网页真实编码,例如chardet这个模块。然后将获取到的encoding设置到BS的fromEncoding构造参数中!!!

你可能感兴趣的:(BeautifulSoup中文乱码解决问题 python 爬虫 乱码)