Saltar al contenido
AutoValue
28 de agosto de 2026 · Data Quality

El verano en que nuestro contador de anuncios se rompió: un diario desde dentro del crawler

AutoValue Editorial
El verano en que nuestro contador de anuncios se rompió: un diario desde dentro del crawler

La mayoría de los días mantengo abierta una pestaña que muestra únicamente el número de fuentes. Nada de gráficos ni filtros, solo una cifra junto a cada uno de los 1.375 sitios de los que extraemos anuncios y una marca de tiempo de la última vez que cada uno respondió. La mayoría de los días es aburrido, en el buen sentido en que la infraestructura debería serlo. Este verano no lo fue, y creo que la historia de lo que salió mal te resulta más útil, como comprador de coches, que la mayoría de los consejos de "cómo comprar un coche de segunda mano" que podríamos escribir en su lugar. Trata de lo que realmente significa "datos en vivo" cuando lo que los alimenta son 1.375 sitios web independientes que no te deben nada.

Mediados de julio: la cifra de la que estaba orgulloso

A mediados de julio habíamos llevado el registro de fuentes a 1.190 fuentes en 73 regiones, resultado de varias semanas depurando entradas duplicadas y enlaces muertos que habían estado inflando silenciosamente nuestra propia cifra. Recuerdo pensar que 1.190 fuentes reales y activas era algo de lo que sentirse orgulloso. Son muchos concesionarios individuales, portales de clasificados y feeds de subastas, cada uno con su propia estructura HTML, sus propios límites de peticiones, su propia opinión sobre si un scraper es un cliente o un ataque.

Luego empezó a dar frutos una campaña de rezago que llevábamos ejecutando: ir despejando una lista de espera de 683 fuentes que llevaban meses aplazadas, algunas bloqueadas, otras simplemente nunca construidas. Durante la segunda mitad de julio se construyeron y conectaron 274 de ellas. A finales de mes la cifra activa había subido a 1.464. Es la clase de semana de la que haces una captura de pantalla.

Principios de agosto: 241 fuentes, desaparecidas

Y entonces llega la cifra que te arruina la semana: de la noche a la mañana, 241 fuentes cayeron en un estado degradado. No por nada que hubiéramos hecho nosotros: la cuenta de nuestro proveedor de proxies había caducado por un tema de facturación, y una gran parte de nuestro tráfico se enruta a través de IPs rotativas precisamente para que no nos bloqueen los sitios que limitan a los scrapers. Sin proxies, no hay páginas nuevas, no hay anuncios nuevos. Las fuentes no anuncian que están rotas; simplemente dejan de devolver datos nuevos en silencio mientras sus anuncios antiguos siguen ahí, con aspecto de estar actualizados.

Esta es la parte que no aparece en el contador de anuncios de ningún sitio de coches, incluido el nuestro, a menos que la busques expresamente: un mercado "en vivo" puede tener filas obsoletas sentadas junto a otras frescas y parecer idéntico desde fuera. Condicionamos los nuevos despachos de rastreo a una comprobación real del estado de los proxies, para que un pool muerto no pudiera degradar la calidad todavía más en silencio, y pausamos las partes de la programación que lo habrían empeorado. No es un trabajo glamuroso. Es la clase de cosa que, si nunca te enteras de ella, significa que alguien hizo bien su trabajo.

Un inciso, porque vale la pena decirlo sin rodeos: cualquier sitio que presuma de una cifra de anuncios fija y redonda todos los días, o no está realmente en vivo, o no te está contando semanas como esta.

La congelación

La renovación del proxy solucionó la mayor parte. Lo que no esperaba era que el propio crawler se bloqueara unas semanas después: un interbloqueo de cierre, dieciocho de diecinueve hilos de trabajo atascados en futex_wait, cero CPU consumida, durante 75 horas seguidas. Sin caída, sin ningún registro de errores gritándole a nadie. Simplemente... no pasaba nada, mientras el panel seguía mostrando la última pasada exitosa como si fuera actual. Todavía no habíamos instalado un watchdog en ese host en concreto, que es la clase de frase que solo escribes después de que lo que describe ya te haya pasado una vez.

Construimos el watchdog. Pausamos la programación hasta confirmar que la renovación del proxy era estable, en lugar de arriesgarnos a que un rastreo a medio degradar sustituyera en silencio filas buenas por otras malas: una fuente rastreada tiene sus anuncios sustituidos, no fusionados, así que una pasada mala no solo deja de añadir datos, puede borrar activamente filas buenas y poner otras peores en su lugar. Esa asimetría es la razón por la que preferimos funcionar con datos obsoletos durante un día antes que funcionar degradados.

Dónde acabó la cifra

Aquí está el recuento de hoy, y la forma de las seis semanas que nos trajeron hasta aquí:

Acabamos con 1.375 fuentes en 73 regiones, alimentando 1.108.535 anuncios en vivo, con 12.823 actualmente marcados como con precio por debajo de su cohorte regional. Son aproximadamente 90 fuentes menos que el pico de julio: algunas de las 241 degradadas nunca se recuperaron del todo, un puñado eran sitios que habían cambiado mientras tanto su postura anti-bot y necesitaban reconstrucción en lugar de una simple reconexión. Todavía estamos trabajando en unas cuantas de ellas.

Lo que esto realmente vale para ti

Nada de esto cambia qué coche deberías comprar. Pero sí debería cambiar cómo lees cualquier cifra de "inventario en vivo" en cualquier sitio de coches, no solo el nuestro. Francia encabeza ahora mismo nuestro recuento regional con 67.569 anuncios, Japón le sigue de cerca con 61.940, y esas cifras se mueven, no porque el propio mercado de coches de segunda mano oscile tan rápido, sino porque lo hace la infraestructura que lo observa. Un anuncio que lleva tres días obsoleto porque una fuente estaba degradada tiene exactamente el mismo aspecto que uno fresco, a menos que la plataforma sea honesta sobre la diferencia.

Preferimos contarte lo de la congelación de 75 horas antes que fingir que nuestra cifra nunca se tambalea. Un conjunto de datos que nunca admite haber tenido una mala semana es un conjunto de datos del que deberías desconfiar más, no menos.

Data QualityWEB ScrapingMethodologyTransparencyMarket Data
Compartir

Artículos relacionados