Concorrência e Escalonamento
Gerencie múltiplas requisições simultâneas com segurança.
O Xcrap facilita o scraping em larga escala através do método fetchMany, disponível em todos os clientes oficiais.
O Método fetchMany
Em vez de fazer um loop manual com Promise.all (que pode sobrecarregar seu sistema ou o servidor alvo), use o fetchMany para gerenciar a concorrência e o delay.
const client = new AxiosClient();
const results = await client.fetchMany({
requests: [
{ url: "https://toscrape.com/page/1" },
{ url: "https://toscrape.com/page/2" },
{ url: "https://toscrape.com/page/3" },
],
concurrency: 2, // No máximo 2 requisições ao mesmo tempo
requestDelay: 1000, // Espera 1 segundo entre o início de cada requisição
});Benefícios do fetchMany
- Proteção de Recursos: Evita que sua máquina fique sem memória ao abrir centenas de conexões/abas de uma vez.
- Anti-Ban: Delays consistentes ajudam a não disparar alarmes de "taxa de requisição" no servidor.
- Throttling Nativo: Implementado diretamente na
BaseClient, o que garante comportamento idêntico em qualquer adaptador.
Throttling em Clientes de Navegador
Para clientes Puppeteer, a concorrência via fetchMany gerencia a abertura e fechamento de abas/páginas de forma eficiente, reutilizando o browser quando possível.