2

这是我的脚本

# -*- coding: utf-8 -*-
from BeautifulSoup import BeautifulSoup
import urllib2

res = urllib2.urlopen('http://tazeh.net')
html = res.read()

soup = BeautifulSoup(''.join(html))

title = soup.findAll('title')
print title

当我在终端运行这个脚本时,我得到了这样的错误文本

$ python test.py

[<title>ٞاŰ&OElig;گاŮ&Dagger; ؎بعŰ&OElig; ŘŞŘ­Ů&bdquo;Ű&OElig;Ů&bdquo;Ű&OElig; تازŮ&Dagger;</title>]

UTF-8 编码和波斯语的这个标题

我是python的新手,怎么了?

4

2 回答 2

3

如果我添加(就像建议在不太有用的地方做的评论之一):

html = html[:10000].decode("utf-8")

(切片是因为解码在页面更远的偏移处失败)

前:

soup = BeautifulSoup(html)

它打印:

[<title>پایگاه خبری تحلیلی تازه</title>]
于 2011-07-19T16:12:21.890 回答
1

''.join(html)没必要。该变量html已经是一个字符串。

但是,该页面似乎没有以 UTF-8 正确编码。

于 2011-07-19T15:55:41.263 回答