[pyar] extraer texto de un html

N Cis n.cis_92 en hotmail.com
Mie Nov 24 21:14:12 ART 2010


Te recomiendo buscar en la lista de pyar por 3 lineas de correos con estos asuntos:
* Novatisimo: No puedo instalar pyquery
* Hola mundo y primera consulta con lxml
* Expresiones regulares y el "Matches if ... doesn't match next"

En esos temas se trata un poco lo que buscas.
En resumen: cuando se habla de procesar html hay que evitar expresiones regulares (cthulu), lo que se recomienda usar es Pyquery (lxml) o beautifulSoup.
Las principales diferencias, segun mi experiencia, beautifulsoup esta completamente escrita en python, eso significa que para instalarlo solo nececitas bajar el source, ponerlo donde vas a trabajar (o copiarlo en la ruta del python) y hacer el import. Creo que por estar completamente hecha en python el rendimiento (velocidad) es menor, pero ganas la ventaja de la portabilidad.
Lxml (pyquery es solo una fachada para usar lxml estilo jquery) es una libreria hecha en C (segun lo que tengo entendido), en ubuntu si no tenes 10.10 (o superior, capas 10.04 tmb), la tenes que compilar. En las nuevas versiones esta en los repositorios. En otras distros, ni idea. Puede, como que no, estar en los repositorios.

Si estas haciendo una aplicacion que pensas distribuir, cumplir con las dependencias siempre es algo que vas a tener en cuenta. Eso va a hacer qe capas te inclines por BeautifulSoup.

En lo que respecta a funcionalidad, en este momento, creo que la que soporta html más sucio es lxml, la verdad ni idea.

Si usas beautifulSoup, obtener el texto del html es tan facil como hacer:

>>> from BeautifulSoup import BeautifulSoup as BS
>>> html = """
... <head>
...     texto
... </head>
... <body>
...     texto
...     <div>
...         texto que quiero recuperar
...     </div>
...     texto
... </body>"""
>>> texto = BS(html)
>>> print texto.text
textotextotexto que quiero recuperartexto

Saludos.

 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101124/27aeae21/attachment.html>


More information about the pyar mailing list