Cela fonctionne:
from BeautifulSoup import BeautifulStoneSoup
s = "U.S. Adviser’s Blunt Memo on Iraq: Time ‘to Go Home’"
decoded = BeautifulStoneSoup(s, convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
Si vous voulez une chaîne au lieu d'un objet Unicode, vous aurez besoin de le décoder à un codage supports les caractères utilisés; ISO-8859-1 n'a pas:
result = decoded.encode("UTF-8")
Il est malheureux que vous ayez besoin d'un module externe pour quelque chose comme ceci; le décodage d'entité HTML/XML simple devrait être dans la bibliothèque standard, et ne pas exiger que j'utilise une bibliothèque avec des noms de classes insignifiants comme "BeautifulStoneSoup". (Les noms de classe et de fonction ne doivent pas être "créatifs", ils doivent être significatifs.)
Cette question semble beaucoup ne pas trouver de solution satisfaisante. Ça me donne envie d'écrire quelque chose de mon propre ... – Triptych
Ha Je pense que c'est la meilleure solution que j'ai trouvé jusqu'à présent. Je pourrais essayer de le faire moi-même. Si je le fais, je posterai ma solution. – KeyboardInterrupt
@Triptych: il y a ['unescape()'] (http://stackoverflow.com/a/20715131/4279). – jfs