[Python-es] Extraer datos de código html usando regex

Alex Parra parraletz en gmail.com
Jue Jul 31 14:38:59 CEST 2014


Dale una revisada a scrapy, 
http://scrapy.org

Saludos!


Sent from my iPhone

> On Jul 30, 2014, at 5:19 AM, Kiko <kikocorreoso en gmail.com> wrote:
> 
> 
> 
> 
> El 30 de julio de 2014, 11:54, Guillermo Vaya <nadaird en gmail.com> escribió:
>> En general, no usaria un regex para parsear html (o ningun tipo de XML) a menos que estuviera 100% seguro de que lo que busco no va a cambiar en la vida (siempre desde la misma fuenta y generado a maquina). Sino que utilizaria un parser especializado para ello. en la propia libreria estandar de python hay uno[1] y ademas hay muchas librerias especializadas (como beautiful soup [2]) que posiblemente lo faciliten aun mas.
>> 
>> Asi en un vistazo rapido, podria fallarte si 
>> 
>> alguien mete espacio de mas entre los atributos del tag
>> se incluyera algun otro atributo de img antes del data:el alt que tienes en el ejemplo bien podria haber sido escrito antes del data
>> se usaran comillas simples para definir los valores del atributo (lo normal es doble, pero es aceptable tambien)
> 
> Todo cierto!!
> 
> A priori, todo proviene de un proceso automatizado (aunque puede cambiar en el futuro y romper las cosas).
> 
>> 
>> [1]: https://docs.python.org/3/library/html.parser.html
> 
> Voy a probar a ver si me resuelve la papeleta. Gracias. Aunque sigo pensando que re es más potente y da mayor libertad, pero también es cierto que es más esotérico y puede dar infinitos problemas (como los ejemplos que has puesto)
> 
> Gracias.
>  
>> 
>> [2]: http://www.crummy.com/software/BeautifulSoup/
>> 
>> 
>> 2014-07-30 10:58 GMT+02:00 Kiko <kikocorreoso en gmail.com>:
>> 
>>> 
>>> 
>>> 
>>> El 30 de julio de 2014, 10:33, Eduard Diaz <eventgrafic en gmail.com> escribió:
>>> 
>>>>  No hace falta que lo parsees a mano utiliza la libreria base64[1]
>>> 
>>> Creo que no lo he explicado correctamente. El problema de transformar la información está resuelto. Mi problema es como obtener la información para poder transformarla.
>>>  
>>>> 
>>>> [1]http://www.programcreek.com/2013/09/convert-image-to-string-in-python/
>>>> 
>>>> El día 30 de julio de 2014, 9:25, Kiko <kikocorreoso en gmail.com> escribió:
>>>> > Hola a todos.
>>>> >
>>>> > Estoy intentando extraer información de imágenes de un código html
>>>> > (http://en.wikipedia.org/wiki/Data_URI_scheme)
>>>> >
>>>> > El formato sería el siguiente:
>>>> >
>>>> > <img
>>>> > src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
>>>> > AAALEgAACxIB0t1+/AAA" />
>>>> >
>>>> >
>>>> > Me interesa extraer la extensión de la imagen (png en el anterior ejemplo) y
>>>> > los datos que vienen después de 'base64,' hasta el cierre de comillas '"',
>>>> > es decir,
>>>> > 'iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
>>>> > AAALEgAACxIB0t1+/AAA'.
>>>> >
>>>> >
>>>> > Tengo un ejemplo aquí,
>>>> > https://gist.github.com/anonymous/75ab61f586c19e767cf0, pero estoy seguro de
>>>> > que mi regex me va a fallar en cuanto encuentre alguna cosa más rara.
>>>> >
>>>> > ¿Alguien me podría indicar si el regex vale o si debería modificarlo para
>>>> > que no me dé falsos positivos o acepte falsos negativos?
>>>> >
>>>> > Muchas gracias por adelantado.
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > Python-es mailing list
>>>> > Python-es en python.org
>>>> > https://mail.python.org/mailman/listinfo/python-es
>>>> > FAQ: http://python-es-faq.wikidot.com/
>>>> >
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>> 
>>> 
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>> 
>> 
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
> 
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140731/b097fc1c/attachment.html>


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