Instalação#
Para instalar o SDK do Firecrawl para Python, você pode usar o pip:
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.
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.
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.
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.
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).
Iniciar um crawl#
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.
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.
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.
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.
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.
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.
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().
Paginação#
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:
| Option | Type | Default | Description |
|---|---|---|---|
auto_paginate | bool | True | Quando definido como True, busca automaticamente todas as páginas e agrega os resultados. Defina como False para buscar uma página por vez. |
max_pages | int | None | Encerra após buscar esse número de páginas (aplica-se somente quando auto_paginate=True). |
max_results | int | None | Encerra após coletar esse número de documentos (aplica-se somente quando auto_paginate=True). |
max_wait_time | int | None | Encerra 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 URLnextopaca 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 URLnextopaca 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)
- Veja o fluxo padrão em Rastrear um site.
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:
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:
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)
- Veja o fluxo padrão em Coleta em Lote.
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:
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:
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.
Browser#
Inicie sessões de navegador na nuvem e execute código remotamente.
Criar sessão#
Executar código#
Execute JavaScript em vez de Python:
Perfis#
Salve e reutilize o estado do navegador (cookies, localStorage, etc.) em várias sessões:
Conectar via CDP#
Para ter controle total do Playwright, conecte-se diretamente usando a URL do CDP:
Listar & Fechar Sessões#
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
interactinicializa automaticamente a sessão com base no contexto do scraping. - Chamadas adicionais de
interactno mesmo ID do job reutilizam esse estado ativo do navegador. stop_interaction(job_id)encerra a sessão interativa quando você terminar.
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.

