[Python-es] Expresiones regulares por grupo

Luis Miguel Morillas morillas en gmail.com
Jue Feb 10 07:12:29 CET 2011


El día 10 de febrero de 2011 02:46, lopz <lowlifebob en gmail.com> escribió:
> Hola
>
> Hace poco empecé son las expresiones regulares y estaba tratando de
> usarlas y tengo un pequeño problema al momento de
> parsear un html que extraigo de una página web, la idea es la
> siguiente, de un trozo de código html quiero extraer datos pero de
> diferentes líneas
> para esto hago uso de los grupos, mejor paso a pegar el trozo de
> código html y lo que intento extraer y lo que tengo hasta el momento
>
>
> <h2>Google search: <a
> href="http://www.google.com/search?hl=en&#038;q=BUSQUEDA&#038;btnG=Google+Search"
> class="external" rel="nofollow">&quot;BUSQUEDA</a></h2>
>
> <p>algo</p>
> <p>fecha: 2006-03-06</p>
> <p class="text">LINEA 1
> LINEA 2
> LINEA3</p>
> </div>
>
> Tengo esto y lo que quiero es obtener 3 datos de ahí,  lo que dice
> BUSQUEDA, luego de la q=
> luego la fecha y por último LINEA 1, LINEA 2 y LINEA 3
>
> Sabría hacerlo por partes, primero un datos luego el otro y así, pero
> mi idea es hacerlo en una sola expresión y obtenerlo por grupos
> lo que tengo hasta el momento es esto para obtener la palabra BUSQUEDA
> q=(.+?)["|&] <- esto me busca hasta que cierra comillas o hasta que se
> encuentre con & que aveces está presente en medio y que a partir
> de ahí son parámetros que usa google
> para la fecha lo tengo así: (\d{4}-\d{2}-\d{2})
> y para lo otro sería casi igual pero mi problema es que no se unirlas
> en una sola expresión jeje
> osea que en medio de esas incluya cualquier cosa como las etiquetas
> </h2> saltos de linea, tabs, etc
> Espero me puedan ayudar, desde ya muchas gracias
>

Yo no te puedo ayudar con la expresión regular. Sólo quería comentar
que para hacer web scraping se suelen utilizar parsers de html o xml.
En este caso un análisis del DOM resolvería el problema. Además te da
más flexibilidad para sencillos cambios de la página inicial.

-- luismiguel



> saludOS!
>
> --
> 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 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