Pular para o conteúdo principal

Instalação

Para instalar o SDK do Firecrawl para Python, você pode usar o pip:
Python

Uso

Obtenha uma chave de API em firecrawl.dev e, em seguida, configure-a como uma variável de ambiente chamada FIRECRAWL_API_KEY ou passe-a diretamente para a classe Firecrawl.
Sem chave de API? Você pode instanciar Firecrawl sem uma chave e usar scrape, search e interact no plano Free sem chave (com limite de taxa por IP — consulte Limites de taxa). Todos os outros métodos exigem uma chave.
Python

Fazendo scraping de uma URL

Faça scraping de uma única URL com o método scrape. Ele retorna o conteúdo da página como dados estruturados, incluindo markdown, metadados e quaisquer outros formatos que você solicitar.
Python
O SDK de Python converte todos os nomes dos campos da resposta de camelCase para snake_case. Por exemplo, campos de metadados como ogImage, ogTitle e sourceURL da API se tornam og_image, og_title e source_url na resposta do SDK.

Análise de arquivos carregados

Use parse para fazer upload de arquivos locais (html, pdf, docx, xlsx, etc.) diretamente para /v2/parse. parse não oferece suporte a changeTracking nem a opções disponíveis apenas no navegador, como actions, wait_for, location, mobile, screenshot e branding.
Python

Rastrear um site

Para rastrear um site, use o método crawl. Ele recebe a URL inicial e, opcionalmente, um objeto de opções. Essas opções permitem definir configurações adicionais para a tarefa de rastreamento, como o número máximo de páginas, os domínios permitidos e o formato de saída. Consulte Paginação para detalhes sobre paginação automática/manual e limites.
Python

Rastreamento Apenas do Sitemap

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

Iniciar um crawl

Prefere não bloquear? Veja a seção Classe assíncrona abaixo.
Inicie uma tarefa sem esperar usando start_crawl. Ela retorna um ID de tarefa que você pode usar para verificar o status. Use crawl quando quiser um aguardador que bloqueia até a conclusão. Consulte Paginação para o comportamento e os limites de paginação.
Python

Verificando o status do rastreamento

Consulte o status de um job de rastreamento com get_crawl_status. Informe o ID do job e receba o status atual junto com os resultados coletados até o momento.
Python

Cancelando um Rastreamento

Cancele um job de rastreamento com o método cancel_crawl. Passe o ID do job retornado por start_crawl para receber o status do cancelamento.
Python

Mapear um site

Use map para gerar uma lista de URLs de um site. As opções permitem personalizar o processo de mapeamento, incluindo excluir subdomínios ou usar o sitemap.
Python

Rastreamento de um site com WebSockets

Para rastrear um site com WebSockets, inicie a tarefa com start_crawl e faça a inscrição usando o helper watcher. Crie um watcher com o ID da tarefa e vincule handlers (por exemplo, para page, completed, failed) antes de chamar start().
Python
Os endpoints do Firecrawl para crawl e batch scrape retornam uma URL next quando há mais dados disponíveis. O SDK Python pagina automaticamente por padrão e agrega todos os documentos; nesse caso, next será None. Você pode desativar a paginação automática ou definir limites para controlar o comportamento da paginação.

PaginationConfig

Use PaginationConfig para controlar o comportamento da paginação ao chamar get_crawl_status ou get_batch_scrape_status:
Python

Auxiliares para Paginação Manual

Quando auto_paginate=False, a resposta inclui uma URL next se houver mais dados disponíveis. Use estes métodos auxiliares para obter as páginas subsequentes:
  • get_crawl_status_page(next_url) - Obtém a próxima página de resultados de crawl usando a URL next opaca de uma resposta anterior.
  • get_batch_scrape_status_page(next_url) - Obtém a próxima página de resultados de batch scrape usando a URL next opaca de uma resposta anterior.
Esses métodos retornam o mesmo tipo de resposta da chamada de status original, incluindo uma nova URL next se restarem mais páginas.

Crawl

Use o método de espera 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
Inicie um job e, em seguida, recupere uma página por vez com auto_paginate=False. Use get_crawl_status_page para recuperar as páginas subsequentes:
Python
Rastreamento manual com limites (paginação automática + interrupção antecipada)
Mantenha a paginação automática ativada, mas interrompa antecipadamente com max_pages, max_results ou max_wait_time:
Python

Coleta em lote

Use o método waiter batch_scrape ou inicie um job e faça a paginação manualmente.
Coleta em lote simples (paginação automática, padrão)
Raspagem em lote manual com controle de paginação
Inicie um job e, em seguida, recupere uma página por vez com auto_paginate=False. Use get_batch_scrape_status_page para obter as páginas subsequentes:
Python
Coleta manual em lote com limites (paginação automática + parada antecipada)
Deixe a paginação automática ativada, mas interrompa antes usando max_pages, max_results ou max_wait_time:
Python

Tratamento de erros

Quando uma requisição falha, o SDK lança uma exceção com uma mensagem descritiva explicando o que deu errado. Coloque as chamadas em try/except para capturar essas exceções e tratar as falhas na sua aplicação.

Classe assíncrona

Para operações assíncronas, use a classe AsyncFirecrawl. Seus métodos espelham os de Firecrawl, mas não bloqueiam a thread principal.
Python
Python

Browser

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

Criar sessão

Python

Executar código

Python
Execute JavaScript em vez de Python:
Python

Perfis

Salve e reutilize o estado do navegador (cookies, localStorage, etc.) em várias sessões:
Python

Conectar via CDP

Para ter controle total do Playwright, conecte-se diretamente usando a URL do CDP:
Python

Listar & Fechar Sessões

Python

Sessão interativa vinculada ao scraping

Use um ID do job de scraping para continuar interagindo com o contexto da página reproduzida a partir desse scraping:
  • interact(job_id, ...) 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 no mesmo ID do job reutilizam esse estado ativo do navegador.
  • stop_interaction(job_id) encerra a sessão interativa quando você terminar.
Python
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 de configuração automatizada.