相信用python的人必定在抓取网页时,被编码问题弄晕过一阵 html
前几天写了一个测试网页的小脚本,并查找是否包含指定的信息。 python
在html = urllib2.open(url).read() 时,打印到控制台始终出现乱码。 测试
通常的解决办法就是html.decode('utf-8').encode('gb2312'),不过这个即便用了,也没能解决个人问题 编码
这里有两个问题,第一个你要知道网页的编码格式是utf-8 第二你得肯定你的系统是gb2312的,能不能主动获取网页的编码格式,并主动获取系统编码格式,像这样 url
网页编码 = 获取网页编码 spa
系统编码 = 获取系统编码 code
html.decode(网页编码).encode(系统编码) 即便我不知道网页编码,系统编码,只要双方能转 ,就行。 htm
网页编码 = re.complier('正则获取meta里的编码格式') utf-8
系统编码 = sys.getfilesystemencoding() ########关键的关键 get
html.decode(网页编码).encode(系统编码) 如今打印,一切正常了。我才无论系统什么编码,只要你能转。