Mais de 70% dos sites modernos dependem de JavaScript para renderizar seu conteúdo. Uma request HTTP padrão apenas vê a estrutura HTML inicial. Os dados reais são carregados após a execução do JavaScript, e é por isso que as ferramentas tradicionais de scraping retornam páginas vazias.
As browser tasks do FourA resolvem isso executando uma instância real do Chrome headless para cada request.
Como Funciona
Quando você envia uma tarefa com type: "browser", o FourA:
- Inicia um navegador Chrome headless
- Navega até a URL de destino
- Aguarda a execução do JavaScript e a estabilização do DOM
- Opcionalmente aguarda a aparição de um seletor CSS específico
- Retorna o HTML totalmente renderizado
Todo o processo ocorre na infraestrutura do FourA. Você recebe um HTML limpo de volta, sem precisar instalar navegadores, configurar o Puppeteer ou gerenciar atualizações do Chrome.
Quando Usar Browser Tasks
Use browser tasks quando:
- Single-page applications (React, Vue, Angular)
- Páginas com conteúdo carregado sob demanda (infinite scroll, botões "carregar mais")
- Sites que exigem consentimento de cookies ou configuração inicial de JS
- Conteúdo protegido por fluxos de autenticação no lado do cliente
Continue com tarefas single quando:
- Páginas HTML renderizadas no servidor (sites de notícias, blogs, wikis)
- APIs REST que retornam JSON diretamente
- A velocidade for a prioridade (as browser tasks levam de 2 a 10 segundos, em comparação com menos de 1 segundo para tarefas single)
Exemplo: Fazendo Scraping de um App React
curl -X POST https://eu.api.foura.ai/api/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/dashboard",
"type": "browser",
"options": {
"waitFor": ".dashboard-content",
"timeout": 15000
}
}'
O seletor waitFor instrui o FourA a aguardar até que .dashboard-content apareça no DOM antes de capturar a página. Isso garante que todos os dados assíncronos tenham sido carregados.
Dicas de Desempenho
- Sempre use
waitForcom um seletor específico em vez de depender de timeouts. É mais rápido e mais confiável. - Defina um timeout razoável. 15 segundos cobrem a maioria das SPAs. Apenas aumente para backends realmente lentos.
- Use
singlecomo padrão e mude parabrowserapenas quando o conteúdo estiver ausente da response.
Próximos Passos
Estamos trabalhando em recursos adicionais de navegador, incluindo captura de tela, geração de PDF e navegação em várias etapas (clicar, rolar, preencher formulários). Mas mesmo sem esses extras, as browser tasks já resolvem o problema mais comum: obter o conteúdo real de páginas renderizadas por JavaScript em vez de uma estrutura vazia.
Consulte a documentação para obter a comparação completa dos tipos de tarefas.