BeautifulSoup:刮西班牙人物问题

时间:2016-10-29 06:53:52

标签: python unicode utf-8 beautifulsoup urllib2

我正在尝试使用BeautifulSoup和urllib2从网站上获取一些西班牙语文本。我目前得到这个:¡Hola! ¿Cómo estás?。 我已经尝试应用我在相关线程上看到的不同的unicode函数,但似乎没有什么对我的问题有效:

# import the main window object (mw) from aqt
from aqt import mw
# import the "show info" tool from utils.py
from aqt.utils import showInfo
# import all of the Qt GUI library
from aqt.qt import *

from BeautifulSoup import BeautifulSoup

import urllib2



wiki = "http://spanishdict.com/translate/hola"

page = urllib2.urlopen(wiki)

soup = BeautifulSoup(page)

dictionarydiv = soup.find("div", { "class" : "dictionary-neodict-example" })

dictionaryspans = dictionarydiv.contents

firstspan = dictionaryspans[0]

firstspantext = firstspan.contents

thetext = firstspantext[0]

thetextstring = str(thetext)

1 个答案:

答案 0 :(得分:0)

thetext<class 'BeautifulSoup.NavigableString'>类型。打印它会返回一个Unicode字符串,该字符串将在输出终端编码中编码:

print thetext

输出(在Windows控制台中):

¡Hola! ¿Cómo estás?

这适用于为支持打印的Unicode字符的编码配置的任何终端。

如果您的终端配置了不支持您尝试打印的Unicode字符的编码,您将获得UnicodeEncodeError

在该类型上使用str将返回一个字节字符串...在本例中以UTF-8编码。如果您在除UTF-8配置终端之外的任何设备上打印,则显示不正确。