# Chrome

O ambiente Headless Browser Chrome oferece navegadores remotos de alto desempenho executados em servidores dedicados e usando proxies residenciais para conexão. Esses ambientes de navegador são rápidos, estáveis e altamente configuráveis. Eles podem atuar como um substituto direto para sua infraestrutura de navegador local.

## Principais recursos

* Desempenho rápido e estável
* Seleção de qualquer país do proxy
* Compatível com Chrome DevTools Protocol (CDP)

## Detalhes da conexão

Conecte-se ao UBC usando o seguinte 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 %}

## Infraestrutura de proxy dos Estados Unidos

Usuários que operam principalmente nos EUA podem se conectar diretamente à infraestrutura baseada nos EUA por meio do ponto de entrada especial. Isso garante tempo de carregamento mais rápido e melhor eficiência de navegação. Para estabelecer a conexão, insira o seguinte:

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

Exemplos 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" %}
**Observação:** esta solução principalmente reduz o tempo de resposta para usuários baseados nos EUA e não deve ser confundida com a seleção de geolocalização do proxy. Mais sobre isso na seção a seguir.&#x20;
{% endhint %}

## Argumentos do navegador

Headless Browser Chrome aceita argumentos adicionais do navegador passados com a URL de conexão no formato `?bargs=`. Esses parâmetros GET especificam argumentos de linha de comando com os quais os navegadores devem ser iniciados.&#x20;

1. Se o argumento tiver valor, usamos `bargs=argname:argvalue`;
2. Se o argumento for apenas uma flag, usamos `bargs=flagname` .

Atualmente, o Headless Browser Chrome da Oxylabs oferece suporte aos seguintes argumentos:

<table><thead><tr><th width="350.1015625">Argumento</th><th>Descrição</th></tr></thead><tbody><tr><td><code>force-color-profile:&#x3C;profile></code></td><td>Força que todos os monitores sejam tratados como se tivessem o perfil de cor especificado.</td></tr><tr><td><code>window-position:X,Y</code></td><td>Especifica a posição inicial da janela.</td></tr><tr><td><code>hide-scrollbars</code></td><td>Impede a criação de barras de rolagem para conteúdo web – útil para tirar capturas de tela consistentes.</td></tr><tr><td><code>enable-features:&#x3C;feature1>,&#x3C;feature2>,&#x3C;feature3></code></td><td>Lista separada por vírgulas dos nomes dos recursos a serem ativados.</td></tr><tr><td><code>disable-notifications</code></td><td>Desativa as APIs Web Notification e Push.</td></tr></tbody></table>

Exemplo 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 %}
