在Python中打印beautifulsoup4 get_text()时出现UnicodeEncodeError

时间:2016-02-29 05:35:11

标签: python beautifulsoup

我在Python中运行一个非常简单的脚本来从URL获取数据:

import urllib2
from bs4 import BeautifulSoup

def get_data():

    response = urllib2.urlopen('http://www.p2016.org/photos15/summit/trump012415spt.html')
    html = BeautifulSoup(response, 'html.parser')
    text = html.get_text()
    return text


print get_data()

我不断收到此错误消息:

PS C:\Users\Ben\pythonlearning\markov_chain> python fetch_data.py
Traceback (most recent call last):
  File "fetch_data.py", line 11, in <module>
    print get_data()
  File "C:\Python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\xa9' in position 22825: character maps to <undefined>

我试过了:

  • 在没有print命令的情况下运行它,我没有错误
  • 让另一台计算机上的某个人运行完全相同的代码,然后就可以了。

1 个答案:

答案 0 :(得分:0)

您遇到的错误与“让某人在另一台计算机上运行完全相同的代码并且运行正常”之间的区别是由于CPython解释器的版本不同。

Python 3标志着语言功能的一个重要的向后不兼容的变化,这就是你得到这个错误的原因。

您可以通过在两个平台上运行此命令来确认差异:

python -c 'import sys; print(sys.version)'