Empresa brasileira · Entrega automática · Suporte em português Seg a sex, 9h as 18h · PIX em reais
ProxyBox
Automação

Proxy em Playwright, Puppeteer e Scrapy

Como autenticar proxy HTTP da ProxyBox no Playwright, no Puppeteer e no Scrapy — server, username, password, o que não colocar na URL do Chromium e como validar a saída.

2 min de leitura Atualizado em 09 de setembro de 2026

Coleta e teste de página usam o mesmo produto de rede; o que muda é a API da ferramenta. Este guia cobre as três que listamos como compatíveis e ainda não tinham passo a passo. Para contas logadas, volte aos guias de AdsPower ou n8n.

Credenciais: host, porta HTTP, usuário e senha no painel. Valide antes com teste / cURL.

Playwright

A API oficial aceita proxy na hora de lançar o browser — incluindo usuário e senha, sem gambiarra na URL.

import { chromium } from 'playwright'

const browser = await chromium.launch({
  proxy: {
    server: 'http://p1.exemplo.com:8000',
    username: 'seu-usuario',
    password: 'sua-senha',
  },
})

const page = await browser.newPage()
await page.goto('https://api.ipify.org?format=json')
console.log(await page.textContent('body'))
await browser.close()

SOCKS5: server: 'socks5://p1.exemplo.com:1080' com os mesmos username / password. Contexto isolado (browser.newContext({ proxy: … })) se cada aba precisa de um IP diferente.

Puppeteer

O Chrome do Puppeteer não deve receber http://user:pass@host. Separe servidor e autenticação:

import puppeteer from 'puppeteer'

const browser = await puppeteer.launch({
  args: ['--proxy-server=http://p1.exemplo.com:8000'],
})

const page = await browser.newPage()
await page.authenticate({
  username: 'seu-usuario',
  password: 'sua-senha',
})

await page.goto('https://api.ipify.org?format=json')
console.log(await page.content())
await browser.close()

Se authenticate não pegar em algum fluxo (PDF, worker), use proxy-chain como no guia WPPConnect: o browser fala com um proxy local sem senha.

Scrapy

Scrapy não lança Chrome por padrão. A URL com usuário e senha no request.meta é o caminho documentado:

# settings.py — opcional, default para todos os requests
# DOWNLOADER_MIDDLEWARES já inclui HttpProxyMiddleware

# no spider
def start_requests(self):
    yield scrapy.Request(
        "https://api.ipify.org?format=json",
        meta={
            "proxy": "http://seu-usuario:[email protected]:8000",
        },
    )

Rotação: um middleware seu escolhe a URL de proxy por request. Não aponte o crawler para o mesmo ISP da BM. Residencial por GB ou IPv6 quando o alvo fala IPv6.

Respeite robots, termos e a política de uso aceitável.

Depois de configurar

Perguntas frequentes

Posso passar usuario:senha na URL do --proxy-server?
No Chromium isso falha com frequência. Playwright tem campos username e password. Puppeteer usa page.authenticate ou proxy-chain. Scrapy usa a URL completa no meta porque não é Chrome.
Serve o mesmo IP de contas de Ads?
Não misture coleta e BM no mesmo endereço. Residencial por GB ou IPv6 em lote para crawler; IPv4/ISP fixo para conta.
SOCKS5 nestas três?
Scrapy e bibliotecas HTTP lidam bem com SOCKS via middleware extra. Playwright aceita socks5 no server. Puppeteer+SOCKS+senha é o caso mais frágil — HTTP primeiro.

Travou em alguma etapa?

Manda o print do erro no WhatsApp. Respondemos em português e, na maioria dos casos, o problema é um campo trocado entre host e porta.