Detalhes do Projeto Firecrawl
Visão Geral do Projeto
Firecrawl é um serviço de API que recebe URLs, rastreia-os e os converte em markdown limpo ou dados estruturados. Ele rastreia todas as subpáginas acessíveis, fornecendo dados limpos para cada página. Não requer sitemaps.
Funcionalidades Principais
1. Raspagem de Páginas Web (Scraping)
- Raspa um único URL e obtém conteúdo em formato pronto para LLM
- Suporta vários formatos de saída: markdown, dados estruturados, capturas de tela, HTML
- Extração de dados estruturados via LLM
2. Rastreamento de Sites (Crawling)
- Rastreia todos os URLs de uma página web e retorna conteúdo em formato pronto para LLM
- Descobre todas as subpáginas acessíveis sem a necessidade de um sitemap
- Suporta profundidade de rastreamento personalizada e regras de exclusão
3. Mapeamento de Sites (Map)
- Insere um site para obter todos os URLs do site - velocidade extremamente rápida
- Suporta pesquisa por padrões de URL específicos
4. Busca na Web (Search)
- Busca na web e obtém conteúdo completo dos resultados
- Parâmetros de busca personalizáveis (idioma, país, etc.)
- Opção de recuperar vários formatos de conteúdo dos resultados da busca
5. Extração de Dados (Extract)
- Usa IA para obter dados estruturados de uma única página, várias páginas ou de todo um site
- Suporta a definição de regras de extração por meio de prompts e esquemas JSON
- Suporta padrões de URL curinga
6. Processamento em Lote (Batching)
- Novo endpoint assíncrono para raspar milhares de URLs simultaneamente
- Envia trabalhos de raspagem em lote e retorna o ID do trabalho para verificar o status
Características Técnicas
Formato Pronto para LLM
- Markdown: Formato de documento limpo
- Dados Estruturados: Dados extraídos em formato JSON
- Capturas de Tela: Captura visual da página
- HTML: Conteúdo HTML original
- Links e Metadados: Extração de informações da página
Tratamento de Situações Complexas
- Proxies e Mecanismos Anti-Robô: Ignora restrições de acesso
- Conteúdo Dinâmico: Lida com conteúdo renderizado em JavaScript
- Análise de Saída: Análise inteligente de conteúdo
- Orquestração: Gerenciamento de processos complexos
Capacidade de Personalização
- Exclusão de Tags: Filtra conteúdo indesejado
- Rastreamento Autenticado: Rastreia conteúdo que requer autenticação usando cabeçalhos personalizados
- Profundidade Máxima de Rastreamento: Controla o escopo do rastreamento
- Análise de Mídia: Suporta PDF, DOCX, imagens
Funções Interativas (Actions)
Várias ações podem ser executadas antes de raspar o conteúdo:
- Clique: Clica em elementos da página
- Rolar: Operações de rolagem da página
- Entrada: Entrada de texto
- Esperar: Espera o carregamento da página
- Tecla: Operações de teclado
Exemplos de Uso da API
Rastrear um Site
curl -X POST https://api.firecrawl.dev/v1/crawl \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"limit": 10,
"scrapeOptions": {
"formats": ["markdown", "html"]
}
}'
Raspar uma Única Página
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"formats" : ["markdown", "html"]
}'
Extração de Dados Estruturados
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://www.mendable.ai/",
"formats": ["json"],
"jsonOptions": {
"schema": {
"type": "object",
"properties": {
"company_mission": {"type": "string"},
"supports_sso": {"type": "boolean"},
"is_open_source": {"type": "boolean"},
"is_in_yc": {"type": "boolean"}
},
"required": ["company_mission", "supports_sso", "is_open_source", "is_in_yc"]
}
}
}'
Suporte a SDK
Python SDK
pip install firecrawl-py
from firecrawl.firecrawl import FirecrawlApp
from firecrawl.firecrawl import ScrapeOptions
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
# Raspar um Site
scrape_status = app.scrape_url(
'https://firecrawl.dev',
formats=["markdown", "html"]
)
print(scrape_status)
# Rastrear um Site
crawl_status = app.crawl_url(
'https://firecrawl.dev',
limit=100,
scrape_options=ScrapeOptions(formats=["markdown", "html"]),
poll_interval=30
)
print(crawl_status)
Node.js SDK
npm install @mendable/firecrawl-js
import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';
const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});
// Raspar um Site
const scrapeResponse = await app.scrapeUrl('https://firecrawl.dev', {
formats: ['markdown', 'html'],
});
if (scrapeResponse) {
console.log(scrapeResponse)
}
// Rastrear um Site
const crawlResponse = await app.crawlUrl('https://firecrawl.dev', {
limit: 100,
scrapeOptions: {
formats: ['markdown', 'html'],
}
} satisfies CrawlParams, true, 30) satisfies CrawlStatusResponse;
Suporte à Integração
Integração com Frameworks LLM
- Langchain: Versões em Python e JavaScript
- Llama Index: Conector de dados
- Crew.ai: Framework de agentes de IA
- Composio: Integração de ferramentas
- PraisonAI: Orquestração de IA
- Superinterface: Funcionalidades de assistente
- Vectorize: Integração de vetorização
Frameworks de Baixo Código
- Dify: Plataforma de construção de aplicações de IA
- Langflow: Fluxos de IA visuais
- Flowise AI: Construção de IA sem código
- Cargo: Integração de dados
- Pipedream: Automação de fluxo de trabalho
Outras Integrações
- Zapier: Fluxos de trabalho automatizados
- Pabbly Connect: Integração de aplicações
Licença e Implantação
Licença de Código Aberto
- Principalmente sob a GNU Affero General Public License v3.0 (AGPL-3.0)
- SDKs e alguns componentes da UI sob a licença MIT
Serviço Gerenciado
- Versão gerenciada disponível em firecrawl.dev
- Soluções em nuvem oferecem funcionalidades adicionais e suporte de nível empresarial
Auto-Hospedagem
- Suporte para implantação local
- Atualmente em desenvolvimento, integrando módulos personalizados em um repositório monolítico
- Pode ser executado localmente, mas ainda não está totalmente pronto para implantação auto-hospedada
Casos de Uso
- Preparação de Dados para IA: Fornece dados de treinamento limpos para LLMs
- Agregação de Conteúdo: Coleta e organiza conteúdo de vários sites
- Análise da Concorrência: Monitora mudanças nos sites dos concorrentes
- Pesquisa de SEO: Analisa a estrutura e o conteúdo do site
- Mineração de Dados: Extrai informações estruturadas de sites
- Geração de Documentos: Converte o conteúdo do site em formatos de documento
Notas de Uso
Os usuários são responsáveis por cumprir as políticas dos sites ao usar o Firecrawl para raspar, pesquisar e rastrear. Recomenda-se que os usuários cumpram as políticas de privacidade e os termos de uso dos sites aplicáveis antes de iniciar qualquer atividade de raspagem. Por padrão, o Firecrawl respeita as diretrizes especificadas nos arquivos robots.txt dos sites durante o rastreamento.
Status do Projeto
O projeto está atualmente em desenvolvimento ativo, com a equipe integrando módulos personalizados em um repositório monolítico. Embora ainda não esteja totalmente pronto para implantação auto-hospedada, pode ser executado localmente para desenvolvimento e testes. O projeto possui uma comunidade ativa e atualizações contínuas, sendo uma solução líder na área de extração de dados da web.
