[Python-es] parsear HTML

Luis Miguel Morillas morillas en gmail.com
Mie Mar 2 16:22:46 CET 2011


El día 2 de marzo de 2011 15:23, (P en vel) <pdlopez en uci.cu> escribió:
> Como puedo de un archivo html cojer todas las etiquetas <tr></tr> que tengan
> un <td></td> que se llame cuentos infantiles por ejemplo, y guardar el valor
> que tenga los demas <td> de ese <tr>, es decir cojer los valores de todas
> las columnas de esa fila, por ejemplo: cenicienta, 25.00
>
> <tr align="RIGHT" bgcolor="#ffffff">
> <td nowrap="nowrap" align="center">Cuentos Infantiles</td>
> <td><font color="#008000">Cenicienta</font></td>
> <td><font color="#008000">25.00</font></td>
> </tr>
>

Yo lo hago así usando una expresión xpath con amara:

from amara.bindery import html

doc = html.parse(url_de_la_web)
cuentos = doc.xml_select(u'//tr[td="Cuentos Infantiles"]')

# nodos html
for cuento in cuentos:
    cuento.xml_encode()

# sólo contenido
for cuento in cuentos:
    for datos in cuento.xml_children:
        print datos,


Si quieres probar amara sin instalar, he creado un amaraPortable para
windows: https://bitbucket.org/lmorillas/amaraportable/downloads/AmaraPortable.exe


Saludos,

-- luismiguel

> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


Más información sobre la lista de distribución Python-es