Log in to leave a comment
No posts yet
Si simplemente extraes el HTML de una página web como texto sin formato, el agente de IA se perderá. Aunque el texto sea visible, la jerarquía del documento desaparece. Según datos de investigación publicados en 2024, preservar la estructura jerárquica de un documento mejora la precisión de la búsqueda en más de un 30% en comparación con el simple fraccionamiento de texto. Estoy convencido de que la clave reside en permitir que el agente identifique inmediatamente la importancia de los datos mediante la información de los encabezados.
Lo primero que debes hacer es abandonar el método get_text() de BeautifulSoup. En su lugar, utiliza la librería Markdownify para mapear las etiquetas HTML a encabezados de Markdown. Debes emplear una estrategia de fragmentación (chunking) de tipo padre-hijo, dividiendo el Markdown transformado por niveles de encabezado para proporcionar secciones superiores completas como contexto. Si utilizas además la librería Trafilatura, puedes reducir el consumo de tokens hasta en un 67% al extraer el cuerpo del texto. Es la forma más segura de ahorrar costes y aumentar la precisión simultáneamente.
Los rastreadores estáticos jamás podrán leer los datos ocultos tras menús de pestañas o acordeones implementados con JavaScript. Considero que estos datos invisibles son los principales culpables de degradar la calidad de las respuestas en los sistemas RAG. Playwright se conecta directamente al protocolo nativo del navegador, CDP, por lo que controla el contenido dinámico de forma más rápida y potente que Selenium. En casos de aplicación real, los sistemas que implementaron secuencias de clic automático obtuvieron un 30% más de datos que la recopilación manual.
Al construir una lógica de automatización basada en Playwright, utiliza la función page.wait_for_selector dentro de un bucle. Es fundamental esperar con certeza hasta que el elemento clickeable aparezca en pantalla. Luego, llama al método scroll_into_view_if_needed() para forzar el scroll infinito o las solicitudes AJAX. Haz clic en cada pestaña secuencialmente y captura el estado del DOM cambiado en tiempo real para guardarlo. Solo tras este proceso se logra completar una base de datos sin omisiones.
Los anuncios, pies de página y barras de menú desperdician la ventana de contexto del agente y contaminan los vectores de embedding. El ruido en los sitios web es más grave de lo que parece; los datos sin depurar son como veneno para la IA. Readability.js analiza la densidad de texto y enlaces para seleccionar solo el cuerpo del texto que contiene la información real. En resultados de benchmarks, Readability registró una mediana de rendimiento de 0.970 en todos los tipos de páginas, eliminando con precisión los elementos ajenos al contenido principal.
Introduce este algoritmo en tu pipeline de limpieza de datos. Pasa el HTML recopilado por Readability.js para filtrar solo el título y el cuerpo, y luego elimina los espacios innecesarios mediante expresiones regulares. Si conviertes y guardas este texto limpio en Markdown, la cantidad de datos que el agente debe leer se reduce hasta en un 90%. La relevancia de la búsqueda mejora 2.29 veces. Es mucho más eficiente introducir datos limpios que intentar forzar una gran cantidad de información.
La mayoría de los sitios web bloquean el acceso de agentes de IA al detectar el flag navigator.webdriver. Si no quieres enfrentarte a pantallas de captcha, una estrategia de sigilo es esencial. Los movimientos mecánicos se detectan rápido. Considero que la solución más inteligente es imitar matemáticamente el comportamiento humano.
Primero, utiliza el plugin playwright-stealth para borrar el flag del webdriver y camuflar el User-Agent como una versión reciente de Chrome. Al mover el ratón, utiliza curvas de Bézier en lugar de líneas rectas:
Al escribir, inserta retrasos aleatorios de entre 50ms y 200ms por cada carácter. Simplemente con descansar de forma aleatoria entre 2 y 5 segundos al cambiar de página, puedes evadir los sistemas antibots. Puede parecer un poco más lento, pero es mucho más rápido que ser bloqueado y no poder recopilar nada en absoluto.