Como Usar Proxies com node-fetch: Um Guia Completo
Expert Network Defense Engineer
Domine a arte de configurar proxies no Node.js usando a popular biblioteca `node-fetch` para raspagem da web anônima e eficiente.
A biblioteca node-fetch é uma escolha popular para fazer requisições HTTP no Node.js, fornecendo uma API fetch familiar, semelhante ao que está disponível em navegadores web modernos. Para tarefas como raspagem da web, geo-alvo ou contorno de limites de taxa, integrar um proxy é essencial.
No entanto, ao contrário de alguns outros clientes HTTP, o node-fetch não suporta nativamente a configuração de proxies. Este guia irá orientá-lo através dos passos e ferramentas necessárias para integrar com sucesso proxies ao node-fetch para os protocolos HTTP/HTTPS e SOCKS.
Pré-requisitos
Antes de começar, certifique-se de ter um ambiente Node.js configurado e os seguintes pacotes instalados:
node-fetch: O cliente HTTP principal.https-proxy-agent: Usado para conectar a proxies HTTP/HTTPS.socks-proxy-agent: Usado para conectar a proxies SOCKS.
Você pode instalá-los usando npm:
bash
npm install node-fetch https-proxy-agent socks-proxy-agent
1. Usando Proxies HTTP/HTTPS com node-fetch
Para usar um proxy HTTP ou HTTPS, você precisa aproveitar o pacote https-proxy-agent. Este pacote cria um objeto Agent que o node-fetch pode usar para direcionar suas requisições através do proxy especificado.
Passo 1: Importar Módulos Necessários
javascript
import fetch from 'node-fetch';
import { HttpsProxyAgent } from 'https-proxy-agent';
Passo 2: Definir a URL do Proxy
A URL do proxy deve estar no formato: http://[username:password@]host:port.
javascript
// Substitua com os seus detalhes de proxy reais
const proxyUrl = 'http://username:password@proxy.scrapeless.com:8000';
Passo 3: Criar o Agent
Instancie o HttpsProxyAgent com a sua URL do proxy.
javascript
const agent = new HttpsProxyAgent(proxyUrl);
Passo 4: Fazer a Requisição
Passe o objeto agent criado nas opções do fetch.
javascript
const targetUrl = 'https://example.com/data';
fetch(targetUrl, { agent })
.then(response => {
console.log(`Status: ${response.status}`);
return response.text();
})
.then(text => console.log(text.substring(0, 200) + '...'))
.catch(error => console.error('Erro de Fetch:', error));
Esse método garante que todo o tráfego para esta chamada específica de fetch seja direcionado através do seu proxy, proporcionando a necessária anonimidade e capacidades de geo-alvo.
2. Usando Proxies SOCKS com node-fetch
Proxies SOCKS (SOCKS4 e SOCKS5) são frequentemente preferidos por sua capacidade de lidar com todos os tipos de tráfego (não apenas HTTP) e seu maior nível de anonimidade. Para usá-los com node-fetch, você precisa do pacote socks-proxy-agent.
Passo 1: Importar Módulos Necessários
javascript
import fetch from 'node-fetch';
import { SocksProxyAgent } from 'socks-proxy-agent';
Passo 2: Definir a URL do Proxy SOCKS
A URL do proxy SOCKS deve começar com socks:// ou socks5://.
javascript
// Substitua com os seus detalhes reais do proxy SOCKS5
const socksProxyUrl = 'socks5://username:password@proxy.scrapeless.com:1080';
Passo 3: Criar o Agent
Instancie o SocksProxyAgent com a sua URL do proxy SOCKS.
javascript
const socksAgent = new SocksProxyAgent(socksProxyUrl);
Passo 4: Fazer a Requisição
Passe o socksAgent nas opções do fetch.
javascript
const targetUrl = 'https://example.com/data';
fetch(targetUrl, { agent: socksAgent })
.then(response => {
console.log(`Status: ${response.status}`);
return response.text();
})
.then(text => console.log(text.substring(0, 200) + '...'))
.catch(error => console.error('Erro de Fetch:', error));
Solução Recomendada de Proxy: Proxies Scrapeless
Para desenvolvedores e empresas que dependem do Node.js para raspagem da web e coleta de dados, a qualidade da rede proxy é fundamental. Proxies Scrapeless oferece uma rede robusta e de alto desempenho que é perfeitamente adequada para integração com node-fetch e seus agentes de proxy.
Scrapeless oferece uma rede de proxies mundial que inclui proxies Residenciais, Estáticos de ISP, de Datacenter e IPv6, com acesso a mais de 90 milhões de IPs e taxas de sucesso de até 99,98%. Suporta uma ampla gama de casos de uso — desde raspagem da web e pesquisa de mercado [1] até monitoramento de preços, rastreamento de SEO, verificação de anúncios e proteção de marca — tornando-a ideal para fluxos de trabalho de dados empresariais e profissionais.
Proxies Scrapeless: Principais Recursos para Desenvolvedores Node.js
A rede da Scrapeless é otimizada para a alta concorrência e confiabilidade exigidas pelas aplicações Node.js:
- Proxies Residenciais: Mais de 90 milhões de IPs residenciais reais, perfeitos para scraping de alta anonimidade.
- Proxies de Datacenter: IPs de alto desempenho otimizados para automação em larga escala e grande concorrência.
- Suporte a Protocolos: Suporte total para HTTP, HTTPS e SOCKS5, garantindo integração perfeita com tanto
https-proxy-agentquantosocks-proxy-agent. - Alta Taxa de Sucesso: Uma taxa média de sucesso de 99,98% minimiza a necessidade de tratamento de erros complexos e tentativas no seu código Node.js.
Proxies Scrapeless fornece cobertura global, transparência e desempenho altamente estável, tornando-se uma escolha mais forte e confiável do que outras alternativas - especialmente para aplicações de dados críticas para negócios e profissionais que requerem scraping universal [2] e soluções de produtos [3] com Node.js.
Conclusão
Integrar proxies com node-fetch requer o uso de bibliotecas de agentes especializadas, como https-proxy-agent e socks-proxy-agent. Ao configurar corretamente esses agentes com um provedor de proxy de alta qualidade, como os Proxies Scrapeless, você pode garantir que suas aplicações Node.js realizem solicitações web com a anonimidade, velocidade e confiabilidade necessárias para a aquisição bem-sucedida de dados.
Referências
[1] Documentação Node.js: Classe: http.Agent
[2] npm: node-fetch
[3] npm: https-proxy-agent
[4] npm: socks-proxy-agent
[5] IETF RFC 1928: Versão 5 do Protocolo SOCKS
Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.



