Volver al blog

Cómo usar proxies con node-fetch: Una guía completa

Sophia Martinez
Sophia Martinez

Specialist in Anti-Bot Strategies

28-Nov-2025
html Copy
<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 Copy
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 Copy
// 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 Copy
const agent = new HttpsProxyAgent(proxyUrl);

Paso 4: Realiza la solicitud

Pasa el objeto agent creado en las opciones de fetch.

javascript Copy
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 Copy
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 Copy
// 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 Copy
const socksAgent = new SocksProxyAgent(socksProxyUrl);

Paso 4: Realiza la solicitud

Pasa el socksAgent en las opciones de fetch.

javascript Copy
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.

Copy
```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 &gt;
    </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.

Artículos más populares

Catalogar