Questo funziona:
from BeautifulSoup import BeautifulStoneSoup
s = "U.S. Adviser’s Blunt Memo on Iraq: Time ‘to Go Home’"
decoded = BeautifulStoneSoup(s, convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
Se si desidera una stringa invece di un oggetto Unicode, è necessario per decodificare ad una codifica che supporti i personaggi usati; ISO-8859-1 non:
result = decoded.encode("UTF-8")
È spiacevole che sia necessario un modulo esterno per qualcosa di simile; la semplice decodifica dell'entità HTML/XML dovrebbe essere nella libreria standard e non richiedere l'utilizzo di una libreria con nomi di classe privi di significato come "BeautifulStoneSoup". (I nomi delle classi e delle funzioni non devono essere "creativi", dovrebbero essere significativi.)
fonte
2009-07-30 20:05:12
Questa domanda sembra venire molto senza una buona soluzione. Mi fa venir voglia di scrivere qualcosa di mio ... – Triptych
Ha penso che sia la soluzione migliore che ho trovato finora. Potrei davvero provare a farlo da solo. Se lo faccio, pubblicherò la mia soluzione. – KeyboardInterrupt
@Triptych: c'è ['unescape()'] (http://stackoverflow.com/a/20715131/4279). – jfs