50 lines
3.0 KiB
Markdown
50 lines
3.0 KiB
Markdown
---
|
|
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`.
|