jueves, noviembre 06, 2008

Manejando HTML entities

Estoy haciendo un pequeño proyecto personal en python, para lo cual estoy parseando html con BeatifulSoup. Me he decantado por él por los siguientes motivos:
  • Probarlo mas a fondo
  • No quiero tener dependencias que no sean python (descartado entonces lxml/libxml2)
  • No necesito la solución más rápida
Sobre BeatifulSoup ya postearé alguna cosilla...
Pero este post va sobre el manejo de entidades de html. Al tratar el texto con BeatifulSoup, no me las transformaba a texto unicode. Por lo que me puse a indagar...
Por lo que he podido ver en el rato que he estado buscando parece que no hay nada en las librerías estándares para pasar entre entidades html y cadenas. Se me hace raro...

Enseguida encuentras que en el módulo htmlentitydefs, que tiene las definiones que necesitas pero no tiene ninguna función que realice el trabajo... Se me hace raro...

Buscando un poco mas encontré un thread, donde proporcionan como hacerlo (vamos..., que no vamos a reinventar la rueda...): Convert from unicode chars to HTML entities [encode][decode].

Pero BeatifulSoup, ya se encarga de ello, si pasas en el constructor el parámetro adecuado.

soup = BeautifulSoup(data,convertEntities=BeautifulStoneSoup.HTML_ENTITIES )


Mas info aquí.

No hay comentarios: