Re: [Python-es] parsear HTML

2011-03-02 Thread Nekmo
Tienes un módulo con Python llamado así, HTMLParser. A mí
personalmente no me gusta demasiado, y no mantiene el árbol como
debería... pero para lo que quieres puede valerte. Hay un módulo que
me encanta (no está en Core) llamado lxml que también soporta HTML. Te
recomiendo echarle un ojo ;-)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 2 de marzo de 2011 15:23, (P@vel)  escribió:
> Como puedo de un archivo html cojer todas las etiquetas  que tengan
> un  que se llame cuentos infantiles por ejemplo, y guardar el valor
> que tenga los demas  de ese , es decir cojer los valores de todas
> las columnas de esa fila, por ejemplo: cenicienta, 25.00
>
> 
> Cuentos Infantiles
> Cenicienta
> 25.00
> 
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] parsear HTML

2011-03-02 Thread Luis Miguel Morillas
El día 2 de marzo de 2011 15:23, (P@vel)  escribió:
> Como puedo de un archivo html cojer todas las etiquetas  que tengan
> un  que se llame cuentos infantiles por ejemplo, y guardar el valor
> que tenga los demas  de ese , es decir cojer los valores de todas
> las columnas de esa fila, por ejemplo: cenicienta, 25.00
>
> 
> Cuentos Infantiles
> Cenicienta
> 25.00
> 
>

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@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] parsear HTML

2011-03-02 Thread Nekmo
Yo con lxml suelo usar una funcionalidad que me permite filtrar usando
CSS, lo cual me es una pasada :D Además tienes lxml tanto en Python3
como en 2.x

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



2011/3/2 Luis Miguel Morillas :
> El día 2 de marzo de 2011 15:23, (P@vel)  escribió:
>> Como puedo de un archivo html cojer todas las etiquetas  que tengan
>> un  que se llame cuentos infantiles por ejemplo, y guardar el valor
>> que tenga los demas  de ese , es decir cojer los valores de todas
>> las columnas de esa fila, por ejemplo: cenicienta, 25.00
>>
>> 
>> Cuentos Infantiles
>> Cenicienta
>> 25.00
>> 
>>
>
> 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@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] parsear HTML

2011-03-02 Thread lopz
Yo si es que solo necesitas eso usaría expresiones regulares, van y
bien y no dependes de módulos externos
ahora si se trata de usar un módulo tiraría de [1] y también he leído
muy bien de lxml

[1]  http://www.crummy.com/software/BeautifulSoup/

2011/3/2 Nekmo :
> Yo con lxml suelo usar una funcionalidad que me permite filtrar usando
> CSS, lo cual me es una pasada :D Además tienes lxml tanto en Python3
> como en 2.x
>
> Un cordial saludo:
> -- Nekmo.
>
> Sitio web: http://nekmo.com
> Dirección de contacto: conta...@nekmo.com
> XMPP/Jabber: conta...@nekmo.com
> Identi.ca: http://identi.ca/nekmo
> Diaspora: Nekmo
>
>
>
> 2011/3/2 Luis Miguel Morillas :
>> El día 2 de marzo de 2011 15:23, (P@vel)  escribió:
>>> Como puedo de un archivo html cojer todas las etiquetas  que tengan
>>> un  que se llame cuentos infantiles por ejemplo, y guardar el valor
>>> que tenga los demas  de ese , es decir cojer los valores de todas
>>> las columnas de esa fila, por ejemplo: cenicienta, 25.00
>>>
>>> 
>>> Cuentos Infantiles
>>> Cenicienta
>>> 25.00
>>> 
>>>
>>
>> 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@python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
lopz es libre, usa --> GNU/linux gentoo

+--[RSA 2048]--+
|  ..o.o=+       |
|   o =o*.+      |
|  . . *oO .      |
|     .EBoo      |
|      o.S         |
+--[lopz.org]--+
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] parsear HTML

2011-03-05 Thread Francisco Rivas
Hola *,

yo tomaria la sugerencia de usar BeautifulSoup es bastante simple :

Estoy paritieno del hecho de que ese codigo html es igual en todos los tr es
decir se mentienen los 3 td.

Seria algo como :

from BeautifulSoup import BeautifulSoup

page = """
Cuentos Infantiles
Cenicienta
25.00
"""

soup = BeautifulSoup(page)

precio = str(soup.findAll("td")[2].text) # debido a que te interesa el
25.00

Quiza eso te sirva :D


On Wed, Mar 2, 2011 at 18:23, lopz  wrote:

