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构造参数中!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值