4

我正在尝试使用 Python 3.3、httplib2 和 beautifulsoup4 抓取 yahoo Finance 网页以获取股票价格数据。这是代码:

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 和库的新手,非常感谢您的帮助!

4

1 回答 1

1

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

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

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

我发现一种简单的方法是将您的数据转换为字符串,并且打印效果很好。

于 2013-04-24T09:54:00.130 回答