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
crwlquanto o SDK Pythoncrawl4ai
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
| Caminho | Conteúdo |
|---|---|
SKILL.md | Ponto 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 |
VERSION | Versão fixada da biblioteca Crawl4AI com a qual a habilidade foi verificada |
LICENSE-APACHE, LICENSE-MIT, LICENSE | Textos de licença dupla e resumo (SPDX MIT OR Apache-2.0) |
Documentação
- SKILL.md: documentação completa da habilidade com exemplos
- Guia da CLI: referência da interface de linha de comando
- Guia do SDK: referência rápida do SDK Python
- Referência completa do SDK: documentação completa da API (mais de 5900 linhas)
- Receitas: receitas de tarefas de ponta a ponta (fluxo de login, raspagem de sitemap, extração paginada)
- Filtros de conteúdo: trade-offs entre BM25, poda e LLMContentFilter
- Descoberta de URLs: sitemap, robots.txt, travessia de grafo de links
- Anti-detecção: scripts de inicialização, configuração de proxy, modo não detectado, anexação via CDP
- Solução de problemas: sintomas, causas, correções
- Escalonamento: ordem de consulta, critérios de parada versus continuação, exemplos práticos
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
| Script | Finalidade |
|---|---|
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.