Skip to main content

Node

Faça scraping, rastreamento e extração de dados estruturados em sites usando o Firecrawl SDK de Node.
5 min read

Faça scraping de páginas individuais, rastreie sites inteiros e mapeie URLs no seu aplicativo Node.js. O SDK gerencia a paginação, as novas tentativas e a consulta assíncrona de jobs para que você possa se concentrar nos dados retornados.

Instalação#

Instale o SDK com npm:

Node

Uso#

  1. Obtenha uma chave de API em firecrawl.dev
  2. Defina a chave de API como uma variável de ambiente chamada FIRECRAWL_API_KEY ou passe-a como parâmetro para a classe Firecrawl.
Note

Sem chave de API? Você pode instanciar Firecrawl sem uma chave e usar scrape, search e interact no plano gratuito sem chave (com limite de taxa por IP — veja Limites de taxa). Todos os outros métodos exigem uma chave.

Veja um exemplo de como usar o SDK com tratamento de erros:

Node

Scraping de uma URL#

Use o método scrape para extrair os dados de uma única URL e receber os dados estruturados da página.

Node

Análise de arquivos enviados#

Use parse quando quiser enviar um arquivo local (html, pdf, docx, xlsx, etc.) em vez de fazer scraping a partir de uma URL. parse não oferece suporte a changeTracking nem a opções exclusivas do navegador, como screenshot, branding, actions, waitFor, location e mobile.

Node

Rastreando um site#

Rastreie um site inteiro a partir de uma única URL com o método crawl. Você pode definir um limite de páginas, restringir o rastreamento a domínios específicos e escolher formatos de resultado. Consulte Paginação para paginação automática e manual.

Node

Rastreamento Somente do Sitemap#

Use sitemap: "only" para rastrear apenas URLs do sitemap (a URL inicial sempre é incluída e a descoberta de links em HTML é ignorada).

Node

Iniciar um rastreamento#

Inicie um rastreamento sem aguardar a conclusão usando startCrawl. O método retorna um ID do job que você pode consultar depois. Use crawl em vez disso quando quiser bloquear até a conclusão. Veja Paginação para comportamento e limites de paginação.

Node

Verificando o status do rastreamento#

Verifique se um rastreamento ainda está em execução, foi concluído ou falhou usando o método checkCrawlStatus. Passe o ID do job retornado por startCrawl.

Node

Cancelando um rastreamento#

Cancele um rastreamento em andamento usando o método cancelCrawl. Informe o ID do job retornado por startCrawl.

Node.js

Mapeando um site#

Descubra todas as URLs de um site com o método map. Informe uma URL inicial e receba uma lista das páginas encontradas.

Node.js

Executando um agente#

Atribua uma tarefa de pesquisa ou extração a um agente usando o método agent. Forneça um prompt, um schema opcional para definir o formato do resultado e maxCredits para limitar o gasto da execução.

Node

As execuções de agentes são assíncronas. Use startAgent para receber imediatamente um ID do job e depois consulte-o com getAgentStatus.

Node

Cada execução também registra um rastro de execução e snapshots do resultado, que você pode consultar com getAgentTrace e getAgentSnapshot. Consulte Agent para ver o schema de eventos e a lista completa de parâmetros.

Rastreamento de um site com WebSockets#

Receba os resultados do rastreamento em tempo real com watcher(jobId, options). Você recebe cada página conforme ela é rastreada, em vez de aguardar a conclusão de todo o job.

Node

Os endpoints do Firecrawl para crawl e batch retornam uma URL next quando há mais dados disponíveis. O SDK de Node faz paginação automática por padrão e agrega todos os documentos; nesse caso, next será null. Você pode desativar a paginação automática ou definir limites.

Rastreamento#

Use o método waiter crawl para a experiência mais simples, ou inicie um job e faça a paginação manualmente.

Rastreamento simples (paginação automática, padrão)
Rastreamento manual com controle de paginação (página única)
  • Inicie um job e, em seguida, recupere uma página por vez com autoPaginate: false.
Node
Rastreamento manual com limites (paginação automática + parada antecipada)
  • Mantenha a paginação automática ativada, mas interrompa antecipadamente com maxPages, maxResults ou maxWaitTime.
Node

Coleta em lote#

Use o método waiter batchScrape ou inicie uma tarefa e pagine manualmente.

Raspagem em lote simples (paginação automática, padrão)
Coleta manual em lote com controle de paginação (página única)
  • Inicie um job e, em seguida, recupere uma página por vez com autoPaginate: false.
Node
Coleta manual em lote com limites (paginação automática + parada antecipada)
  • Mantenha a paginação automática ligada, mas interrompa antes com maxPages, maxResults ou maxWaitTime.
Node

Browser#

Inicie sessões de navegador na nuvem e execute código remotamente.

Criar sessão#

Node

Executar código#

Node

Use JavaScript em vez de Python:

Node

Execute o bash usando agent-browser:

Node

Perfis#

Salve e reutilize o estado do navegador (cookies, localStorage etc.) entre sessões:

Node

Conectar via CDP#

Para controle completo do Playwright, conecte-se diretamente usando a URL do CDP:

Node

Listar & Encerrar Sessões#

Node

Sessão interativa vinculada ao scraping#

Use o ID de um job de scraping para continuar interagindo com o contexto da página recriado a partir desse scraping:

  • interact(jobId, {...}) executa código na sessão do navegador vinculada ao scraping.
  • A primeira chamada de interact inicializa automaticamente a sessão com base no contexto do scraping.
  • Chamadas adicionais de interact com o mesmo ID do job reutilizam esse estado ativo do navegador.
  • stopInteraction(jobId) encerra a sessão interativa quando você terminar.
Node

Tratamento de erros#

O SDK lança exceções descritivas para qualquer erro retornado pela API do Firecrawl. Coloque as chamadas em blocos try/catch, como mostrado nos exemplos acima.

Você é um agente de IA que precisa de uma chave de API do Firecrawl? Consulte firecrawl.dev/agent-onboarding/SKILL.md para ver instruções automatizadas de onboarding.