Cómo usar proxies con node-fetch: Una guía completa
Specialist in Anti-Bot Strategies
html
<div style="background-color: #f3f4f6; padding: 24px 40px; border-radius: 10px;">
<strong style="font-size: 18px;">
Echa un vistazo rápido
</strong>
<p style="margin-bottom: 24px;">
Domina el arte de configurar proxies en Node.js utilizando la popular biblioteca `node-fetch` para la recolección de datos anónima y eficiente.
</p>
<div style="text-align: center; margin-top: 10px;">
<a href="https://app.scrapeless.com/passport/login?utm_source=official&utm_medium=blog&utm_campaign=proxy-in-node-fetch
" style="background: #12A594; color: #fff; padding: 10px 28px; border-radius: 38px; text-decoration: none; display: inline-block;">
Inicia sesión ahora - Prueba gratuita
</a>
</div>
</div>
La biblioteca `node-fetch` es una opción popular para realizar solicitudes HTTP en Node.js, proporcionando una API `fetch` familiar similar a la que está disponible en los navegadores web modernos. Para tareas como la recolección de datos en la web, la geo-localización o eludir límites de tasa, integrar un proxy es esencial.
Sin embargo, a diferencia de otros clientes HTTP, `node-fetch` no admite la configuración de proxy de manera nativa. Esta guía te guiará a través de los pasos y herramientas necesarios para integrar con éxito proxies con `node-fetch` para los protocolos HTTP/HTTPS y SOCKS.
## Requisitos previos
Antes de comenzar, asegúrate de tener un entorno de Node.js configurado y los siguientes paquetes instalados:
1. **`node-fetch`**: El cliente HTTP principal.
2. **`https-proxy-agent`**: Utilizado para conectarse a proxies HTTP/HTTPS.
3. **`socks-proxy-agent`**: Utilizado para conectarse a proxies SOCKS.
Puedes instalarlos usando `npm`:
```bash
npm install node-fetch https-proxy-agent socks-proxy-agent
1. Usando proxies HTTP/HTTPS con node-fetch
Para usar un proxy HTTP o HTTPS, necesitas aprovechar el paquete https-proxy-agent. Este paquete crea un objeto Agent que node-fetch puede usar para dirigir sus solicitudes a través del proxy especificado.
Paso 1: Importa los módulos necesarios
javascript
import fetch from 'node-fetch';
import { HttpsProxyAgent } from 'https-proxy-agent';
Paso 2: Define la URL del proxy
La URL del proxy debe estar en el formato: http://[usuario:contraseña@]host:puerto.
javascript
// Reemplaza con los detalles de tu proxy real
const proxyUrl = 'http://usuario:contraseña@proxy.scrapeless.com:8000';
Paso 3: Crea el agente
Instancia el HttpsProxyAgent con tu URL de proxy.
javascript
const agent = new HttpsProxyAgent(proxyUrl);
Paso 4: Realiza la solicitud
Pasa el objeto agent creado en las opciones de fetch.
javascript
const targetUrl = 'https://example.com/data';
fetch(targetUrl, { agent })
.then(response => {
console.log(`Estado: ${response.status}`);
return response.text();
})
.then(text => console.log(text.substring(0, 200) + '...'))
.catch(error => console.error('Error de Fetch:', error));
Este método asegura que todo el tráfico para esta llamada específica de fetch se dirija a través de tu proxy, proporcionando la necesaria anonimidad y capacidades de geo-localización.
2. Usando proxies SOCKS con node-fetch
Los proxies SOCKS (SOCKS4 y SOCKS5) son a menudo preferidos por su capacidad para manejar todo tipo de tráfico (no solo HTTP) y su mayor nivel de anonimidad. Para usarlos con node-fetch, necesitas el paquete socks-proxy-agent.
Paso 1: Importa los módulos necesarios
javascript
import fetch from 'node-fetch';
import { SocksProxyAgent } from 'socks-proxy-agent';
Paso 2: Define la URL del proxy SOCKS
La URL del proxy SOCKS debe comenzar con socks:// o socks5://.
javascript
// Reemplaza con los detalles de tu proxy SOCKS5 real
const socksProxyUrl = 'socks5://usuario:contraseña@proxy.scrapeless.com:1080';
Paso 3: Crea el agente
Instancia el SocksProxyAgent con tu URL de proxy SOCKS.
javascript
const socksAgent = new SocksProxyAgent(socksProxyUrl);
Paso 4: Realiza la solicitud
Pasa el socksAgent en las opciones de fetch.
javascript
const targetUrl = 'https://example.com/data';
fetch(targetUrl, { agent: socksAgent })
.then(response => {
console.log(`Estado: ${response.status}`);
return response.text();
})
.then(text => console.log(text.substring(0, 200) + '...'))
.catch(error => console.error('Error de Fetch:', error));
Solución de Proxy Recomendado: Proxies Scrapeless
Para desarrolladores y empresas que dependen de Node.js para la recolección de datos y scraping web, la calidad de la red proxy es fundamental. Proxies Scrapeless ofrece una red robusta y de alto rendimiento que es perfectamente adecuada para la integración con node-fetch y sus agentes proxy.
Scrapeless ofrece una red proxy en todo el mundo que incluye proxies Residenciales, ISP Estáticos, de Centro de Datos e IPv6, con acceso a más de 90 millones de IPs y tasas de éxito de hasta 99.98%. Soporta una amplia gama de casos de uso — desde scraping web y investigación de mercado [1] hasta monitoreo de precios, seguimiento SEO, verificación de anuncios y protección de marca — lo que lo hace ideal tanto para flujos de trabajo de datos empresariales como profesionales.
```html
<div style="padding: 20px 0; text-align: center;">
<a
style="
margin: 8px;
display: inline-block;
text-decoration: none;
"
href="https://www.goproxy.com/register?link=https://app.scrapeless.com/passport/login?utm_source=official&utm_medium=blog&utm_campaign=proxy-in-node-fetch"
>
<div
style="
font-weight: bold;
width: 100%;
max_width: 400px;
padding: 12px 40px;
background: #12A594;
border-radius: 5px;
border: 2px solid #12A594;
color: #fff;
cursor: pointer;
box-sizing: border-box;
font-size: 18px;
"
>
Prueba gratis >
</div>
</a>
</div>
### Proxies Scrapeless: Características clave para desarrolladores de Node.js
La red de Scrapeless está optimizada para la alta concurrencia y fiabilidad requeridas por las aplicaciones de Node.js:
* **Proxies residenciales:** Más de 90 millones de IPs residenciales reales, perfectas para scraping de alta anonimidad.
* **Proxies de centro de datos:** IPs de alto rendimiento optimizadas para automatización a gran escala y gran concurrencia.
* **Soporte de protocolos:** Soporte completo para HTTP, HTTPS y SOCKS5, garantizando una integración fluida tanto con `https-proxy-agent` como con `socks-proxy-agent`.
* **Alto porcentaje de éxito:** Un porcentaje de éxito promedio del 99.98% minimiza la necesidad de un manejo de errores complejo y reintentos en tu código de Node.js.
**Proxies Scrapeless** proporciona cobertura global, transparencia y rendimiento altamente estable, lo que lo convierte en una opción más sólida y confiable que otras alternativas, especialmente para aplicaciones de datos críticas para negocios y profesionales que requieren un **scraping** [2] confiable y **soluciones de productos** [3] con Node.js.
## Conclusión
La integración de proxies con `node-fetch` requiere el uso de bibliotecas de agentes especializadas como `https-proxy-agent` y `socks-proxy-agent`. Al configurar correctamente estos agentes con un proveedor de proxies de alta calidad como Proxies Scrapeless, puedes asegurar que tus aplicaciones de Node.js realicen solicitudes web con la anonimidad, velocidad y fiabilidad necesarias para una adquisición de datos exitosa.
---
## Referencias
[1] <a href="https://nodejs.org/api/http.html#http_class_http_agent" rel="nofollow">**Documentación de Node.js: Clase: http.Agent**</a>
[2] <a href="https://www.npmjs.com/package/node-fetch" rel="nofollow">**npm: node-fetch**</a>
[3] <a href="https://www.npmjs.com/package/https-proxy-agent" rel="nofollow">**npm: https-proxy-agent**</a>
[4] <a href="https://www.npmjs.com/package/socks-proxy-agent" rel="nofollow">**npm: socks-proxy-agent**</a>
[5] <a href="https://www.ietf.org/rfc/rfc1928.html" rel="nofollow">**IETF RFC 1928: Protocolo SOCKS Versión 5**</a>
En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.



