Python 3& BeautifulSoup问题 - [解码错误 - 输出不是utf-8]

时间:2014-09-03 22:38:27

标签: python-3.x beautifulsoup

我遇到了美女汤的一些问题。

我试图阅读几个网站的标题,当我的代码尝试阅读一些包含带拉丁字符标题的网站时,我收到此错误:

  

[解码错误 - 输出不是utf-8]

有人知道如何解决这个问题吗?

干杯。

我的代码:

def getTitle(theList):

for element in theList:

    response = urllib.request.urlopen(element)
    soup = BeautifulSoup(response.read())
    title = soup.find("title").text
    print (element,": ",title,"\n")

2 个答案:

答案 0 :(得分:1)

尝试:How to correctly parse UTF-8 encoded HTML to Unicode strings with BeautifulSoup?

建议soup = BeautifulSoup(response.read().decode('utf-8', 'ignore'))

答案 1 :(得分:0)

如果错误是由inconsitent encodings引起的,即html主要是utf-8(并BeautifulSoup检测到它),但某些字符(最值得注意的是:Microsoft智能引号)采用不同的编码方式;尝试UnicodeDammit.detwingle()方法使文档纯UTF-8,而不丢弃可以挽救的错误字符。