Python利用urllib2抓取网页返回乱码的问题

不少乱码问题是编码形成的,通常对于中文网站基本是UTF-8,GB2312,能够GB18030通吃。html

另外一个形成乱码的缘由是压缩格式,不少规模较大的网站都是以gzip的压缩格式输出页面的,因此在用BS解析以前须要先判断该网页是否通过压缩,若是通过压缩则先进行解压操做。网站

import urllib2
import gzip
import StringIO

url = 'http://guomeidiyicheng.soufun.com/xiangqing/'
data = urllib2.urlopen(url).read()
data = StringIO.StringIO(data)
gzipper = gzip.GzipFile(fileobj=data)
html = gzipper.read()
print html