Skip to main content

Interaja após o scraping

Interaja com uma página que você obteve usando prompts ou executando código.
9 min read

Faça o scraping de uma página para obter dados limpos e, em seguida, chame /interact para começar a realizar ações nessa página: clicar em botões, preencher formulários, extrair conteúdo dinâmico ou navegar mais profundamente. Basta descrever o que você quer, ou escrever código se precisar de controle total.

Recompensa: 5.000 créditos por feedback consistente sobre /interact

Para se qualificar, faça uma entrevista rica em informações (com casos de uso bem pensados e concretos etc.) com nosso Assistente de Feedback do Firecrawl. Leva apenas alguns minutos, pode ser interrompida a qualquer momento e funciona tanto para humanos quanto para agentes (basta colar o link no seu framework de agentes!). Nunca usou /interact? Sua opinião também conta.

Iniciar a entrevista

Inclua seu email para se qualificar. As entrevistas são avaliadas quanto à qualidade ao final de cada semana.

Escolha o modelo de interação certo#

NecessidadeUseDocumentação canônicaMétodos do SDK (Node)
Inicie uma sessão autônoma do navegador sem fazer scraping antesBrowser Sandbox / sessão autônoma do interagirBrowser Sandbox, Criar sessão do navegador, Executar código no navegador, Listar sessões do navegador, Excluir sessão do navegadorbrowser(), browserExecute(), listBrowsers(), deleteBrowser()
Continue a partir de um resultado de scraping usando scrapeIdInteragir após o scrapingExecutar interagir, Stop interagirinteract(), stopInteraction()

Use o interagir vinculado ao scraping quando o fluxo de trabalho começar com POST /v2/scrape e a resposta incluir data.metadata.scrapeId. Use o Browser Sandbox quando precisar de uma sessão autônoma com seu próprio ciclo de vida. O SDK Python usa os equivalentes em snake_case (browser(), browser_execute(), list_browsers(), delete_browser(), interact(), stop_interaction()).

Prompts de IA

Descreva a ação que você quer executar na página

Execução de código

Interaja com segurança por meio da execução de código usando playwright, agent-browser

Visualização em tempo real

Assista ou interaja com o navegador em tempo real por meio de um stream incorporável

Como funciona#

  1. Faça o scraping de uma URL com POST /v2/scrape. A resposta inclui um scrapeId em data.metadata.scrapeId. Se você quiser persistir o estado do navegador, passe profile nesta solicitação.
  2. Interaja chamando POST /v2/scrape/{scrapeId}/interact com um prompt ou com code do Playwright. Não passe profile aqui; a sessão de interação herda o perfil do job de scraping.
  3. Encerre a sessão com DELETE /v2/scrape/{scrapeId}/interact quando terminar. Para perfis graváveis, as mudanças são salvas quando a sessão é encerrada.

Início rápido#

Faça o scraping de uma página, interaja com ela e encerre a sessão:

Response

Interaja usando prompts#

A forma mais simples de interagir com uma página. Descreva o que você quer em linguagem natural, e ele clicará, digitará, rolará a página e extrairá dados automaticamente.

A resposta inclui um campo output com a resposta do agente:

Response

Mantenha os Prompts Pequenos e Focados#

Prompts funcionam melhor quando cada um é uma tarefa única e clara. Em vez de pedir ao agente para executar um fluxo de trabalho complexo com várias etapas de uma só vez, divida isso em chamadas interact separadas. Cada chamada reutiliza a mesma sessão do navegador, então o estado é mantido entre elas.

Executando código#

Para ter controle total, você pode executar código diretamente no sandbox do navegador. A variável page (um objeto Page do Playwright) está disponível tanto em Node.js quanto em Python. O modo Bash vem com agent-browser pré-instalado. Você também pode fazer capturas de tela na sessão: use (await page.screenshot()).toString("base64") em Node.js, await page.screenshot(path="/tmp/screenshot.png") em Python ou agent-browser screenshot no Bash.

Node.js (Playwright)#

A linguagem padrão. Escreva código Playwright diretamente. page já está conectado ao navegador.

