2012-05-14 2 views
1

У меня есть скрипт, который читает текст с веб-страницы:питона чтение Юникода символов из HTML

page = urllib2.urlopen(url).read() 
soup = BeautifulSoup(page); 
paragraphs = soup.findAll('p'); 

for p in paragraphs: 
    content = content+p.text+" "; 

В веб-странице У меня есть эта строка:

Möddinghofe 

Мой сценарий читает его как :

Möddinghofe 

Как я могу читать его так, как есть?

+0

Возможный дубликат [Преобразование XML/HTML-объектов в строку Unicode в Python] (http://stackoverflow.com/questions/57708/convert-xml-html-entities-into-unicode-string-in-python) –

ответ

1

Надеется, что это поможет вам

from BeautifulSoup import BeautifulStoneSoup 
import cgi 

def HTMLEntitiesToUnicode(text): 
    """Converts HTML entities to unicode. For example '&' becomes '&'.""" 
    text = unicode(BeautifulStoneSoup(text, convertEntities=BeautifulStoneSoup.ALL_ENTITIES)) 
    return text 

def unicodeToHTMLEntities(text): 
    """Converts unicode to HTML entities. For example '&' becomes '&'.""" 
    text = cgi.escape(text).encode('ascii', 'xmlcharrefreplace') 
    return text 

text = "&, ®, <, >, ¢, £, ¥, €, §, ©" 

uni = HTMLEntitiesToUnicode(text) 
htmlent = unicodeToHTMLEntities(uni) 

print uni 
print htmlent 
# &, ®, <, >, ¢, £, ¥, €, §, © 
# &amp;, &#174;, &lt;, &gt;, &#162;, &#163;, &#165;, &#8364;, &#167;, &#169; 

ссылки: Convert HTML entities to Unicode and vice versa

+0

Я попытался с вашей функцией, но он дал следующее: Möddinghofe – torayeff

Смежные вопросы