¿Obteniendo personajes internacionales de una página web?

Quiero eliminar algo de información de una página web de fútbol (soccer) usando expresiones regulares de python. El problema es que jugadores como el primer capítulo, ÄÄRITALO, salen como & # 196; & # 196; RITALO!
Es decir, html usa marcas de escape para los caracteres especiales, como & # 196;

¿Hay una forma sencilla de leer el html en la cadena de python correcta? Si fuera XML / XHTML sería fácil, el analizador lo haría.

Recomendaría BeautifulSoup para el raspado de HTML. También debe indicarle que convierta las entidades HTML a los caracteres Unicode correspondientes, de este modo:

>>> from BeautifulSoup import BeautifulSoup >>> html = "ÄÄRITALO!" >>> soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES) >>> print soup.contents[0].string ÄÄRITALO! 

(Sería bueno si el módulo de códecs estándar incluyera un códec para esto, de manera que puedas hacer "some_string".decode('html_entities') pero desafortunadamente no es así).

EDITAR: Otra solución: el desarrollador de Python Fredrik Lundh (autor de elementtree, entre otras cosas) tiene una función para anular las entidades HTML en su sitio web, que funciona con entidades decimales, hexadecimales y con nombre (BeautifulSoup no funcionará con las hexadecimales).

Trate de usar BeautifulSoup . Debería hacer el truco y darle un DOM bien formateado para trabajar también.

Esta entrada de blog parece haber tenido cierto éxito con ella.

No lo he intentado yo mismo, pero has intentado

http://zesty.ca/python/scrape.html ?

Parece tener un método htmldecode (texto) que haría lo que quieras.