¿Cuál es la mejor manera de monitorear cambios en la página de citas sin ser bloqueado?

¡Hola a todos!

Todavía estoy aprendiendo n8n y tengo un pequeño proyecto.

Quiero monitorear una página de citas del gobierno (similar a una página de reserva de citas NBI) y recibir notificaciones solo cuando algo importante cambie, como nuevas franjas horarias de citas o una actualización de estado.

No quiero hacer scraping agresivo ni quebrantar las reglas de ningún sitio web. Solo necesito verificar cada pocos minutos y enviar una notificación por Telegram o correo electrónico si hay un cambio real.

¿Cuál es el mejor enfoque en n8n para esto? ¿HTTP Request + HTML Extract + comparar con el resultado anterior? ¿O hay un flujo de trabajo mejor?

Me gustaría saber cómo otros manejan este tipo de monitoreo sin ser limitados por la tasa de solicitudes.

¡Gracias!

Oye @jozerizzel, mientras esperas una respuesta, aquí hay algunas cosas que podrían ayudarte:

Recursos sugeridos

Coincidencia automática con tu pregunta.

Documentación:

Foro:

@Yo_its_prakash, @mohamed3nan - han ayudado con problemas similares antes, ¿pueden echar un vistazo?

Sugerido automáticamente por el bot comunitario de n8n. Es un piloto - comparte tu opinión aquí.

@jozerizzel

Puedes intentar este enfoque

Activador de Horario (cada 5 min)
→ Solicitud HTTP (obtener página)
→ Nodo HTML (extraer sección objetivo)
→ Nodo de Código (hash/normalizar texto extraído)
→ Eliminar Duplicados (comparar con ejecución anterior)
→ [SI se detecta cambio] → Nodo Telegram / Email

¡Hola @jozerizzel Bienvenido!
Dirige la solicitud HTTP al endpoint JSON que llama el calendario de reservas en lugar del HTML renderizado, luego guarda la respuesta ETag en los datos estáticos del flujo de trabajo y envíala como If-None-Match en la siguiente consulta. Las consultas sin cambios regresan 304 sin cuerpo, así que activa Incluir encabezados de respuesta y estado para leer el ETag, y Nunca error para que un 304 no falle la ejecución.
Los datos estáticos solo se guardan en una ejecución de flujo de trabajo publicada por su disparador, por lo que cada ejecución de prueba manual se verá como la primera consulta.

Gracias por la explicación detallada, la aprecio mucho.

No pensé en usar el endpoint JSON con ETag e If-None-Match. Eso suena mucho mejor que comparar todo el HTML cada vez.

También gracias por explicar el comportamiento de los datos estáticos. Estaba confundido porque cada prueba manual parecía una primera ejecución, ahora sé por qué.

Actualizaré mi flujo de trabajo y lo probaré con un disparador publicado en su lugar. Espero que esto reduzca las solicitudes innecesarias y evite que me bloqueen.

¡Gracias nuevamente por tu ayuda! :folded_hands:

Gracias, este flujo de trabajo es mucho más fácil de entender.

Creo que lo intentaré primero antes de hacerlo más avanzado con ETags. Mi objetivo principal es simplemente recibir una notificación si algo cambia en la página de citas de NBI online, así no necesito estar revisándola manualmente todo el día.

Construiré este flujo y veré cómo funciona. Si el sitio web se vuelve demasiado pesado para hacer polling, entonces investigaré el enfoque de JSON/ETag que se mencionó anteriormente.

¡Gracias por compartir esto, realmente útil!