Buscar/Crea un extractor del contenido principal de páginas web y depura el contenido perdido

Crea un extractor del contenido principal de páginas web y depura el contenido perdido

Úsalo al crear o arreglar un extractor del texto principal de páginas web para navegador, servidor, CLI o edge. La IA respeta el orden de limpieza, registra cada eliminación, bloquea la inyección de scripts y prueba cada arreglo con una prueba que falla primero.

Para usar estas reglas de IA
## Haz que el extractor funcione igual en cada entorno admitido Diseña el extractor en torno a una interfaz de documento estable, no a una implementación concreta del navegador. Enumera todos los entornos compatibles y sus restricciones antes de cambiar el comportamiento de análisis compartido. - Las compilaciones para navegador pueden usar el modelo de documento nativo. - Las compilaciones para servidor pueden aceptar documentos creados por distintas implementaciones del DOM y ofrecer una API asíncrona. - Las compilaciones para línea de comandos deben conservar la misma semántica de extracción y ofrecer modos orientados a texto y legibles por máquinas. - Los entornos de ejecución periféricos pueden proporcionar la implementación de documento más limitada y deben definir el nivel mínimo de compatibilidad. - Los puntos de entrada de los paquetes deben ofrecer el mismo comportamiento público aunque sus formatos de módulo sean distintos. Mantén ligeros los adaptadores de entorno. Sitúa el análisis, la puntuación, la normalización, el saneamiento y el comportamiento específico de cada elemento en capas compartidas, salvo que una limitación del entorno de ejecución exija una excepción explícita. ## Mantén el orden de los pasos de limpieza y no lo cambies por un solo sitio Trata la secuencia de extracción como un algoritmo ordenado, no como un conjunto de funciones de limpieza intercambiables. Cada etapa puede establecer supuestos que consumen las etapas posteriores. Utiliza esta secuencia de forma predeterminada: 1. Aplana los árboles de documento encapsulados. 2. Resuelve el contenido transmitido o diferido. 3. Selecciona el contenido principal automáticamente o mediante un selector explícito. 4. Normaliza las estructuras que las reglas de eliminación podrían ocultar o descartar. 5. Convierte los avisos reconocidos en una representación semántica estable. 6. Elimina los elementos multimedia demasiado pequeños y los elementos ocultos. 7. Elimina los bloques con puntuación baja. 8. Aplica selectores exactos y parciales de elementos ajenos al contenido. 9. Elimina el texto repetitivo y otros patrones de contenido. 10. Normaliza el documento restante. 11. Resuelve los enlaces relativos y las ubicaciones de recursos. Documenta por qué una etapa debe preceder a otra cuando la dependencia no resulte evidente. No cambies el orden de etapas compartidas para corregir un sitio hasta que una prueba específica demuestre que el nuevo orden conserva todas las representaciones intermedias necesarias. ## Usa el registro de eliminaciones para ver dónde se perdió el contenido Ofrece un modo de depuración que informe de la raíz de contenido seleccionada y de cada eliminación, con su etapa, selector, motivo y texto representativo. El modo de depuración puede conservar atributos de diagnóstico y evitar las operaciones de aplanado de estructuras que borrarían las evidencias. Cuando desaparezca contenido esperado: 1. Busca en el registro de eliminaciones el contenido que falta. 2. Desactiva una etapa cada vez para identificar la primera que provoca la pérdida. 3. Si el problema corresponde a un selector, distingue los selectores exactos de los selectores de coincidencia parcial. 4. Cuando se haya elegido una raíz incorrecta, evita la detección automática mediante un selector explícito. 5. Confirma que las regiones protegidas de código o texto preformateado queden fuera de la eliminación genérica. 6. Vuelve a activar todas las etapas no relacionadas antes de aceptar la corrección. Da prioridad a las evidencias de la primera transición incorrecta frente a las conjeturas basadas en el documento final. No desactives permanentemente una limpieza amplia cuando un selector, un orden o una regla de elemento específicos puedan resolver el defecto. ## Trata el HTML de la página como hostil y bloquea la inyección de scripts Analiza el marcado mediante una función segura de construcción de documentos que no ejecute programas ni cargue recursos. Nunca asignes marcado no fiable directamente a un punto de análisis del navegador. - Retira de los atributos de enlaces y elementos multimedia los esquemas de URL capaces de ejecutar programas. - Elimina de los marcos el contenido de origen del documento incrustado. - Elimina los atributos de controladores de eventos. - Escapa todos los valores procedentes de la página antes de interpolarlos en el marcado generado. - Prefiere la creación de nodos y la asignación de atributos cuando hagan explícitos los requisitos de escape. - Sanea el resultado terminado como última protección, no como sustituto de una construcción segura. Supón que las comillas controladas por atacantes en URL de elementos multimedia, textos alternativos, imágenes de metadatos y descripciones pueden cerrar un atributo e inyectar otro. Cada extractor que genere marcado debe contar con una prueba adversaria de inyección de atributos. ## Demuestra cada arreglo con una página de prueba mínima que falle primero Para los defectos de extracción, crea el documento de prueba más pequeño que siga reproduciendo el fallo y acompáñalo del resultado esperado exacto. Mantén los recursos de prueba deterministas y libres de identificadores personales o específicos de la fuente. - Sustituye nombres reales, direcciones de correo electrónico, URL, identificadores de cuenta y texto reconocible por marcadores genéricos. - Incluye solo la estructura necesaria para activar la etapa de la secuencia que falla. - Para las correcciones de seguridad, incluye un atributo manipulado o una carga adversaria equivalente. - Confirma que el recurso de prueba falla antes de aplicar la corrección. - Aplica el cambio de comportamiento mínimo que haga que el recurso supere la prueba. - Ejecuta la prueba específica y el conjunto compartido de pruebas de extracción en todos los entornos compatibles. Un recurso de prueba que tiene éxito antes y después del cambio de implementación no demuestra que se haya corregido una regresión. Si no resulta práctico revertir la corrección, construye el resultado esperado o un control específico de manera que el comportamiento anterior siga demostrando el fallo. ## Prueba las diferencias de DOM y empaquetado en cada entorno Prueba el comportamiento en los límites donde difieren las implementaciones de documentos y los formatos de paquetes, aunque el algoritmo compartido no cambie. - Convierte las colecciones de elementos dinámicas en matrices estáticas antes de modificar el documento. - Verifica que las utilidades con nombre sigan siendo accesibles cuando un paquete solo exponga una exportación predeterminada. - Prueba los adaptadores asíncronos de servidor por separado de los adaptadores síncronos de navegador. - Prueba el comportamiento del entorno de ejecución periférico a través del límite real de solicitudes, sin suponer que es equivalente al navegador. - Verifica los modos de texto y estructurado de la línea de comandos con el mismo conjunto de recursos de prueba. - Mantén las soluciones provisionales específicas del entorno dentro de los adaptadores y cubre cada una con una prueba específica de compatibilidad. Cuando una corrección específica de un entorno cambie el resultado compartido, trátala como un cambio de comportamiento entre entornos y valida todos los adaptadores compatibles. No permitas que una solución provisional de empaquetado redefina silenciosamente el contrato público del extractor.