Python#

Defina language como "python" para a API do Python do Playwright.

Bash (agent-browser)#

agent-browser é uma CLI pré-instalada no sandbox com mais de 60 comandos. Ela fornece uma árvore de acessibilidade com refs de elementos (@e1, @e2, ...), o que é ideal para automação conduzida por LLM.

Comandos comuns do agent-browser:

ComandoDescrição
snapshotÁrvore de acessibilidade completa com refs de elementos
snapshot -iApenas elementos interativos
click @e1Clica no elemento pela ref
fill @e1 "text"Limpa o campo e digita o texto
type @e1 "text"Digita sem limpar
press EnterPressiona uma tecla do teclado
scroll down 500Rola 500 pixels para baixo
get text @e1Obtém o conteúdo de texto
get urlObtém a URL atual
wait @e1Aguarda o elemento
wait --load networkidleAguarda a rede ficar inativa
find text "X" clickEncontra o elemento pelo texto e clica
screenshotTira uma captura de tela da página atual
eval "js code"Executa JavaScript na página

Visualização em tempo real#

Toda resposta de interact retorna uma liveViewUrl que você pode incorporar para acompanhar o navegador em tempo real. Útil para depuração, demonstrações ou para criar UIs com navegador.

Response

Visualização em tempo real interativa#

A resposta também inclui uma interactiveLiveViewUrl. Diferentemente da visualização em tempo real padrão, que é somente para visualização, a visualização em tempo real interativa permite que os usuários cliquem, digitem e interajam com a sessão do navegador diretamente pelo stream incorporado. Isso é útil para criar interfaces de navegador voltadas para o usuário final, como fluxos de login ou fluxos de trabalho guiados em que os usuários finais precisam controlar o navegador.

URL do CDP#

Toda resposta de interação também retorna uma cdpUrl: a URL WebSocket bruta do Chrome DevTools Protocol (CDP) da sessão do navegador. Use-a para se conectar diretamente à sessão ativa pelo Playwright, Puppeteer ou qualquer cliente CDP e controlar o navegador com seu próprio código.

Ciclo de vida da sessão#

Criação#

A primeira POST /v2/scrape/{scrapeId}/interact dá continuidade à sessão de scraping e inicia a interação.

Reutilização#

Chamadas subsequentes de interact no mesmo scrapeId reutilizam a sessão existente. O navegador permanece aberto e mantém seu estado entre as chamadas, para que você possa encadear várias interações:

Limpeza#

Encerre a sessão explicitamente quando terminar:

As sessões também expiram automaticamente com base no TTL (padrão: 10 minutes) ou no tempo limite de inatividade (padrão: 5 minutes).

Warning

Sempre encerre as sessões quando terminar para evitar cobrança desnecessária. Os créditos são rateados por segundo, com uma cobrança mínima de um minuto de navegador. Sessões que usam um prompt consomem 7 créditos por minuto de navegador; sessões sem um prompt consomem 2. Consulte cobrança para ver os detalhes.

Perfis persistentes com Scrape + Interagir#

Por padrão, cada sessão de scraping + interagir começa com um navegador limpo. Com profile, você pode salvar e reutilizar o estado do navegador (cookies, localStorage, sessões) entre scrapes. Isso é útil para continuar conectado e preservar preferências.

Passe o objeto profile na requisição inicial POST /v2/scrape. Não passe profile para POST /v2/scrape/{scrapeId}/interact; a sessão de interagir reutiliza a sessão do navegador e as configurações de perfil do scrape job. Encerre a sessão de interagir com DELETE /v2/scrape/{scrapeId}/interact para que mudanças graváveis no perfil possam ser salvas.

cURL

O ciclo de vida do perfil é:

  1. Crie o scraping com profile.name e saveChanges: true.
  2. Execute interações por prompt ou código usando o scrapeId retornado.
  3. Encerre a sessão para salvar cookies, localStorage e outros estados do navegador.
  4. Inicie um scraping posterior com o mesmo profile.name. Use saveChanges: false quando quiser apenas ler o estado existente sem gravar as mudanças de volta.
