/ Directorio / Playground / web-scraper
● Comunidad yfe404 ⚡ Instantáneo

web-scraper

por yfe404 · yfe404/web-scraper

Scraper de reconocimiento por fases que prefiere APIs > mapas de sitio > HTML, elige la plantilla Apify correcta (Cheerio vs Playwright), y solo escala anti-detección cuando las señales lo justifican.

Web scraping inteligente a través de Claude Code. Ejecuta un reconocimiento de 5 fases (Fases 0–5) que intenta la ruta de extracción más barata primero: APIs públicas, feeds de mapas de sitio, datos estructurados. Solo cuando esos fallan considera automatización de navegador, y solo cuando aparecen señales de protección agrega sigilo. Construido alrededor del desarrollo de Apify Actor orientado a TypeScript, con plantillas (Cheerio para estático, Playwright para JS-intensivo).

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

web-scraper-skill.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "web-scraper-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/yfe404/web-scraper",
        "~/.claude/skills/web-scraper"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "web-scraper-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/yfe404/web-scraper",
        "~/.claude/skills/web-scraper"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "web-scraper-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/yfe404/web-scraper",
        "~/.claude/skills/web-scraper"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "web-scraper-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/yfe404/web-scraper",
        "~/.claude/skills/web-scraper"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "web-scraper-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/yfe404/web-scraper",
        "~/.claude/skills/web-scraper"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "web-scraper-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/yfe404/web-scraper",
          "~/.claude/skills/web-scraper"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add web-scraper-skill -- git clone https://github.com/yfe404/web-scraper ~/.claude/skills/web-scraper

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: web-scraper

Extrae un sitio de listados estático en un dataset estructurado

👤 Ingenieros de datos que extraen datos públicos (directorios, listas de precios, registros públicos) ⏱ ~45 min intermediate

Cuándo usarlo: Necesitas un dataset de un sitio público que no tiene API.

Requisitos previos
  • Skill instalado — git clone https://github.com/yfe404/web-scraper ~/.claude/skills/web-scraper
  • Node 20 para Apify Actors — nvm install 20
Flujo
  1. Deja que el skill haga el reconocimiento
    Usa web-scraper. Objetivo: https://example.com/listings. Quiero nombre + URL + categoría. Reconocimiento primero — cuéntame la ruta de extracción más barata.✓ Copiado
    → El skill reporta: 'sitemap.xml disponible, usa Cheerio'
  2. Arma la estructura del Apify Actor
    Arma la estructura de un actor Apify Cheerio de TypeScript para esa extracción.✓ Copiado
    → Árbol del actor + main.ts listo para ejecutar
  3. Ejecuta e itera
    Ejecuta localmente en 10 páginas; ajusta los selectores si es necesario.✓ Copiado
    → Salida JSON limpia

Resultado: Un Apify Actor que puedes desplegar para scrapes programados.

Errores comunes
  • Saltar a Playwright cuando Cheerio sería suficiente — Confía en el reconocimiento — navegadores con interfaz cuestan 10x más innecesariamente
Combinar con: apify · filesystem

Descubre y usa una API JSON no documentada del sitio en lugar de HTML

👤 Desarrolladores de scrapers que quieren confiabilidad ⏱ ~30 min intermediate

Cuándo usarlo: La página es una SPA y el HTML es desordenado, pero las llamadas XHR son JSON limpio.

Flujo
  1. Ejecuta la fase de descubrimiento de API
    Usa web-scraper fase 1 — descubrimiento de API en https://example.com/app. Enumera endpoints XHR/fetch.✓ Copiado
    → Lista de endpoints con payloads observados
  2. Construye el actor basado en JSON
    Genera un actor que golpea esos endpoints directamente con auth según sea necesario.✓ Copiado
    → Actor basado en fetch ligero

Resultado: Un scrape mucho más estable que el análisis HTML.

Errores comunes
  • APIs privadas/session-auth que se rompen cuando el token rota — Planifica lógica de actualización de token o retrocede al flujo del navegador

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

web-scraper-skill + apify

Despliega el actor armado a Apify para ejecuciones programadas

Despliega este actor a mi cuenta de Apify y programalo diariamente.✓ Copiado
web-scraper-skill + filesystem

Mantén el código del actor en el repo junto a la app consumidora

Arma la estructura en scrapers/ y haz commit con el proyecto principal.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
recon url Siempre primero 0
scaffold_actor template (cheerio|playwright), target Después de que el reconocimiento elige la plantilla 0
record_session url Depurando sitios dinámicos 0
run_local actor path, limit Fase de iteración 0

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Apify tiene sus propias cuotas de cómputo + proxy
Tokens por llamada
Moderado — loops de armado e iteración
Monetario
Skill gratis; costos de Apify aparte
Consejo
Prefiere Cheerio — uno de los perfiles de ejecución más baratos en Apify

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: Token API de Apify con actor:read + actor:write
Almacenamiento de credenciales: APIFY_TOKEN en env
Salida de datos: Cualquier sitio que selecciones + plataforma Apify

Resolución de problemas

Errores comunes y soluciones

Cheerio devuelve selectores vacíos

El contenido se renderiza con JS — ejecuta de nuevo el reconocimiento, espera la plantilla Playwright

Playwright agota el tiempo

Aumenta el timeout de navegación; considera esperar un selector específico en lugar de networkidle

Página 403 / bot-block

Detente y reconsidera. Esta es la señal legítima para revisar los ToS, no una pista para escalar sigilo.

Alternativas

web-scraper vs otros

AlternativaCuándo usarlaContrapartida
Consola Apify directaYa sabes qué plantilla necesitasSin fase de reconocimiento
firecrawlSolo necesitas markdown de una página, no extracción estructuradaSin armado de actor

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills