# Chrome

El entorno de Headless Browser Chrome proporciona navegadores remotos de alto rendimiento que se ejecutan en servidores dedicados y usan proxies residenciales para la conexión. Estos entornos de navegador son rápidos, estables y altamente configurables. Pueden actuar como un reemplazo directo de tu infraestructura de navegador local.

## Características clave

* Rendimiento rápido y estable
* Selección de cualquier país de proxy
* Compatible con Chrome DevTools Protocol (CDP)

## Detalles de conexión

Conéctate a UBC usando el siguiente endpoint WebSocket:

```
wss://ubc.oxylabs.io
```

## Uso básico

{% tabs %}
{% tab title="Python (Playwright)" %}

```python
from playwright.sync_api import sync_playwright

username = "your-username"
password = "your-password"
endpoint = "ubc.oxylabs.io"
browser_url = f"wss://{username}:{password}@{endpoint}"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(browser_url)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}

{% tab title="JavaScript (Playwright)" %}

```javascript
import { chromium } from 'playwright';

(async () => {
    const username = 'your-username';
    const password = 'your-password';
    const endpoint = 'ubc.oxylabs.io';
    const browserUrl = `wss://${username}:${password}@${endpoint}`;

    const browser = await chromium.connectOverCDP(browserUrl);
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}

{% tab title="JavaScript (Puppeteer)" %}

```javascript
import puppeteer from 'puppeteer';

(async () => {
  const username = 'your-username';
  const password = 'your-password';
  const endpoint = 'ubc.oxylabs.io';
  const browserUrl = `wss://${username}:${password}@${endpoint}`;

  const browser = await puppeteer.connect({
    browserWSEndpoint: browserUrl
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await browser.close();
})();
```

{% endtab %}
{% endtabs %}

## Infraestructura de proxy de Estados Unidos

Los usuarios que operan principalmente en EE. UU. pueden conectarse directamente a la infraestructura con base en EE. UU. a través del punto de entrada especial. Esto garantiza un tiempo de carga más rápido y una mejor eficiencia de navegación. Para establecer la conexión, introduce lo siguiente:

```
wss://ubc-us.oxylabs.io
```

Ejemplos de código:

{% tabs %}
{% tab title="Python (Playwright)" %}

```python
from playwright.sync_api import sync_playwright

username = "your-username"
password = "your-password"
endpoint = "ubc-us.oxylabs.io"
browser_url = f"wss://{username}:{password}@{endpoint}"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(browser_url)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}

{% tab title="JavaScript (Playwright)" %}

```javascript
import { chromium } from 'playwright';

(async () => {
    const username = 'your-username';
    const password = 'your-password';
    const endpoint = 'ubc-us.oxylabs.io';
    const browserUrl = `wss://${username}:${password}@${endpoint}`;

    const browser = await chromium.connectOverCDP(browserUrl);
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}

{% tab title="JavaScript (Puppeteer)" %}

```javascript
import puppeteer from 'puppeteer';

(async () => {
  const username = 'your-username';
  const password = 'your-password';
  const endpoint = 'ubc-us.oxylabs.io';
  const browserUrl = `wss://${username}:${password}@${endpoint}`;

  const browser = await puppeteer.connect({
    browserWSEndpoint: browserUrl
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await browser.close();
})();
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Nota:** esta solución principalmente reduce el tiempo de respuesta para los usuarios con base en EE. UU., y no debe confundirse con la selección de geolocalización del proxy. Más sobre eso en la siguiente sección.&#x20;
{% endhint %}

## Argumentos del navegador

Headless Browser Chrome acepta argumentos adicionales del navegador pasados con la URL de conexión en el formato de `?bargs=`. Estos parámetros GET especifican los argumentos de línea de comandos con los que deben iniciarse los navegadores.&#x20;

1. Si el argumento debe tener un valor, usamos `bargs=argname:argvalue`;
2. Si el argumento es solo una bandera, usamos `bargs=flagname` .

Actualmente, Oxylabs Headless Browser Chrome admite los siguientes argumentos:

<table><thead><tr><th width="350.1015625">Argumento</th><th>Descripción</th></tr></thead><tbody><tr><td><code>force-color-profile:&#x3C;profile></code></td><td>Obliga a que todos los monitores se traten como si tuvieran el perfil de color especificado.</td></tr><tr><td><code>window-position:X,Y</code></td><td>Especifica la posición inicial de la ventana.</td></tr><tr><td><code>hide-scrollbars</code></td><td>Evita crear barras de desplazamiento para el contenido web; útil para tomar capturas de pantalla consistentes.</td></tr><tr><td><code>enable-features:&#x3C;feature1>,&#x3C;feature2>,&#x3C;feature3></code></td><td>Lista de nombres de funciones separados por comas que se deben habilitar.</td></tr><tr><td><code>disable-notifications</code></td><td>Deshabilita las APIs Web Notification y Push.</td></tr></tbody></table>

Ejemplo de uso:

{% tabs %}
{% tab title="Python (Playwright)" %}

```python
from playwright.sync_api import sync_playwright

username = "your-username"
password = "your-password"
endpoint = "ubc.oxylabs.io"
browser_url = f"wss://{username}:{password}@{endpoint}/?bargs=force-color-profile:srgb&bargs=window-position:100,100"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(browser_url)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}
{% endtabs %}
