> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/integrations/es/proxy-integrations/puppeteer.md).

# Puppeteer

Configura Puppeteer con Proxies de Oxylabs para controlar Chrome o Chromium sin interfaz mediante Node.js. Guía paso a paso con ejemplos de código.

[**Puppeteer**](https://developer.chrome.com/docs/puppeteer/) es una biblioteca de Node que proporciona una API de alto nivel para controlar Chrome o Chromium sin interfaz gráfica a través del protocolo DevTools.

Mira nuestra guía en video o sigue los pasos a continuación para integrar Puppeteer con los siguientes Proxies de Oxylabs:

* [**Proxies residenciales y Mobile Proxies**](#residential-and-mobile-proxies)
* [**Datacenter Proxies**](#datacenter-proxies)
* [**Dedicated Datacenter Proxies (Enterprise)**](#dedicated-datacenter-proxies-enterprise)
* [**Dedicated Datacenter Proxies (autoservicio)**](#dedicated-datacenter-proxies-self-service)
* [**ISP Proxies**](#isp-proxies)
* [**Dedicated ISP Proxies**](#dedicated-isp-proxies)

{% embed url="<https://youtu.be/9xyvfs0Qikw>" %}

### **Paso 1**

Instalar [Node.js](https://nodejs.org/en/download) y un editor de código de su elección. (Omita este paso si ya lo tiene)

### **Paso 2**

Cree un proyecto de Node.js e instale los paquetes requeridos.

### **Paso 3**

Dentro de Puppeteer, rellena el valor, por ejemplo:

Dentro de tu script de Puppeteer, asigna el `--proxy-server` valor como se muestra a continuación:

```javascript
(async () => {
    const browser = await puppeteer.launch({
        headless: false,
        args: [`--proxy-server=host:port`]
    });
```

Introduzca su `servidor` valor según el tipo de Proxies de Oxylabs que haya elegido:

* [Proxies residenciales y Mobile Proxies](#residential-and-mobile-proxies)
* [Datacenter Proxies](#datacenter-proxies)
* [Dedicated Datacenter Proxies (Enterprise)](#dedicated-datacenter-proxies-enterprise)
* [Dedicated Datacenter Proxies (autoservicio)](#dedicated-datacenter-proxies-self-service)
* [ISP Proxies](#isp-proxies)
* [Dedicated ISP Proxies](#dedicated-isp-proxies)

#### Proxies residenciales y Mobile Proxies

```javascript
args: [`--proxy-server=pr.oxylabs.io:7777`] //--proxy-server=host:port
```

**Host:** `pr.oxylabs.io`

**Puerto:** `7777`

**Nombre de usuario:** `customer-USERNAME`

**Contraseña:** `PASSWORD`

{% hint style="warning" %}
**Nota:** No olvides añadir `customer-` prefijo a tu nombre de usuario.
{% endhint %}

También puedes usar **parámetros adicionales** con Proxies residenciales y Mobile Proxies para establecer la geolocalización (país, estado, ciudad, etc.) y controlar las sesiones. Consulta la [documentación de Residential Proxies](/products/es/proxies/residential-proxies.md) para obtener más información.

#### Datacenter Proxies

```javascript
args: [`--proxy-server=dc.oxylabs.io:8001`] //--proxy-server=host:port
```

**Host:** `dc.oxylabs.io`

**Puerto:** `8001`

**Nombre de usuario:** `user-username`

**Contraseña:** `contraseña`

{% hint style="warning" %}
**Nota:** No olvides añadir `user-` prefijo a tu nombre de usuario.
{% endhint %}

**suscripción de pago por IP**

El puerto es el número secuencial asignado a una dirección IP del [que puede encontrar en el panel de Oxylabs. El](/products/es/proxies/datacenter-proxies/proxy-list.md). Así, el puerto `8001` usa la primera dirección IP de tu lista. También puedes habilitar [rotación automática de IP del proxy](/products/es/proxies/datacenter-proxies/ip-control.md) estableciendo el puerto en `8000`.

Además, puedes especificar el [geoubicación](/products/es/proxies/datacenter-proxies/select-country.md), por ejemplo, Estados Unidos, estableciendo el **nombre de usuario del proxy** en `user-USERNAME-country-US`.

**suscripción de pago por tráfico**

El puerto `8001` elige una dirección IP aleatoria, pero se mantiene constante durante una sesión. Como alternativa, puedes [rotar las IP de proxy](/products/es/proxies/datacenter-proxies/ip-control.md) con cada solicitud usando el puerto `8000`.

Si quieres usar una [geoubicación](/products/es/proxies/datacenter-proxies/select-country.md), por ejemplo, EE. UU., establece el nombre de usuario del proxy en `user-USERNAME-country-US`.

#### Dedicated Datacenter Proxies (Enterprise)

```javascript
args: [`--proxy-server=1.2.3.4:60000`] //--proxy-server=host:port
```

**Host:** `1.2.3.4` (dirección IP de tu [que puede encontrar en el panel de Oxylabs. El](/products/es/proxies/dedicated-datacenter-proxies/enterprise/proxy-lists.md))

**Puerto:** `60000` (HTTP), `1180` (SOCKS5)

**Nombre de usuario:** `username`

**Contraseña:** `contraseña`

Para Dedicated Datacenter Proxies Enterprise (comprados a través del equipo de ventas), tendrás que elegir una dirección IP de la adquirida [que puede encontrar en el panel de Oxylabs. El](/products/es/proxies/dedicated-datacenter-proxies/enterprise/proxy-lists.md).

#### Dedicated Datacenter Proxies (autoservicio)

```javascript
args: [`--proxy-server=ddc.oxylabs.io:8001`] //--proxy-server=host:port
```

**Host:** `ddc.oxylabs.io`

**Puerto:** `8001`

**Nombre de usuario:** `user-username`

**Contraseña:** `contraseña`

{% hint style="warning" %}
**Nota:** No olvides añadir `user-` prefijo a tu nombre de usuario.
{% endhint %}

Para Dedicated Datacenter Proxies de autoservicio (comprados a través del panel de Oxylabs), el puerto indica el número secuencial de una dirección IP de la adquirida [que puede encontrar en el panel de Oxylabs. El](/products/es/proxies/dedicated-datacenter-proxies/self-service/proxy-list.md). Si quieres obtener una IP distinta con cada solicitud, cambia el Puerto a `8000` para habilitar [la rotación de proxy](/products/es/proxies/dedicated-datacenter-proxies/self-service/proxy-rotation.md).

#### ISP Proxies

```javascript
args: [`--proxy-server=isp.oxylabs.io:8001`] //--proxy-server=host:port
```

**Host:** `isp.oxylabs.io`

**Puerto:** `8001`

**Nombre de usuario:** `user-username`

**Contraseña:** `contraseña`

{% hint style="warning" %}
**Nota:** No olvides añadir `user-` prefijo a tu nombre de usuario.
{% endhint %}

Con ISP Proxies, el puerto se asigna a una dirección IP específica y su ubicación. Por lo tanto, el puerto `8001` siempre elegirá la primera IP de tu [que puede encontrar en el panel de Oxylabs. El](/products/es/proxies/isp-proxies/proxy-list.md). Si quieres obtener una IP distinta con cada solicitud, cambia el Puerto a `8000` para habilitar [la rotación de proxy](/products/es/proxies/isp-proxies/proxy-rotation.md).

#### Dedicated ISP Proxies

```javascript
args: [`--proxy-server=disp.oxylabs.io:8001`] //--proxy-server=host:port
```

**Host:** `disp.oxylabs.io`

**Puerto:** `8001`

**Nombre de usuario:** `user-username`

**Contraseña:** `contraseña`

{% hint style="warning" %}
**Nota:** No olvides añadir `user-` prefijo a tu nombre de usuario.
{% endhint %}

Necesitarás elegir el puerto asignado a una dirección IP de los Proxies comprados [que puede encontrar en el panel de Oxylabs. El](/products/es/proxies/dedicated-isp-proxies/self-service/proxy-list.md), que puedes encontrar en el panel de Oxylabs. El `8001` puerto elegirá la primera dirección IP de tu lista para todas las solicitudes. Usa el puerto `8000` para la [rotación automática de IP del proxy](/products/es/proxies/dedicated-isp-proxies/self-service/proxy-rotation.md).

### **Paso 4**

Bajo la `page.authenticate()`, introduce el usuario de Proxies de Oxylabs `username` y `contraseña`. Un ejemplo de código básico debería verse algo así:

```javascript
const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: ['--proxy-server=pr.oxylabs.io:7777]  
});
  const page = await browser.newPage();
    await page.authenticate({
        username: 'USERNAME',
        password: 'PASSWORD'
    });
    await page.goto('https://ip.oxylabs.io');
    await page.screenshot({path: 'example.png'});
    await browser.close();
})();
```

{% hint style="warning" %}
**Nota:** No olvides añadir `customer-` o `user-` prefijo a tu nombre de usuario si el tipo de proxy elegido lo requiere.
{% endhint %}

¡Y eso es todo! Has integrado con éxito los Proxies de Oxylabs con Puppeteer. También puedes encontrar el `proxy-chain` tutorial y las guías de proxy rotatorio en la publicación original del blog sobre la integración de Puppeteer [aquí](https://oxylabs.io/resources/integrations/puppeteer).

Si quieres aprender más sobre el web scraping con Puppeteer, lee nuestro [entrada del blog](https://oxylabs.io/blog/puppeteer-tutorial).

### Errores comunes

<details>

<summary><strong>Puppeteer está devolviendo un error</strong></summary>

Uno de los problemas que podrías encontrar es que Puppeteer devuelva un error cuando intentas conectarte a un servidor proxy. Las razones de esto pueden ser diversas, siendo la principal que tu servidor proxy requiera autenticación con las credenciales del proxy.

Para resolver este problema, deberás introducir el nombre de usuario y la contraseña de tu servidor proxy en el `Puppeteeroptions` objeto. Después de eso, prueba a usar un proxy de nuevo.

</details>

<details>

<summary><strong>La página no se está cargando</strong></summary>

Aunque Puppeteer podría conectarse al proxy, todavía puede tener problemas para cargar la página. La razón más común es una mala conexión a internet.

El método más común para solucionar este problema es aumentar el tiempo de espera en el `Puppeteeroptions` objeto. Una vez hecho esto, usar un proxy ya no debería ser un problema.

</details>

<details>

<summary><strong>Otros problemas</strong></summary>

Si el problema sigue sin resolverse, significa que, por alguna razón, tu proxy no logra mantener la conexión. En este caso, deberías comprobar tu servidor proxy o contactar a tu proveedor para obtener más ayuda.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/integrations/es/proxy-integrations/puppeteer.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
