bgustscraper 0.2.0

Advanced semantic scraping engine with AI-driven compliance checks and legal terms validation
Documentation
# Motores de Raspado e Ingesta 📡

`bgustscraper` opera bajo un enfoque de **Orquestación Multi-Motor Híbrido** en el que se alternan y respaldan diferentes estrategias de red y de simulación de navegador para evadir sistemas anti-bot (Cloudflare, CAPTCHAs) y garantizar la descarga de documentos de forma robusta.

---

## 🖥️ Motor 1: Stealth Playwright Worker (`worker/index.js`)

Es el motor principal por defecto. Levanta una instancia de **Playwright** controlando Chromium de manera programática en segundo plano.

### Técnicas de Evasión Anti-Bot:
*   **Playwright Extra + Stealth Plugin:** Utiliza `playwright-extra` para inyectar configuraciones que imitan el comportamiento de un usuario humano.
*   **Overrides de Navegador Activos (Init Scripts):**
    *   Remueve la propiedad `navigator.webdriver` (la cual expone que el navegador está siendo controlado automatizadamente).
    *   Simula el objeto global `window.chrome` y sus propiedades.
    *   Inyecta listados realistas de lenguajes (`es-ES`, `es`, `en`) y plugins activos en el navegador.
*   **Scroll Suave Dinámico:** Evalúa y ejecuta de forma asíncrona un scroll vertical no infinito (máximo 5000px) para forzar la carga de imágenes, contenidos "lazy loading" y elementos inyectados dinámicamente mediante React, Vue o Angular.

---

## 📡 Motor 2: TLS Bypass (`worker/cloudscraper_worker.js`)

Si el Motor 1 falla debido a un bloqueo estricto de red, redireccionamientos infinitos o retos agresivos de Cloudflare, `bgustscraper` destruye de manera inmediata el subproceso de Playwright y levanta automáticamente el **Motor 2**.

### Características:
*   Utiliza la librería **Cloudscraper**, la cual realiza peticiones a nivel HTTP de bajo nivel.
*   Inyecta la negociación de firmas TLS idénticas a navegadores de escritorio comerciales para engañar a firewalls a nivel de red y superar retos anti-bot sin sobrecargar memoria levantando un navegador.
*   Entrega una velocidad de descarga de páginas estáticas exponencialmente superior a Playwright.

---

## 🕵️ Motor 3: Deep Scan (Interacción Dinámica de Descarga)

Cuando el scraper accede a un sitio web y no encuentra ningún enlace directo (`.pdf`, `.csv`, etc.) en la estructura original del HTML:
1. Activa de forma automatizada el modo **Deep Scan**.
2. Playwright escanea interactivamente el árbol DOM de la página renderizada buscando selectores y locators específicos (ej: `"Download PDF"`, `"Descargar"`, `.download-button`, etc.).
3. Ejecuta de forma física y secuencial un clic sobre cada botón dinámico de descarga.
4. Espera a que se complete el flujo de descarga del navegador (capturando redirecciones), y extrae de forma semántica los nuevos documentos obtenidos en caliente.