如果中文页面编码是gb2312,gbk,在BeautifulSoup构造器中传入fromEncoding=”gb18030″参数即可解决乱码问题,即使分析的页面是utf8的页面使用gb18030也不会出现乱码问题!
2012.9.19更新:
实际上,fromEncoding=”gb18030″并不是一劳永逸的方法,当面对iso-8859-1编码的中文网页时,还是会出现乱码。
BS会乱码的根源是:其内部猜测编码的机制并不完善。
因此,最根本的解决方法是,使用编码自动检测工具,获得网页真实编码,例如chardet这个模块。然后将获取到的encoding设置到BS的fromEncoding构造参数中!!!