Skip to main content

Python

O Firecrawl SDK Python é um encapsulador da Firecrawl API que ajuda você a transformar sites em Markdown com facilidade.
6 min read

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.

Note

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
Note

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#

Tip
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

Executar um agente#

Envie uma tarefa de pesquisa ou extração a um agente usando o método agent. Ele recebe um prompt, um schema opcional para estruturar o resultado e max_credits para limitar o quanto a execução pode gastar.

Python

As execuções de agentes são assíncronas. Use start_agent para receber imediatamente um ID do job e, em seguida, consulte seu status com get_agent_status.

Python

Cada execução também registra um rastro de execução e snapshots do resultado, que podem ser acessados com get_agent_trace e get_agent_snapshot. Consulte Agent para ver o schema de eventos e a lista completa de parâmetros.

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
OptionTypeDefaultDescription
auto_paginateboolTrueQuando definido como True, busca automaticamente todas as páginas e agrega os resultados. Defina como False para buscar uma página por vez.
max_pagesintNoneEncerra após buscar esse número de páginas (aplica-se somente quando auto_paginate=True).
max_resultsintNoneEncerra após coletar esse número de documentos (aplica-se somente quando auto_paginate=True).
max_wait_timeintNoneEncerra após esse número de segundos (aplica-se somente quando auto_paginate=True).

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.