字符编码错误:UnicodeEncodeError:'charmap'编解码器无法对位置Y中的字符X进行编码:字符映射到<undefined> </undefined>

时间:2013-03-02 22:54:42

标签: python python-3.x beautifulsoup httplib2

我正在试图利用雅虎财经网页来获取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 个答案:

答案 0 :(得分:1)

这是由于您的控制台编码。

根据您使用的控制台(Windows,Mac,Linux),控制台会尝试显示无法识别的字符,因此无法打印到屏幕上。

您可以尝试将输出字符串转换为控制台的编码。

我发现一种简单的方法就是将数据转换为字符串并打印得很好。