Crawl4AI - Web Crawler Inteligente de Código Aberto Otimizado para LLMs
Visão Geral do Projeto
Crawl4AI é um web crawler de alta velocidade e pronto para IA, feito sob medida para LLMs, agentes de IA e pipelines de dados. O projeto é totalmente de código aberto, flexível e construído para desempenho em tempo real, oferecendo aos desenvolvedores velocidade, precisão e facilidade de implantação incomparáveis.
Principais Características
🤖 Construído para LLMs
- Gera Markdown inteligente e limpo otimizado para aplicações RAG e de ajuste fino
- Fornece conteúdo estruturado e limpo, adequado para processamento de modelos de IA
- Suporta todos os LLMs (de código aberto e proprietários) para extração de dados estruturados
⚡ Velocidade Relâmpago
- Oferece resultados 6 vezes mais rápidos, com desempenho em tempo real e econômico
- Baseado em arquitetura assíncrona, suporta processamento simultâneo em larga escala
- Agendador adaptativo de memória, ajusta dinamicamente a simultaneidade com base na memória do sistema
🌐 Controle Flexível do Navegador
- Gerenciamento de sessão, suporte a proxy e hooks personalizados
- Suporta o navegador próprio do usuário, controle total, evitando a detecção de bots
- Gerenciamento de perfil do navegador, salva o estado de autenticação, cookies e configurações
- Suporta múltiplos navegadores Chromium, Firefox e WebKit
🧠 Inteligência Heurística
- Usa algoritmos avançados para extração eficiente, reduzindo a dependência de modelos caros
- Filtragem por algoritmo BM25, extrai informações essenciais e remove conteúdo irrelevante
- Limpeza inteligente de conteúdo e tratamento de ruído
Principais Módulos Funcionais
📝 Geração de Markdown
- Markdown Limpo: Gera Markdown estruturado com formatação precisa
- Markdown Adaptado: Remove ruído e partes irrelevantes com base em filtragem heurística
- Citações e Referências: Converte links de página em listas de referência numeradas com citações limpas
- Estratégias Personalizadas: Usuários podem criar estratégias de geração de Markdown para necessidades específicas
📊 Extração de Dados Estruturados
- Extração Impulsionada por LLM: Suporta todos os LLMs para extração de dados estruturados
- Estratégias de Fragmentação: Implementa fragmentação (baseada em tópico, expressões regulares, nível de frase) para processamento de conteúdo direcionado
- Similaridade de Cosseno: Encontra blocos de conteúdo relevantes com base em consultas do usuário para extração semântica
- Extração por Seletor CSS: Usa XPath e seletores CSS para extração rápida de padrões
- Definição de Esquema: Define esquemas personalizados para extrair JSON estruturado de padrões repetitivos
🔎 Funcionalidades de Crawling e Scraping
- Suporte a Mídia: Extrai imagens, áudio, vídeo e formatos de imagem responsivos
- Crawling Dinâmico: Executa JavaScript e aguarda extração de conteúdo dinâmico assíncrono/síncrono
- Funcionalidade de Captura de Tela: Captura capturas de tela da página durante o crawling para depuração ou análise
- Crawling de Dados Brutos: Processa diretamente HTML bruto ou arquivos locais
- Extração Abrangente de Links: Extrai links internos, externos e conteúdo de iframe incorporado
- Hooks Personalizáveis: Define hooks em cada etapa para personalizar o comportamento do crawler
- Mecanismo de Cache: Armazena dados em cache para aumentar a velocidade e evitar aquisições repetidas
- Tratamento de Carregamento Preguiçoso: Aguarda o carregamento completo das imagens, garantindo que nenhum conteúdo seja perdido devido ao carregamento preguiçoso
🚀 Implantação e Integração
- Configuração Dockerizada: Imagem Docker otimizada com servidor FastAPI para fácil implantação
- Autenticação Segura: Autenticação de token JWT integrada para garantir a segurança da API
- Gateway de API: Implantação com um clique com fluxo de trabalho de API com autenticação de token segura
- Arquitetura Escalável: Projetado para produção em larga escala, otimizado para desempenho do servidor
- Implantação na Nuvem: Fornece configurações de implantação prontas para uso para as principais plataformas de nuvem
Instalação
Instalação do Pacote Python
pip install -U crawl4ai
crawl4ai-setup
crawl4ai-doctor
Implantação Docker
docker pull unclecode/crawl4ai:0.6.0-rN
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:0.6.0-rN
# webUI:http://localhost:11235/playground
Exemplos de Uso Básico
Scraping Simples de Página Web
import asyncio
from crawl4ai import *
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url="https://www.nbcnews.com/business",
)
print(result.markdown)
if __name__ == "__main__":
asyncio.run(main())
Interface de Linha de Comando
crwl https://www.nbcnews.com/business -o markdown
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10
crwl https://www.example.com/products -q "Extract all product prices"
Extração de Dados Estruturados com LLM
import os
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode, LLMConfig
from crawl4ai.extraction_strategy import LLMExtractionStrategy
from pydantic import BaseModel, Field
class OpenAIModelFee(BaseModel):
model_name: str = Field(..., description="Name of the OpenAI model.")
input_fee: str = Field(..., description="Fee for input token for the OpenAI model.")
output_fee: str = Field(..., description="Fee for output token for the OpenAI model.")
async def main():
browser_config = BrowserConfig(verbose=True)
run_config = CrawlerRunConfig(
word_count_threshold=1,
extraction_strategy=LLMExtractionStrategy(
llm_config = LLMConfig(provider="openai/gpt-4o", api_token=os.getenv('OPENAI_API_KEY')),
schema=OpenAIModelFee.schema(),
extraction_type="schema",
instruction="""From the crawled content, extract all mentioned model names along with their fees for input and output tokens.
Do not miss any models in the entire content. One extracted model JSON format should look like this:
{"model_name": "GPT-4", "input_fee": "US$10.00 / 1M tokens", "output_fee": "US$30.00 / 1M tokens"}."""
),
cache_mode=CacheMode.BYPASS,
)
async with AsyncWebCrawler(config=browser_config) as crawler:
result = await crawler.arun(
url='https://openai.com/api/pricing/',
config=run_config
)
print(result.extracted_content)
if __name__ == "__main__":
asyncio.run(main())
Recursos da Versão Mais Recente (v0.6.0)
🌍 Crawling com Consciência Mundial
Defina localização geográfica, idioma e fuso horário para obter conteúdo específico da região real:
run_config = CrawlerRunConfig(
url="https://browserleaks.com/geo",
locale="en-US",
timezone_id="America/Los_Angeles",
geolocation=GeolocationConfig(
latitude=34.0522,
longitude=-118.2437,
accuracy=10.0,
)
)
📊 Extração de Tabela para DataFrame
Extraia tabelas HTML diretamente para CSV ou pandas DataFrame:
results = await crawler.arun(
url="https://coinmarketcap.com/?page=1",
config=crawl_config
)
raw_df = pd.DataFrame()
for result in results:
if result.success and result.media["tables"]:
raw_df = pd.DataFrame(
result.media["tables"][0]["rows"],
columns=result.media["tables"][0]["headers"],
)
break
🚀 Pool de Navegadores
Use instâncias de navegador pré-aquecidas no lançamento da página, reduzindo a latência e o uso de memória
🔌 Integração MCP
Conecte-se a ferramentas de IA, como Claude Code, por meio do Modelo de Protocolo de Contexto:
claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse
Arquitetura Técnica
Componentes Principais
- Mecanismo de Crawling Assíncrono: Arquitetura assíncrona de alto desempenho baseada em Playwright
- Estratégias de Filtragem de Conteúdo: Vários algoritmos de filtragem, incluindo filtros de poda e filtros BM25
- Estratégias de Extração: Suporta seletores CSS, LLMs e estratégias de extração personalizadas
- Gerador de Markdown: Converte conteúdo inteligente em formato Markdown amigável para IA
- Gerenciamento de Navegador: Gerenciamento completo do ciclo de vida do navegador e controle de sessão
Métodos de Extração Suportados
- Extração por Seletor CSS: Extração de dados estruturados rápida e precisa
- Extração por LLM: Usa grandes modelos de linguagem para compreensão inteligente de conteúdo
- Execução de JavaScript: Processamento e interação de conteúdo dinâmico
- Expressões Regulares: Correspondência de padrões e processamento de texto
- Seletores XPath: Localização avançada de elementos DOM
Vantagens de Desempenho
- Aumento de Velocidade de 6x: Comparado com ferramentas de crawling tradicionais
- Otimização de Memória: Gerenciamento inteligente de memória e coleta de lixo
- Processamento Concorrente: Suporta crawling concorrente de milhares de URLs
- Mecanismo de Cache: Cache inteligente reduz solicitações repetidas
- Gerenciamento de Recursos: Alocação e limitação de recursos adaptáveis
Casos de Uso
Ciência de Dados e Pesquisa
- Coleta de artigos acadêmicos e dados de pesquisa
- Pesquisa de mercado e análise da concorrência
- Mineração de dados de mídia social
IA e Aprendizado de Máquina
- Coleta e pré-processamento de dados de treinamento
- Aquisição de conteúdo do sistema RAG
- Construção de grafo de conhecimento
Inteligência de Negócios
- Monitoramento e comparação de preços
- Monitoramento de notícias e sentimento
- Agregação de dados corporativos
Gerenciamento de Conteúdo
- Migração e backup de sites
- Agregação e distribuição de conteúdo
- Análise e otimização de SEO
Roteiro de Desenvolvimento
- Crawling de Gráfico: Use algoritmos de pesquisa de gráfico para travessia inteligente de sites
- Crawling Orientado a Problemas: Descoberta de páginas da web e extração de conteúdo orientadas por linguagem natural
- Crawling com Otimização de Conhecimento: Maximize a aquisição de conhecimento enquanto minimiza a extração de dados
- Crawling de Agente: Sistema autônomo para operações de crawling complexas de várias etapas
- Gerador de Esquema Automatizado: Converte linguagem natural em esquemas de extração
- Crawlers Específicos de Domínio: Extratores pré-configurados para plataformas comuns
Comunidade e Suporte
Crawl4AI tem uma comunidade de código aberto ativa para suporte, incentivando a contribuição de código, o relato de problemas e o fornecimento de sugestões. O projeto segue a licença Apache 2.0, é totalmente de código aberto e gratuito para uso.
Resumo
Crawl4AI representa o mais recente desenvolvimento em tecnologia de web crawling, especialmente no contexto da era da IA. Ele não apenas fornece todas as funções dos crawlers tradicionais, mas também é otimizado especificamente para aplicações de IA modernas, tornando-o a escolha ideal para cientistas de dados, pesquisadores de IA e desenvolvedores. Através de seus recursos de código aberto e comunidade ativa, o Crawl4AI está promovendo a democratização e a padronização da tecnologia de extração de dados da web.