--- name: web_scraping description: "Plataforma de control de navegador y automatización web sobre Chrome via CDP en Linux nativo. Base reutilizable para scraping, automatización de tareas web, descubrimiento de endpoints/APIs para pentesting y captura de tráfico." tags: [scraping, browser, cdp, automation, pentesting, linux] repo_url: "https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/dataforge/web_scraping" --- ## Notas Proyecto paraguas, de uso continuo, para todo lo relacionado con control de navegador y trabajo sobre la web. No está atado a ningún dominio concreto: cualquier tarea de scraping, automatización o reconocimiento web se hace y se capitaliza aquí. Construido 100% sobre Linux nativo (sin dependencia de WSL/Windows). El control del navegador se hace con Chrome DevTools Protocol (CDP) crudo a través de las funciones del dominio `browser` del registry, no con Playwright/Selenium. ### Para qué sirve - **Web scraping**: extracción de datos de páginas y APIs, con o sin login, incluyendo SPAs. - **Automatización web**: rellenar formularios, flujos multi-paso, tareas repetitivas en webapps. - **Descubrimiento de endpoints (pentesting / recon)**: capturar el tráfico HTTP/WS que genera una página (`cdp_har_record` + extensión mitm de `web_proxy`) para mapear las APIs reales que usa, detectar endpoints ocultos y analizar peticiones. - **Captura de tráfico**: interceptación y registro de flujos vía mitmproxy para análisis posterior. - **Monitoreo / testing**: vigilar cambios en páginas, validar comportamiento, smoke de webs. ### Componentes | Componente | Tipo | Estado | Qué hace | |---|---|---|---| | `script_navegador` | app (Go) | activo | Controlador de navegador: modo CLI rápido (comandos sueltos: open/click/type/eval/shot/tabs) + runner de scripts YAML. Compone funciones `cdp_*` del registry. | | `web_proxy` | app (bash) | externo | Proxy de interceptación HTTP/HTTPS (mitmproxy). Vive en `apps/web_proxy`; provee la captura de tráfico que consume este proyecto. | | vaults | datos | reservado | Datos extraídos por cada campaña (scrapes, HARs, listados, capturas). | | analysis | exploración | reservado | Notebooks sobre los datos extraídos / capturados. | ### Filosofía - **Registry-first**: toda capacidad reutilizable de navegador (lanzar Chrome, navegar, click, type, screenshot, esperas inteligentes, captura HAR) vive en `functions/browser/` del registry. La app solo orquesta: parsea comandos y compone funciones. Lo que sirva para una campaña sirve para todas. - **Esperas inteligentes siempre**: los scripts y comandos esperan condiciones reales del DOM (readyState, selector presente, DOM estabilizado) en lugar de `sleep` ciegos. Ver `CONVENTIONS.md`. - **Linux nativo**: lanzamiento directo de `chromium`/`google-chrome` con `os/exec`, sin `wslpath`, sin `chrome.exe`, sin proxies WSL↔Windows. Las reglas operativas (tamaño de ventana, perfil del proyecto, headless, jitter, captura, movimientos realistas, proxys rotativos, CDP en el navegador del usuario) están en `CONVENTIONS.md`.