ParâmetroPadrãoDescrição
nameNoneUm nome para o perfil persistente. Scrapes com o mesmo nome compartilham o estado do navegador.
saveChangestrueQuando true, o estado do navegador é salvo novamente no perfil quando a sessão de interagir é encerrada. Defina como false para carregar dados existentes sem gravar, o que é útil quando você precisa de vários leitores simultâneos.
Note

Apenas uma sessão pode salvar em um perfil por vez. Se outra sessão já estiver salvando, você receberá um erro 409. Você ainda pode abrir o mesmo perfil com saveChanges: false ou tentar novamente mais tarde.

O estado do navegador é salvo quando a sessão de interagir é encerrada. Sempre encerre a sessão quando terminar para que o perfil possa ser reutilizado.

Validar a persistência#

Você pode testar a persistência sem depender de um fluxo de login real gravando um valor no localStorage em uma sessão, encerrando-a e, em seguida, lendo esse valor em uma segunda sessão com o mesmo perfil.

cURL

A segunda resposta do Interagir deve mostrar localStorage como "saved" e cookie como true.

Info

Os perfis criados via API talvez ainda não apareçam em painel > Interagir > Perfis. No momento, o painel ainda não oferece uma visão completa dos perfis persistentes criados via API.

Quando usar o quê#

Use CaseRecommendedWhy
Busca na webSearchEndpoint de busca dedicado
Obter conteúdo limpo de uma URLScrapeUma chamada de API, sem necessidade de sessão
Clicar, digitar e navegar em uma páginaInteragir (prompt)Basta descrever em inglês
Extrair dados por trás das interaçõesInteragir (prompt)Não são necessários seletores
Lógica de scraping complexaInteragir (code)Controle total do Playwright
Info

Interagir vs Browser Sandbox: O Interagir é construído sobre a mesma infraestrutura que o Browser Sandbox, mas oferece uma interface melhor para o padrão mais comum: fazer scrape de uma página e depois se aprofundar. O Browser Sandbox é melhor quando você precisa de uma sessão do navegador independente que não esteja vinculada a um scrape específico.

Preços#

  • Somente código (sem prompt): 2 créditos por minuto de sessão
  • Com prompts de IA: 7 créditos por minuto de sessão
  • Scraping: cobrado separadamente (1 crédito por scraping, além de quaisquer custos específicos do formato)

Referência da API#

Corpo da Requisição (POST)#

CampoTipoPadrãoDescrição
promptstringNenhumTarefa em linguagem natural para o agente de IA. Obrigatório se code não estiver definido. Máx. 10.000 caracteres.
codestringNenhumCódigo a ser executado (Node.js, Python ou Bash). Obrigatório se prompt não estiver definido. Máx. 100.000 caracteres.
languagestring"node""node", "python" ou "bash". Usado apenas com code.
timeoutnumber30Tempo limite em segundos (1–300).
originstringNenhumIdentificador do chamador para acompanhamento de atividades.

Resposta#

FieldDescription
successtrue se a execução for concluída sem erros
cdpUrlURL WebSocket bruta do Chrome DevTools Protocol (CDP) para a sessão do navegador. Conecte-se diretamente com Playwright, Puppeteer ou qualquer cliente CDP
liveViewUrlURL de visualização em tempo real somente leitura para a sessão do navegador
interactiveLiveViewUrlURL de visualização em tempo real interativa (os visualizadores podem controlar o navegador)
outputA resposta em linguagem natural do agente ao seu prompt. Presente apenas ao usar prompt.
stdoutSaída padrão da execução do código
resultValor bruto retornado do sandbox. Para code: a última expressão avaliada. Para prompt: o snapshot bruto da página que o agente usou para produzir output.
stderrSaída de erro padrão
exitCodeCódigo de saída (0 = sucesso)
killedtrue se a execução tiver sido encerrada devido a tempo limite

Tem feedback ou precisa de ajuda? Envie um e-mail para help@firecrawl.com ou entre em contato no Discord.