# Browser Extract > Extrae datos estructurados vía plantillas guardadas o consultas DOM puntuales, con puertas obligatorias de AIDefence para PII e inyección de prompts antes de devolver el contenido al modelo. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/browser-extract Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/browser-extract.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: el mes pasado Coste de contexto: 41 tok instalada, 888 tok al activarse, 888 tok con todos los archivos del bundle Bundle: 1 archivo, 3 KB Permisos que pide: mcp__plugin_ruflo-core_ruflo__browser_open mcp__plugin_ruflo-core_ruflo__browser_close mcp__plugin_ruflo-core_ruflo__browser_get-text mcp__plugin_ruflo-core_ruflo__browser_get-value mcp__plugin_ruflo-core_ruflo__browser_eval mcp__plugin_ruflo-core_ruflo__browser_snapshot mcp__plugin_ruflo-core_ruflo__browser_screenshot mcp__plugin_ruflo-core_ruflo__browser_scroll mcp__plugin_ruflo-core_ruflo__browser_wait mcp__plugin_ruflo-core_ruflo__browser_click mcp__plugin_ruflo-core_ruflo__aidefence_has_pii mcp__plugin_ruflo-core_ruflo__aidefence_is_safe mcp__plugin_ruflo-core_ruflo__aidefence_scan bash read write ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add ruvnet/ruflo --skill browser-extract --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill browser-extract --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill browser-extract --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill browser-extract --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill browser-extract --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill browser-extract --agent cline ``` ## Qué hace - Extrae datos estructurados de una página web mediante plantillas guardadas (browser-templates) o consultas DOM puntuales. - Pasa cada cadena extraída por las puertas de AIDefence: detección de PII antes de guardarla en AgentDB, y de prompt injection antes de devolverla al modelo. - Permite guardar la extracción como plantilla reutilizable con --save-template para volver a aplicarla en el mismo host. ## Cuándo usarla - Necesitas extraer texto, datos de tabla o atributos de páginas renderizadas, o crear una plantilla reutilizable para un scraping recurrente. ## Qué la activa - "Extrae el precio y el título de estos productos" - "Aplica la plantilla news_article a esta URL" ## Antes de instalar - Requiere las herramientas MCP browser_* y aidefence_* activas; si no lo están, la skill se niega a correr. ## Archivos - SKILL.md — 3 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. # Browser Extract Pull structured data out of a web page. Replaces the older `browser-scrape` skill with three new guarantees: 1. The session is a recorded RVF container (composes `browser-record`). 2. Successful extractions persist as `browser-templates` for reuse. 3. **Every string** passes AIDefence before AgentDB store and before flowing back to the model. ## When to use - Extracting text, table data, or attribute values from rendered web pages. - Building a reusable template for a recurring scrape pattern. - Re-running a known template against a new URL on the same host. ## Steps 1. **Open a recorded session** via `browser-record` (do not call `browser_open` directly). 2. **Wait for content** with `browser_wait` for dynamic rendering. 3. **Choose a path**: - **Template path** (`--template `): retrieve from AgentDB and apply. ```bash npx -y @claude-flow/cli@latest memory retrieve --namespace browser-templates --key "" ``` Run the recipe's selector chain in order; produces structured JSON. - **One-shot path**: prefer `browser_snapshot` for accessibility trees over raw HTML; fall back to `browser_eval` with `document.querySelectorAll` for bulk lookups. 4. **AIDefence pre-storage**: every extracted string passes the PII gate. ```bash # Pseudocode — mcp__plugin_ruflo-core_ruflo__aidefence_has_pii returns true/false per string. for s in $extracted; do PII=$(call aidefence_has_pii "$s") if [[ "$PII" == "true" ]]; then redact_to_placeholder "$s"; fi done ``` Record `pii_redactions` in the session manifest. 5. **AIDefence prompt-injection**: before returning extracted text to the model, call `aidefence_is_safe`. Quarantine hits to `findings.md`; return only the safe portion. 6. **Persist the template** if `--save-template ` was passed: ```bash npx -y @claude-flow/cli@latest memory store --namespace browser-templates \ --key "" --value "{host:..., selector_chain:[...], post_process:...}" ``` 7. **End the session** via the recorded session's session-end hook. ## Caveats - Never bypass the AIDefence gates. If `aidefence_*` MCP tools are not initialized, refuse the run and surface a doctor remediation. - Templates are host-scoped. A `news_article` template for `theguardian.com` is not portable to `nytimes.com` without re-validation. - For paginated extractions, persist the cursor between pages in the trajectory step args so the trace alone is replayable. - This skill subsumes the legacy `browser-scrape` skill; `browser-scrape/SKILL.md` is now a thin shim that delegates here. It will be removed in plugin v0.3.0. ## Dónde encaja - Categoría: [Automatización](https://skillsagentes.com/categorias/automatizacion.md) — Flujos de varios pasos que se ejecutan sin supervisión. - Creador: [ruvnet](https://skillsagentes.com/creators/ruvnet.md) — 275 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Harness Gepa](https://skillsagentes.com/skills/ruvnet/ruflo/harness-gepa.md): Inspecciona y audita genomas GEPA: carga y valida un genoma, renderiza el system prompt que compila, o clasifica los modos de fallo de una transcripción de ejecución. - [Deepseek Reason](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-reason.md): Completion en modo razonamiento contra deepseek-reasoner (R1) de DeepSeek. Devuelve el chain-of-thought por separado de la respuesta final. Lee DEEPSEEK_API_KEY y degrada si falta o la API no responde. - [Deepseek Chat](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-chat.md): Completion de un solo turno contra el modelo deepseek-chat de DeepSeek vía /v1/chat/completions. Lee DEEPSEEK_API_KEY y degrada con status:degraded si falta o la API no responde. Para tareas sin razonamiento. - [Adr Index](https://skillsagentes.com/skills/ruvnet/ruflo/adr-index.md): Construye o reconstruye el índice de ADRs y su grafo de dependencias ejecutando scripts/import.mjs, en vez de cientos de llamadas MCP. - [Agntcy Status](https://skillsagentes.com/skills/ruvnet/ruflo/agntcy-status.md): Muestra el estado de la integración AGNTCY/SLIM/CASA: si los paquetes están instalados, qué transporte está activo y si el enforcement de CASA está habilitado. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)