# Headless Browser

Headless Browser permite que você execute e controle uma experiência remota de navegação sem interface gráfica sem a complexidade de gerenciá-la localmente ou em sua própria infraestrutura. Ele oferece uma forma simples de executar automação baseada em navegador, testes e web scraping sem lidar com configuração do navegador, restrições de recursos ou desafios de detecção.&#x20;

### Bibliotecas suportadas

Headless Browser funciona com qualquer biblioteca que suporte o **Chrome DevTools Protocol (CDP)**. Isso inclui:

* [Playwright](https://playwright.dev/) (para Firefox, as versões suportadas do Playwright são 1.51 e 1.56)
* [Puppeteer](https://pptr.dev/)
* Outros frameworks de automação compatíveis com CDP

### Opções do navegador

Headless Browser oferece dois ambientes de navegador especializados:

* [navegador baseado em Chrome](https://developers.oxylabs.io/scraping-solutions/headless-browser/chrome) – navegadores remotos de alto desempenho com stealth avançado, executados em servidores dedicados com proxies integrados
* [navegador baseado em Firefox](https://developers.oxylabs.io/scraping-solutions/headless-browser/firefox) (Legado) - implementação do Firefox com recursos integrados de antidetecção e integração de proxy. Observe que este ambiente será descontinuado em breve.

Além disso, Headless Browser permite duas funcionalidades relacionadas à localização:

* Otimização de desempenho para usuários baseados nos EUA,
* Parâmetros de geolocalização para segmentação por país, cidade e estado.

### **Limites de taxa**

Cada um tem **100 sessões simultâneas** e pode iniciar até **10 sessões por segundo para cada navegador** (Chrome e Firefox). Isso garante estabilidade e desempenho do serviço.

Para solicitar um limite maior para sua conta, entre em contato com o Suporte ao Cliente da Oxylabs via [chat ao vivo](https://oxylabs.drift.click/oxybot) ou [email](mailto:support@oxylabs.io).

### Exemplos de início rápido

{% tabs %}
{% tab title="Python" %}

```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')
    print(page.title())
    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');
    console.log(await page.title());
    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');
  console.log(await page.title());
  await browser.close();
})();
```

{% endtab %}
{% endtabs %}

Consulte a documentação específica do navegador para obter opções detalhadas de configuração:

* [navegador baseado em Chrome](https://developers.oxylabs.io/documentation/pt-br/solucoes-de-scraping/headless-browser/chrome)
* [navegador baseado em Firefox](https://developers.oxylabs.io/documentation/pt-br/solucoes-de-scraping/headless-browser/firefox) (Legado)
