Crawl4AI

Habilidade de raspagem web para Claude AI. Raspe sites, extraia dados estruturados com estratégias CSS/LLM, lide com conteúdo JavaScript dinâmico. Construído no crawl4ai com referência completa do SDK, scripts de exemplo e testes.

Documentação

Habilidade de Agente Crawl4AI

Raspagem de sites com uso intenso de JavaScript e extração de dados estruturados por meio de esquemas CSS reutilizáveis. Uma habilidade de agente portátil que encapsula a CLI e o SDK Python do Crawl4AI, escrita no formato SKILL.md da Anthropic e consumível por qualquer host de agente que carregue pacotes no formato SKILL.md (Claude Code, Codex, Cursor, OpenCode, Cline e outros).

Verificada com a versão 0.8.9 da biblioteca Crawl4AI (fixada em VERSION).

Recursos

  • Raspagem com suporte a JavaScript: renderização completa em navegador headless com padrões de wait_until=networkidle
  • Extração baseada em esquema: derive um esquema de seletores CSS uma vez via LLM e aplique-o para sempre, sem custo adicional de LLM
  • Extração via LLM: extração estruturada por solicitação quando não vale a pena derivar um esquema
  • Filtragem de conteúdo: filtro de relevância BM25 e poda baseada em qualidade, saída em markdown simples ou markdown ajustado
  • Raspagem em lote concorrente: processamento de múltiplas URLs com limites de concorrência por tarefa
  • Gerenciamento de sessões: sessões persistentes para fluxos autenticados e de múltiplas etapas
  • CLI e SDK: tanto a ferramenta de linha de comando crwl quanto o SDK Python crawl4ai

Instalação

Clone o repositório no diretório de habilidades do qual seu host de agente carrega:

# Claude Code
git clone https://github.com/brettdavies/crawl4ai-skill.git ~/.claude/skills/crawl4ai

Para outros hosts de agente (Codex, Cursor, OpenCode, Cline, agentes personalizados), clone em qualquer diretório que seu host verifique em busca de pacotes no formato SKILL.md. Consulte a documentação do seu host para saber a localização do diretório de habilidades. A raiz do pacote contém SKILL.md, portanto a habilidade é registrada automaticamente assim que o diretório estiver no caminho de busca de habilidades do host.

Pré-requisitos

A habilidade utiliza a biblioteca Python Crawl4AI, que deve estar instalada no ambiente de execução usado pelo seu agente:

pip install crawl4ai
crawl4ai-setup
crawl4ai-doctor

crawl4ai-doctor valida a instalação e confirma que um navegador headless está disponível.

Início 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 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())

Estrutura do pacote

CaminhoConteúdo
SKILL.mdPonto de entrada: condições de acionamento, padrões, roteamento para pipelines especializados
references/Nove guias de referência para CLI, SDK, extração, filtragem, anti-detecção, descoberta de URLs, escalonamento
scripts/Seis scripts auxiliares PEP 723 para fluxos de raspagem / extração / lote
templates/Modelos reutilizáveis em YAML/JSON para navegador, rastreador, filtros e estratégias de extração
evals/Quatro cenários de avaliação para verificar o comportamento da habilidade de ponta a ponta
fixtures/Fixture de referência para geração de esquema (HTML de exemplo, esquema esperado, saída JSON esperada)
tests/Suíte Pytest cobrindo raspagem básica, geração de markdown, extração, padrões avançados e fixtures
VERSIONVersão fixada da biblioteca Crawl4AI com a qual a habilidade foi verificada
LICENSE-APACHE, LICENSE-MIT, LICENSETextos de licença dupla e resumo (SPDX MIT OR Apache-2.0)

Documentação

Casos de uso comuns

Documentação para markdown

crwl https://docs.example.com -o markdown > docs.md

Monitoramento de produtos de e-commerce

# 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

Agregação de notícias com filtragem por relevância

for url in news1.com news2.com news3.com; do
  crwl "https://$url" -f templates/filter_bm25.yml -o markdown-fit
done

Scripts

ScriptFinalidade
scripts/basic_crawler.py <url>Uma URL → markdown + captura de tela
scripts/batch_crawl.py <urls.txt>Muitas URLs → arquivos markdown
scripts/batch_extract.py <urls.txt> <schema.json>Muitas URLs + esquema → JSON
scripts/generate_schema.py <url> "<instruction>"Derivar um esquema CSS reutilizável (chamada única de LLM)
scripts/extract_with_schema.py <url> <schema.json>Aplicar um esquema salvo (sem LLM)
scripts/extract_with_llm.py <url> "<instruction>"Extração via LLM por solicitação (custosa; apenas pontual)

Testes

cd tests
python run_all_tests.py

Licença

Licenciado duplamente sob a Apache License 2.0 (LICENSE-APACHE) ou a MIT License (LICENSE-MIT), à sua escolha. Identificador SPDX: MIT OR Apache-2.0. Consulte LICENSE para o aviso completo.

Contribuições

Contribuições são bem-vindas. Abra um pull request.

Histórico de alterações

Consulte CHANGELOG.md.