> Yo si es que solo necesitas eso usaría expresiones regulares, van y
> bien y no dependes de módulos externos
> ahora si se trata de usar un módulo tiraría de [1] y también he leído
> muy bien de lxml
>
> [1]  http://www.crummy.com/software/BeautifulSoup/
>
> 2011/3/2 Nekmo :
> > Yo con lxml suelo usar una funcionalidad que me permite filtrar usando
> > CSS, lo cual me es una pasada :D Además tienes lxml tanto en Python3
> > como en 2.x
> >
> > Un cordial saludo:
> > -- Nekmo.
> >
> > Sitio web: http://nekmo.com
> > Dirección de contacto: conta...@nekmo.com
> > XMPP/Jabber: conta...@nekmo.com
> > Identi.ca: http://identi.ca/nekmo
> > Diaspora: Nekmo
> >
> >
> >
> > 2011/3/2 Luis Miguel Morillas :
> >> El día 2 de marzo de 2011 15:23, (P@vel)  escribió:
> >>> Como puedo de un archivo html cojer todas las etiquetas  que
> tengan
> >>> un  que se llame cuentos infantiles por ejemplo, y guardar el
> valor
> >>> que tenga los demas  de ese , es decir cojer los valores de
> todas
> >>> las columnas de esa fila, por ejemplo: cenicienta, 25.00
> >>>
> >>> 
> >>> Cuentos Infantiles
> >>> Cenicienta
> >>> 25.00
> >>> 
> >>>
> >>
> >> 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@python.org
> >>> http://mail.python.org/mailman/listinfo/python-es
> >>> FAQ: http://python-es-faq.wikidot.com/
> >>>
> >>>
> >> ___
> >> Python-es mailing list
> >> Python-es@python.org
> >> http://mail.python.org/mailman/listinfo/python-es
> >> FAQ: http://python-es-faq.wikidot.com/
> >>
> > ___
> > Python-es mailing list
> > Python-es@python.org
> > http://mail.python.org/mailman/listinfo/python-es
> > FAQ: http://python-es-faq.wikidot.com/
> >
>
>
>
> --
> lopz es libre, usa --> GNU/linux gentoo
>
> +--[RSA 2048]--+
> |  ..o.o=+   |
> |   o =o*.+  |
> |  . . *oO .  |
> | .EBoo  |
> |  o.S |
> +--[lopz.org]--+
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] parsear HTML

2011-03-05 Thread Andrey Antoukh
Con lxml es muchisimo mas simple que con BeautifulSoup, sobretodo si sabes css.

Un saludo.
Andrei.

El día 5 de marzo de 2011 18:51, Francisco Rivas
 escribió:
> Hola *,
> yo tomaria la sugerencia de usar BeautifulSoup es bastante simple :
> Estoy paritieno del hecho de que ese codigo html es igual en todos los tr es
> decir se mentienen los 3 td.
> Seria algo como :
> from BeautifulSoup import BeautifulSoup
> page = """
> Cuentos Infantiles
> Cenicienta
> 25.00
> """
> soup = BeautifulSoup(page)
> precio = str(soup.findAll("td")[2].text) # debido a que te interesa el
> 25.00
> Quiza eso te sirva :D
>
> On Wed, Mar 2, 2011 at 18:23, lopz  wrote:
>>
>> Yo si es que solo necesitas eso usaría expresiones regulares, van y
>> bien y no dependes de módulos externos
>> ahora si se trata de usar un módulo tiraría de [1] y también he leído
>> muy bien de lxml
>>
>> [1]  http://www.crummy.com/software/BeautifulSoup/
>>
>> 2011/3/2 Nekmo :
>> > Yo con lxml suelo usar una funcionalidad que me permite filtrar usando
>> > CSS, lo cual me es una pasada :D Además tienes lxml tanto en Python3
>> > como en 2.x
>> >
>> > Un cordial saludo:
>> > -- Nekmo.
>> >
>> > Sitio web: http://nekmo.com
>> > Dirección de contacto: conta...@nekmo.com
>> > XMPP/Jabber: conta...@nekmo.com
>> > Identi.ca: http://identi.ca/nekmo
>> > Diaspora: Nekmo
>> >
>> >
>> >
>> > 2011/3/2 Luis Miguel Morillas :
>> >> El día 2 de marzo de 2011 15:23, (P@vel)  escribió:
>> >>> Como puedo de un archivo html cojer todas las etiquetas  que
>> >>> tengan
>> >>> un  que se llame cuentos infantiles por ejemplo, y guardar el
>> >>> valor
>> >>> que tenga los demas  de ese , es decir cojer los valores de
>> >>> todas
>> >>> las columnas de esa fila, por ejemplo: cenicienta, 25.00
>> >>>
>> >>> 
>> >>> Cuentos Infantiles
>> >>> Cenicienta
>> >>> 25.00
>> >>> 
>> >>>
>> >>
>> >> 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@python.org
>> >>> http://mail.python.org/mailman/listinfo/python-es
>> >>> FAQ: http://python-es-faq.wikidot.com/
>> >>>
>> >>>
>> >> ___
>> >> Python-es mailing list
>> >> Python-es@python.org
>> >> http://mail.python.org/mailman/listinfo/python-es
>> >> FAQ: http://python-es-faq.wikidot.com/
>> >>
>> > ___
>> > Python-es mailing list
>> > Python-es@python.org
>> > http://mail.python.org/mailman/listinfo/python-es
>> > FAQ: http://python-es-faq.wikidot.com/
>> >
>>
>>
>>
>> --
>> lopz es libre, usa --> GNU/linux gentoo
>>
>> +--[RSA 2048]--+
>> |  ..o.o=+       |
>> |   o =o*.+      |
>> |  . . *oO .      |
>> |     .EBoo      |
>> |      o.S         |
>> +--[lopz.org]--+
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>



-- 
http://twitter.com/andsux
http://www.niwi.be

http://www.freebsd.org/
http://www.postgresql.org/
http://www.python.org/
http://www.djangoproject.com/

"Linux is for people who hate Windows, BSD is for people who love UNIX"
"Social Engineer -> Because there is no patch for human stupidity"
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/