刚学python,抓中文网页遇到编码的问题,怎么转换也不行
2015-01-26 · 知道合伙人软件行家
老夭来了
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:1806
获赞数:8100
2008年从事软件开发,拥有多年的python,php,linux工作经验,发布过多个python,php的开源项目。
向TA提问 私信TA
关注
展开全部
其实你可以用现成的框架,比如scrapy,已经帮你处理了编码的问题。
如果一定要自己写的话,可以先看一下你抓取站点的编码,一边页面里都会有,比如百度知道里的:
<meta http-equiv="content-type" content="text/html;charset=gbk" />
说明是gbk编码。
#str是你获取到的页面内容
str.decode("gbk")
这样生成的就是python内部编码unicode了,如果你再想编码成utf8,可以:
str.encode("utf8")
如果解决了您的问题请采纳!
如果未解决请继续追问!
展开全部
我刚学那会也是,有些编码很麻烦。不过无非试多几次。
这段时间在用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)
这段时间在用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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询