> 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/pt-br/proxy-integrations/puppeteer.md).

# Puppeteer

Configure o Puppeteer com Proxies da Oxylabs para controlar o Chrome ou Chromium sem interface via Node.js. Guia passo a passo com exemplos de código.

[**Puppeteer**](https://developer.chrome.com/docs/puppeteer/) é uma biblioteca Node que fornece uma API de alto nível para controlar o Chrome ou Chromium sem interface gráfica por meio do DevTools Protocol.

Assista ao nosso guia em vídeo ou siga as etapas abaixo para integrar o Puppeteer com os seguintes Proxies Oxylabs:

* [**Residential & Mobile Proxies**](#residential-and-mobile-proxies)
* [**Datacenter Proxies**](#datacenter-proxies)
* [**Dedicated Datacenter Proxies (Empresarial)**](#dedicated-datacenter-proxies-enterprise)
* [**Dedicated Datacenter Proxies (Autoatendimento)**](#dedicated-datacenter-proxies-self-service)
* [**ISP Proxies**](#isp-proxies)
* [**Dedicated ISP Proxies**](#dedicated-isp-proxies)

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

### **Etapa 1**

Instale [Node.js](https://nodejs.org/en/download) e um editor de código de sua preferência. (Pule esta etapa se você já tiver isso)

### **Etapa 2**

Crie um projeto Node.js e instale os pacotes necessários.

### **Etapa 3**

No Puppeteer, preencha o valor, por exemplo:

No seu script do Puppeteer, atribua o `--proxy-server` valor conforme mostrado abaixo:

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

Insira seu `valor de` server de acordo com o tipo de proxy Oxylabs escolhido:

* [Residential & Mobile Proxies](#residential-and-mobile-proxies)
* [Datacenter Proxies](#datacenter-proxies)
* [Dedicated Datacenter Proxies (Empresarial)](#dedicated-datacenter-proxies-enterprise)
* [Dedicated Datacenter Proxies (Autoatendimento)](#dedicated-datacenter-proxies-self-service)
* [ISP Proxies](#isp-proxies)
* [Dedicated ISP Proxies](#dedicated-isp-proxies)

#### Residential & Mobile Proxies

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

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

**Porta:** `7777`

**Nome de usuário:** `customer-USERNAME`

**Senha:** `PASSWORD`

{% hint style="warning" %}
**Observação:** Não se esqueça de adicionar `customer-` prefixo ao seu nome de usuário.
{% endhint %}

Você também pode usar **parâmetros adicionais** com proxies residenciais e móveis para definir a geolocalização (país, estado, cidade etc.) e controlar sessões. Confira o [para saber mais.](/products/pt-br/proxies/residential-proxies.md) Dedicated Datacenter Proxies empresariais

#### Datacenter Proxies

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

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

**Porta:** `8001`

**Nome de usuário:** `user-username`

**Senha:** `senha`

{% hint style="warning" %}
**Observação:** Não se esqueça de adicionar `user-` prefixo ao seu nome de usuário.
{% endhint %}

**Assinatura pay-per-IP**

A porta é o número sequencial atribuído a um endereço IP da [lista de proxies adquirida](/products/pt-br/proxies/datacenter-proxies/proxy-list.md). Assim, a porta `8001` usa o primeiro endereço IP da sua lista. Você também pode ativar [de IP do proxy](/products/pt-br/proxies/datacenter-proxies/ip-control.md) definindo a porta como `8000`.

Além disso, você pode especificar o [geolocalização](/products/pt-br/proxies/datacenter-proxies/select-country.md), por exemplo, os EUA, definindo o **Nome de usuário do proxy** para `user-USERNAME-country-US`.

**Assinatura pay-per-traffic**

A porta `8001` escolhe um endereço IP aleatório, mas permanece consistente durante uma sessão. Como alternativa, você pode [alternar os IPs do proxy](/products/pt-br/proxies/datacenter-proxies/ip-control.md) a cada solicitação usando a porta `8000`.

Se você quiser usar um [geolocalização](/products/pt-br/proxies/datacenter-proxies/select-country.md), por exemplo, os EUA, defina o nome de usuário do proxy como `user-USERNAME-country-US`.

#### Dedicated Datacenter Proxies (Empresarial)

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

**Host:** `1.2.3.4` (endereço IP da sua [lista de proxies adquirida](/products/pt-br/proxies/dedicated-datacenter-proxies/enterprise/proxy-lists.md))

**Porta:** `60000` (SOCKS5) `1180` USERNAME

**Nome de usuário:** `nome de usuário`

**Senha:** `senha`

Para Enterprise Dedicated Datacenter Proxies (adquiridos por meio da equipe de vendas), você terá que escolher um endereço IP do conjunto adquirido [lista de proxies adquirida](/products/pt-br/proxies/dedicated-datacenter-proxies/enterprise/proxy-lists.md).

#### Dedicated Datacenter Proxies (Autoatendimento)

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

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

**Porta:** `8001`

**Nome de usuário:** `user-username`

**Senha:** `senha`

{% hint style="warning" %}
**Observação:** Não se esqueça de adicionar `user-` prefixo ao seu nome de usuário.
{% endhint %}

Para Self-Service Dedicated Datacenter Proxies (adquiridos pelo painel da Oxylabs), a porta indica o número sequencial de um endereço IP do conjunto adquirido [lista de proxies adquirida](/products/pt-br/proxies/dedicated-datacenter-proxies/self-service/proxy-list.md). Se você quiser obter um IP diferente a cada solicitação, altere a Porta para `8000` para ativar [rotação de proxy](/products/pt-br/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`

**Porta:** `8001`

**Nome de usuário:** `user-username`

**Senha:** `senha`

{% hint style="warning" %}
**Observação:** Não se esqueça de adicionar `user-` prefixo ao seu nome de usuário.
{% endhint %}

Com ISP Proxies, a porta é atribuída a um endereço IP específico e à sua localização. Portanto, a porta `8001` sempre escolherá o primeiro IP da sua [lista de proxies adquirida](/products/pt-br/proxies/isp-proxies/proxy-list.md). Se você quiser obter um IP diferente a cada solicitação, altere a Porta para `8000` para ativar [rotação de proxy](/products/pt-br/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`

**Porta:** `8001`

**Nome de usuário:** `user-username`

**Senha:** `senha`

{% hint style="warning" %}
**Observação:** Não se esqueça de adicionar `user-` prefixo ao seu nome de usuário.
{% endhint %}

Você precisará escolher a porta atribuída a um endereço IP da lista comprada [lista de proxies adquirida](/products/pt-br/proxies/dedicated-isp-proxies/self-service/proxy-list.md), que você pode encontrar no painel da Oxylabs. A `8001` porta selecionará o primeiro endereço IP da sua lista para todas as solicitações. Use a porta `8000` para rotação automática [de IP do proxy](/products/pt-br/proxies/dedicated-isp-proxies/self-service/proxy-rotation.md).

### **Etapa 4**

Na `page.authenticate()`, insira o prefixo do usuário do proxy Oxylabs `nome de usuário` e `senha`. Um exemplo básico de código deve ficar parecido com isto:

```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" %}
**Observação:** Não se esqueça de adicionar `customer-` ou `user-` prefixo ao seu nome de usuário se o tipo de proxy escolhido exigir isso.
{% endhint %}

E é isso! Você integrou com sucesso os Proxies Oxylabs ao Puppeteer. Você também pode encontrar o `proxy-chain` tutorial e os guias de proxy rotativo na publicação original do blog sobre integração com o Puppeteer [aqui](https://oxylabs.io/resources/integrations/puppeteer).

Se você quiser aprender mais sobre web scraping com Puppeteer, leia nosso [post no blog](https://oxylabs.io/blog/puppeteer-tutorial).

### Erros comuns

<details>

<summary><strong>O Puppeteer está retornando um erro</strong></summary>

Um dos problemas que você pode encontrar é o Puppeteer retornar um erro quando você tenta se conectar a um servidor proxy. Os motivos para isso podem ser diversos, sendo o principal o fato de seu servidor proxy exigir autenticação com as credenciais do proxy.

Para resolver esse problema, você precisará inserir o nome de usuário e a senha do seu servidor proxy no `opções do Puppeteer` objeto. Depois disso, tente usar um proxy novamente.

</details>

<details>

<summary><strong>A página não está carregando</strong></summary>

Embora o Puppeteer consiga se conectar ao proxy, ainda pode ter dificuldade para carregar a página. O motivo mais comum disso é uma conexão de internet ruim.

A maneira mais comum de corrigir esse problema é aumentar o tempo limite no `opções do Puppeteer` objeto. Depois disso, usar um proxy não deve mais ser um problema.

</details>

<details>

<summary><strong>Outros problemas</strong></summary>

Se o problema continuar sem solução, isso significa que, por algum motivo, seu proxy não consegue manter a conexão. Nesse caso, verifique seu servidor proxy ou entre em contato com seu provedor para obter mais assistência.

</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/pt-br/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.
