字符编码错误:UnicodeEncodeError:'charmap'编解码器无法在位置Y处对字符X进行编码:字符映射为<undefined>。

4

我正在尝试使用Python 3.3、httplib2和beautifulsoup4来爬取雅虎金融网页以获取股票价格数据。以下是代码:

def getData (symbol = 'GOOG', period = 'm'):
    baseUrl = 'http://finance.yahoo.com/q/hp?s='
    url = baseUrl + symbol + '&g=' + period
    h = httplib2.Http('.cache')
    response, content = h.request(url)
    soup = BeautifulSoup(content)
    print(soup.prettify()) 

getData()

我收到了以下错误跟踪:
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/encodings/mac_roman.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xd7' in position 11875: character maps to <undefined>

我刚开始学习Python和相关的库,希望能得到你的帮助!

1个回答

1
这是由于您的控制台编码问题导致的。
根据您使用的控制台(Windows、Mac、Linux),控制台试图显示无法识别的字符,因此无法在屏幕上打印。
您可以尝试将输出字符串转换为您的控制台编码。
我发现一种简单的方法是将数据转换为字符串,然后可以正常打印。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接