ImagenImagenImagenImagen
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

Python - Extraccion de datos de cadenas

Si tu lenguaje no se engloba en los anteriores, postea aquí tus temas

Moderador: Junta Directiva

Responder
Garrocha
Usuario Desarrollador
Usuario Desarrollador
Mensajes: 1108
Registrado: Mar Ago 23, 2005 10:50 pm
Ubicación: Sevilla[Es] - Montpellier[Fr]

Python - Extraccion de datos de cadenas

Mensaje por Garrocha » Dom Nov 19, 2006 2:14 pm

Hola a todos, a ver si alguien puede echarme una mano, me gustaria extraer datos de una cadena de caracteres (formateada como XML) en Python.

La cadena es la siguiente:

HTTP/1.1 200 OK

Date: Sun, 19 Nov 2006 13:00:20 GMT

Server: Microsoft-IIS/6.0

X-Powered-By: ASP.NET

X-AspNet-Version: 1.1.4322

Cache-Control: private, max-age=0

Content-Type: text/xml; charset=utf-8

Content-Length: 1166



<xml><soap><soap><GetPasoParadaREGResponse><GetPasoParadaREGResult>
<PasoParada><cabecera>false</cabecera>
<e1><minutos>3</minutos><metros>675</metros><tipo>NORMAL</tipo></e1>
<e2><minutos>20</minutos><metros>4141</metros><tipo>NORMAL</tipo></e2>
<linea>05</linea><parada>200</parada><ruta>PRADO PTA.TRIANA </ruta></PasoParada>
<PasoParada><cabecera>false</cabecera>
<e1><minutos>1</minutos><metros>164</metros><tipo>NORMAL</tipo></e1>
<e2><minutos>23</minutos><metros>6309</metros><tipo>NORMAL</tipo></e2>
<linea>06</linea><parada>200</parada><ruta>BARQUETA S.LAZARO </ruta></PasoParada>
<PasoParada><cabecera>false</cabecera>
<e1><minutos>17</minutos><metros>3440</metros><tipo>NORMAL</tipo></e1>
<e2><minutos>17</minutos><metros>3411</metros><tipo>NORMAL</tipo></e2><linea>C1</linea><parada>200</parada><ruta>CARTUJABARQUETA
</ruta></PasoParada></GetPasoParadaREGResult>
<status>1</status></GetPasoParadaREGResponse></soap></soap>
Basicamente lo que quiero es extraer los datos que estan entre las etiquetas (<etiqueta>dato</etiqueta>), en C creo que sabria hacerlo, pero python tiene una forma algo distinta de tratar las cadenas, ademas se supone que python trae librerias especializadas en Xml, pero no doy con la tecla

Pd.- Esa es la respuesta del servidor de Tussam (La empresa de autobuses urbanos de Sevilla) http://www.infobustussam.com:9001/ en concreto da informacion sobre los tiempos de llegada de los autobuses a una parada. La finalidad del programa es que me avise del momento optimo para salir del piso para coger el autobus sin esperar demasiado y que llege a tiempo al destino (tiempo piso-parada+ tiempodellegadadelbussacadodeinternet+ tiempomedioparada-destino) el primer y ultimo dato seran en principio "empiricos", siendo el de enmendio el que intento extraer de la pagina que e puesto arriba

Saludos



Garrocha
Usuario Desarrollador
Usuario Desarrollador
Mensajes: 1108
Registrado: Mar Ago 23, 2005 10:50 pm
Ubicación: Sevilla[Es] - Montpellier[Fr]

Re: Python - Extraccion de datos de cadenas

Mensaje por Garrocha » Dom Nov 19, 2006 2:23 pm

Y el codigo que muestra esa cadena es:
import telnetlib


HOST = "www.infobustussam.com"
PORT = 9001
LINEA = "6"
PARADA = "200"


telnet = telnetlib.Telnet(HOST, PORT)

##Lo que viene a bajo es el resultado de capturar los paquetes entre el pc y el servidor de tussam

telnet.write("""POST /services/dinamica.asmx HTTP/1.1
Host: www.infobustussam.com:9001
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1) Gecko/20061010 Firefox/2.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Referer: http://www.infobustussam.com:9001/linea ... iones2.swf
Content-type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/GetPasoParadaREG"
Content-length: 402

<?xml version="1.0" encoding="utf-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelop ... oParadaREG xmlns="http://tempuri.org/">""")
telnet.write("""<linea>C1</linea><parada>"""+PARADA+"""</parada><medio>3</medio><status>0</status></GetPasoParadaREG></SOAP-ENV:Body></SOAP-ENV:Envelope>""")

Coco = telnet.read_until("coco",timeout=2) ##Coco es un nombre comodin para la variable, podia haber sido "yogu de platano" igualmente
telnet.close ##la conexion por defecto es una "keep alive" (aunque yo no quiera) asi que forzamos el cierre de la conexion
print Coco

Avatar de Usuario
Demostenes
Moderador
Moderador
Mensajes: 62
Registrado: Dom Sep 11, 2005 12:30 pm
Ubicación: Barcelona

Re: Python - Extraccion de datos de cadenas

Mensaje por Demostenes » Dom Nov 19, 2006 2:40 pm

garrocha, has probado con Amara?
http://pythonmexico.org/index_html/doc/amara.html

Garrocha
Usuario Desarrollador
Usuario Desarrollador
Mensajes: 1108
Registrado: Mar Ago 23, 2005 10:50 pm
Ubicación: Sevilla[Es] - Montpellier[Fr]

Re: Python - Extraccion de datos de cadenas

Mensaje por Garrocha » Dom Nov 19, 2006 10:23 pm

que maravilla con Amara, esto ya tiene otro color, si esque tenia que haber preguntao antes :D

Muchas gracias Dem

Pd.- cuando tenga terminada esta parte cuelgo el codigo ;)

Avatar de Usuario
Demostenes
Moderador
Moderador
Mensajes: 62
Registrado: Dom Sep 11, 2005 12:30 pm
Ubicación: Barcelona

Re: Python - Extraccion de datos de cadenas

Mensaje por Demostenes » Lun Nov 20, 2006 1:13 am

así me gusta, colgando el código garrocha.
Lo estaremos esperando :mrgreen:

Garrocha
Usuario Desarrollador
Usuario Desarrollador
Mensajes: 1108
Registrado: Mar Ago 23, 2005 10:50 pm
Ubicación: Sevilla[Es] - Montpellier[Fr]

Re: Python - Extraccion de datos de cadenas

Mensaje por Garrocha » Lun Nov 20, 2006 8:08 am

Hombreeeee esta claro, a ver si alguno se da por aludido y cuelga algun codigo del que estoy pendiente desde la campus, que a este paso hago mi propia version (bueeeeno, por lo menos me habrio los ojos al mundo de Python, por ahí se va a escapar...) xDDD

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado