Crawl4AI
Habilidad de web scraping para Claude AI. Rastrea sitios web, extrae datos estructurados con estrategias CSS/LLM, maneja contenido dinámico de JavaScript. Construido sobre crawl4ai con referencia completa del SDK, scripts de ejemplo y pruebas.
Documentación
Habilidad de Agente Crawl4AI
Extrae sitios web con mucho JavaScript y extrae datos estructurados mediante esquemas CSS reutilizables. Una habilidad de agente portátil que envuelve la CLI y el SDK de Python de Crawl4AI, escrita en el formato SKILL.md de Anthropic y consumible por cualquier host de agente que cargue paquetes en formato SKILL.md (Claude Code, Codex, Cursor, OpenCode, Cline y otros).
Verificada contra la versión 0.8.9 de la librería Crawl4AI (fijada en VERSION).
Características
- Rastreo consciente de JavaScript: renderizado completo con navegador headless con valores predeterminados de
wait_until=networkidle - Extracción basada en esquemas: deriva un esquema de selectores CSS una vez mediante LLM, aplícalo para siempre sin costo adicional de LLM
- Extracción con LLM: extracción estructurada por solicitud cuando no vale la pena derivar un esquema
- Filtrado de contenido: filtro de relevancia BM25 y poda basada en calidad, markdown simple o salida markdown-fit
- Rastreo por lotes concurrente: procesamiento de múltiples URL con límites de concurrencia por trabajo
- Gestión de sesiones: sesiones persistentes para flujos autenticados y de múltiples pasos
- CLI y SDK: tanto la herramienta de línea de comandos
crwlcomo el SDK de Pythoncrawl4ai
Instalación
Clona el repositorio en el directorio de habilidades desde el que carga tu host de agente:
# Claude Code
git clone https://github.com/brettdavies/crawl4ai-skill.git ~/.claude/skills/crawl4ai
Para otros hosts de agente (Codex, Cursor, OpenCode, Cline, agentes personalizados), clona en el directorio que tu host
escanea en busca de paquetes en formato SKILL.md. Consulta la documentación de tu host para conocer la ubicación del directorio de habilidades. La raíz del paquete
contiene SKILL.md, por lo que la habilidad se registra automáticamente una vez que el directorio está en la ruta de búsqueda de habilidades del host.
Requisitos previos
La habilidad invoca la librería de Python Crawl4AI, que debe estar instalada en el entorno de ejecución que usa tu agente:
pip install crawl4ai
crawl4ai-setup
crawl4ai-doctor
crawl4ai-doctor valida la instalación y confirma que hay un navegador headless disponible.
Inicio rápido
CLI:
crwl https://example.com -c "wait_until=networkidle,page_timeout=60000" -o markdown
crwl https://example.com -o json -v --bypass-cache
SDK de Python:
import asyncio
from crawl4ai import AsyncWebCrawler
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun("https://example.com")
print(result.markdown[:500])
asyncio.run(main())
Estructura del paquete
| Ruta | Contenido |
|---|---|
SKILL.md | Punto de entrada: condiciones de activación, valores predeterminados, enrutamiento a pipelines especializados |
references/ | Nueve guías de referencia para CLI, SDK, extracción, filtrado, anti-detección, descubrimiento de URL, escalamiento |
scripts/ | Seis scripts auxiliares PEP 723 para flujos de trabajo de rastreo / extracción / lote |
templates/ | Plantillas YAML/JSON reutilizables para navegador, rastreador, filtros y estrategias de extracción |
evals/ | Cuatro escenarios de evaluación para verificar el comportamiento de la habilidad de extremo a extremo |
fixtures/ | Fixture de referencia para generación de esquemas (HTML de muestra, esquema esperado, salida JSON esperada) |
tests/ | Suite de Pytest que cubre rastreo básico, generación de markdown, extracción, patrones avanzados y fixtures |
VERSION | Versión fijada de la librería Crawl4AI contra la que se verifica la habilidad |
LICENSE-APACHE, LICENSE-MIT, LICENSE | Textos de licencia dual y resumen (SPDX MIT OR Apache-2.0) |
Documentación
- SKILL.md: documentación completa de la habilidad con ejemplos
- Guía de CLI: referencia de la interfaz de línea de comandos
- Guía de SDK: referencia rápida del SDK de Python
- Referencia completa del SDK: documentación completa de la API (más de 5900 líneas)
- Recetas: recetas de tareas de extremo a extremo (flujo de inicio de sesión, rastreo de sitemap, extracción paginada)
- Filtros de contenido: compensaciones entre BM25, poda y LLMContentFilter
- Descubrimiento de URL: sitemap, robots.txt, recorrido del grafo de enlaces
- Anti-Detección: scripts de inicialización, configuración de proxy, modo no detectado, adjunto de CDP
- Solución de problemas: síntomas, causas, correcciones
- Escalamiento: orden de búsqueda, criterios de detención vs. continuación, ejemplos trabajados
Casos de uso comunes
Documentación a markdown
crwl https://docs.example.com -o markdown > docs.md
Monitoreo de productos de comercio electrónico
# Derive the schema once (uses LLM)
./scripts/generate_schema.py https://shop.example.com "products with name, price, image" shop_schema.json
# Apply the saved schema (no LLM cost per request)
./scripts/extract_with_schema.py https://shop.example.com shop_schema.json products.json
Agregación de noticias con filtrado de relevancia
for url in news1.com news2.com news3.com; do
crwl "https://$url" -f templates/filter_bm25.yml -o markdown-fit
done
Scripts
| Script | Propósito |
|---|---|
scripts/basic_crawler.py <url> | Una URL → markdown + captura de pantalla |
scripts/batch_crawl.py <urls.txt> | Muchas URL → archivos markdown |
scripts/batch_extract.py <urls.txt> <schema.json> | Muchas URL + esquema → JSON |
scripts/generate_schema.py <url> "<instruction>" | Deriva un esquema CSS reutilizable (llamada LLM única) |
scripts/extract_with_schema.py <url> <schema.json> | Aplica un esquema guardado (sin LLM) |
scripts/extract_with_llm.py <url> "<instruction>" | Extracción LLM por solicitud (costosa; solo para una vez) |
Pruebas
cd tests
python run_all_tests.py
Licencia
Con licencia dual bajo Apache License 2.0 (LICENSE-APACHE) o MIT License (LICENSE-MIT) a
tu elección. Identificador SPDX: MIT OR Apache-2.0. Consulta LICENSE para el aviso completo.
Contribuciones
Las contribuciones son bienvenidas. Abre una solicitud de extracción.
Registro de cambios
Consulta CHANGELOG.md.