🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónEl parser, de la línea al campo
4 tareas · 40 min · Principiante
Un parser convierte una línea de texto en campos con nombre y tipo, y de esos campos viven las detecciones. Su diseño importa más que el patrón: qué campos son obligatorios, qué tipo se guarda y, sobre todo, qué hace con la línea que no entiende. En el Ingenio Cañaduzal lees la definición de un parser de ejemplo para el proxy web, doce líneas de muestra y lo que el parser hizo con cada una. Todo es lectura; el patrón es solo una línea más de la definición.
Objetivo de la sala
Un parser convierte una línea de texto en campos con nombre y tipo, y de esos campos viven las detecciones. Su diseño importa más que el patrón: qué campos son obligatorios, qué tipo se guarda y, sobre todo, qué hace con la línea que no entiende. En el Ingenio Cañaduzal lees la definición de un parser de ejemplo para el proxy web, doce líneas de muestra y lo que el parser hizo con cada una. Todo es lectura; el patrón es solo una línea más de la definición.Un parser no es solo un patrón. Una definición completa dice de qué fuente es, cómo se parte la línea, qué campos son obligatorios, en qué zona horaria se interpreta la hora y qué se hace con lo que no casa. Lo del patrón (grupos, cuantificadores) se estudia en otro módulo; aquí se lee como una pieza más.
Abre el laboratorio y lee proxy-web-v1.yml. Fíjate en tres líneas: el patron, los campos_obligatorios y si_no_casa. Después lee muestras.txt y resultado.txt, que muestran el resultado de aplicar el parser a doce líneas reales del proxy.
El parser parte una línea solo si toda ella cabe en el patrón, de principio a fin. Una línea con un campo de más o con un valor de otra forma no se parte a medias: no se parte.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Escribe el porcentaje de las doce líneas de muestra que el parser dejó sin parsear.
Ver pista de ayuda
En resultado.txt cuenta las líneas con estado sin_parsear y divide entre doce.
Cuando una línea no casa hay que averiguar la causa antes de tocar el patrón: puede ser una variante legítima que el parser no previó, o un cambio del proveedor. Compara cada línea sin parsear con el patrón.
Dos de las tres líneas sin parsear comparten el mismo motivo: el campo del cliente trae un valor con una forma que el patrón no admite. La tercera falla por otra cosa.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Escribe el número de la línea sin parsear que trae un campo de más al final de la línea.
Ver pista de ayuda
Compara el final de cada línea sin parsear con el final del patrón, que termina en bytes.
Hay tres políticas posibles para una línea que no casa: descartarla, guardarla entera en un campo aparte o hacer que el parser falle. El parser de ejemplo guarda la línea entera en _sin_parsear. Es la política más segura, con una condición: alguien tiene que mirar ese campo.
Lo que se descarta en silencio no deja rastro. Una detección que lee cliente no sabe que existe una línea sin cliente: simplemente no la ve.
Responde para continuar
¿Por qué es preferible guardar la línea entera en un campo aparte que descartar la que no casa?
El parser también decide el tipo con que se guarda cada campo: texto, entero, fecha-hora, dirección. Un campo numérico guardado como texto parece correcto hasta que una detección intenta compararlo: con texto, «900» es mayor que «2000» porque se ordena letra a letra, no como cantidad.
Lee campos.txt.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Escribe el nombre del campo que representa una cantidad y el parser guarda como texto.
Ver pista de ayuda
Busca en la columna tipo_guardado un campo que sea un número por naturaleza y que diga texto.
Preparando el escritorio…
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.