很多亂碼問題是編碼造成的,一般對於中文網站基本是UTF-8,GB2312,可以GB18030通吃。
另一個造成亂碼的原因是壓縮格式,很多規模較大的網站都是以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
