2016-02-29 5 views
1

Я бегу довольно простой скрипт в Python, чтобы получить данные из URL:UnicodeEncodeError при печати beautifulsoup4 get_text() в Python

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> 

Я пробовал:

  • работает без команды печати, и я не получаю ошибки
  • , имея кого-то на другом компьютере, запускает тот же самый код, и он работает.
+1

Я бы изменить название этого вопроса - как это работает без оператора печати, проблема явно не в импорте BeautifulSoup. – DeepSpace

+0

@DeepSpace Я отредактировал заголовок –

ответ

0

Разница, с которой вы сталкиваетесь между этой ошибкой и «наличие у кого-то на другом компьютере одного и того же кода, и оно работает», связано с различными версиями интерпретатора CPython.

Python 3 отмечает значительное отставание от несовместимых изменений в языковых функциях, и именно поэтому вы получаете эту ошибку.

Вы можете подтвердить разницу, запустив эту команду на обеих платформах:

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