刚学python,抓中文网页遇到编码的问题,怎么转换也不行

2025-03-22 23:15:33
推荐回答(2个)
回答1:

其实你可以用现成的框架,比如scrapy,已经帮你处理了编码的问题。

如果一定要自己写的话,可以先看一下你抓取站点的编码,一边页面里都会有,比如百度知道里的:


说明是gbk编码。

#str是你获取到的页面内容
str.decode("gbk")

这样生成的就是python内部编码unicode了,如果你再想编码成utf8,可以:

str.encode("utf8")

如果解决了您的问题请采纳!
如果未解决请继续追问!

回答2:

我刚学那会也是,有些编码很麻烦。不过无非试多几次。
这段时间在用python处理网页抓取这块,互联网很多网页的编码格式都不一样,大体上是GBK,GB2312,UTF-8几种。我们在获取网页的的数据后,先要对网页的编码进行判断,才能把抓取的内容的编码统一转换为我们能够处理的编码。比如beautiful soup内部的编码就是unicode的编码。
下面介绍两种python 判断网页编码的方法:
import urllibf = urllib.urlopen('http://outofmemory.cn/').info()print f.getparam('charset')

2 import chardet 你需要安装一下chardet第3方模块判断编码
data = urllib.urlopen('http://outofmemory.cn/').read()print chardet.detect(data)