Pular para o conteúdo principal
Voltar ao blog
Web Scraping Bright Data Node.js Playwright

Bright Data num scraper: quando usar Web Unlocker, Scraping Browser ou proxies residenciais

Que produto da Bright Data resolve cada bloqueio (403, CAPTCHA, 429, país), como ligá-lo a Node.js e Playwright e ativá-lo só onde é preciso.

JM
Javier Manzano
CEO & Co-founder • 29 de outubro de 2026
Bright Data num scraper: quando usar Web Unlocker, Scraping Browser ou proxies residenciais

Há três sintomas que acabam na mesma pergunta. O site devolve 403 ao seu scraper. Ou responde com uma página de verificação em vez do conteúdo. Ou funciona durante alguns pedidos e depois responde 429 ou deixa de responder. A pergunta é se é preciso pagar a um fornecedor como a Bright Data.

Às vezes, sim. Mas antes de contratar o que quer que seja convém descartar o que é barato, porque uma parte dos bloqueios resolve-se numa linha de código. E, quando é preciso, convém ativá-lo só nas fontes que precisam.

Primeiro, descarte o que é barato

O User-Agent. O axios identifica-se por defeito como axios/1.x, e muitos sites bloqueiam esse User-Agent sem mais análise. Enviar os cabeçalhos de um navegador real (User-Agent, Accept, Accept-Language) desbloqueia mais fontes do que seria de esperar.

O ritmo. Um 429 é o site a pedir-lhe que vá mais devagar. Respeite o cabeçalho Retry-After, espace os pedidos e pergunte-se se precisa mesmo de consultar de hora a hora algo que muda uma vez por dia.

Um navegador headless próprio. Se o conteúdo é desenhado pelo JavaScript, o Playwright costuma bastar. Explicamo-lo em detalhe em como escolher a estratégia de cada fonte.

Se, mesmo assim, a fonte continuar a devolver 403, o bloqueio depende de algo que não controla a partir do seu servidor: a reputação do IP do seu centro de dados, a impressão digital do navegador ou um CAPTCHA. É aí que entra a Bright Data.

Que produto para cada sintoma

SintomaProduto da Bright DataPorquê
403 ou página de verificação, com o conteúdo no HTMLWeb UnlockerResolve CAPTCHAs, impressão digital e novas tentativas por trás de um único pedido
Bloqueio anti-bots numa página que precisa de JavaScript ou de interaçãoScraping BrowserNavegador remoto com o desbloqueio incluído; o seu código de Playwright não muda
429 ou bloqueio por IP ao fim de alguns pedidosProxies residenciais ou ISPDistribuem os pedidos por IPs com melhor reputação
Conteúdo diferente consoante o paísProxies com país fixoO pedido sai a partir de um IP do país de que precisa
Resultados do Google ou do BingSERP APIDevolve os resultados já estruturados em JSON
Domínios grandes (marketplaces, perfis profissionais)Web Scraper API ou DatasetsA Bright Data já mantém o extrator; o utilizador pede os dados

Cada um contrata-se e configura-se como uma «zona» no painel da Bright Data, com as suas próprias credenciais. Isso permite usar vários num mesmo projeto, cada um nas fontes que precisam dele.

Web Unlocker: o que menos muda o seu código

O Web Unlocker pode ser usado de duas formas. A mais simples é como um proxy: o pedido sai igual ao de antes e a Bright Data trata do desbloqueio pelo caminho.

import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';

const { BRD_CUSTOMER, BRD_UNLOCKER_ZONE, BRD_UNLOCKER_PASSWORD } = process.env;

const agent = new HttpsProxyAgent(
  `http://brd-customer-${BRD_CUSTOMER}-zone-${BRD_UNLOCKER_ZONE}:${BRD_UNLOCKER_PASSWORD}@brd.superproxy.io:33335`,
);

const { data: html } = await axios.get(url, { httpsAgent: agent, proxy: false });

Como a Bright Data interceta a ligação HTTPS para a desbloquear, é preciso carregar o seu certificado CA no cliente (por exemplo com NODE_EXTRA_CA_CERTS). Desativar a verificação TLS para despachar é má ideia: afeta todo o processo, não só esse pedido.

A outra forma é a sua API REST: um POST para https://api.brightdata.com/request com a zona e o URL de destino, que devolve o HTML. É mais cómoda se o scraper corre num ambiente onde configurar um proxy é incómodo, como algumas funções serverless.

Nos dois casos, o que vem a seguir (cheerio, seletores, normalização) não muda.

Scraping Browser: o seu Playwright, com outro navegador

Se a fonte precisa de um navegador, o Scraping Browser substitui o Chromium que lança no seu servidor por um remoto na infraestrutura da Bright Data. A ligação faz-se por CDP:

import { chromium } from 'playwright';

const { BRD_CUSTOMER, BRD_BROWSER_ZONE, BRD_BROWSER_PASSWORD } = process.env;
const endpoint = `wss://brd-customer-${BRD_CUSTOMER}-zone-${BRD_BROWSER_ZONE}:${BRD_BROWSER_PASSWORD}@brd.superproxy.io:9222`;

const browser = await chromium.connectOverCDP(endpoint);
try {
  const page = await browser.newPage();
  await page.goto(url, { timeout: 120_000 });
  await page.waitForSelector('.agenda-item');
  // ...a mesma extração que com o navegador local
} finally {
  await browser.close();
}

O que muda em relação a um navegador local:

  • Mais latência. O navegador está longe e faz o desbloqueio antes de lhe devolver a página. Suba os timeouts de navegação.
  • Uma sessão por fonte. Abrimos o navegador, extraímos e fechamos. Manter sessões longas abertas consome e não acrescenta nada.
  • Poupa o binário. Deixa de ser preciso instalar o Chromium na imagem Docker ou vigiar o seu caminho em cada ambiente, que é uma das causas de falha que temos documentadas em como vigiamos os scrapers em produção.

Proxies: quando o problema é o IP

Se o site não tem proteção anti-bots mas limita por IP, ou mostra conteúdo diferente consoante o país, bastam proxies. A Bright Data oferece quatro tipos:

  • Datacenter: os mais baratos e rápidos, mas com IPs fáceis de identificar como não residenciais.
  • ISP: IPs residenciais alojados em centros de dados. Estáveis e rápidos; bons para sessões longas.
  • Residenciais: IPs de dispositivos reais. Os mais difíceis de bloquear.
  • Móveis: IPs de operadoras móveis, para os casos mais exigentes.

Há dois parâmetros que se fixam no nome de utilizador do proxy:

  • -country-es faz com que o pedido saia a partir de Espanha.
  • -session-<id> mantém o mesmo IP entre pedidos, útil quando o site associa a paginação ou os cookies ao IP.

Integrá-la como mais uma estratégia

Quando integramos a Bright Data, o transporte passa a ser uma propriedade da fonte, não do código. Na configuração de cada fonte:

{
  "strategy": "html-scraper",
  "transport": "unlocker",
  "listUrl": "https://ejemplo.com/agenda"
}

com transport a direct, unlocker, browser ou proxy. O cliente HTTP ou o navegador são construídos a partir desse campo, e o resto do pipeline não sabe se o pedido passou pela Bright Data. Passar uma fonte para a Bright Data, ou devolvê-la à saída direta, é editar um campo.

As credenciais vão em variáveis de ambiente, uma zona por produto. Nunca na configuração da fonte, que costuma estar na base de dados e é vista por mais gente.

Controlar o consumo

A Bright Data cobra por utilização, e a unidade depende do produto: pedidos, GB transferidos ou resultados. Para que a fatura não surpreenda:

  • Meça por fonte. Pedidos, taxa de sucesso e volume, guardados com cada execução. Uma fonte que de repente consome o triplo costuma estar a falhar e a repetir.
  • Não peça fichas que já tem. Se a listagem traz um identificador estável, visite a ficha de detalhe só dos elementos novos.
  • Ajuste a frequência. A fonte que muda uma vez por dia não precisa de ser executada de hora a hora.
  • Reveja todos os meses que fontes podem voltar a sair diretas. Os sites mudam de fornecedor de proteção e, às vezes, aliviam-na.

O que a Bright Data não resolve

A Bright Data resolve o acesso técnico. Tudo o resto continua a ser trabalho seu:

  • Os redesigns. Se o site mudar as suas classes CSS, o seletor falha na mesma. Os smoke tests continuam a ser necessários.
  • As datas, os preços e os duplicados. A normalização é a mesma com ou sem desbloqueio.
  • Os limites legais. Termos de utilização, direitos sobre bases de dados e RGPD, se houver dados pessoais, aplicam-se na mesma. A Bright Data tem ainda um processo de verificação de clientes e pode restringir certos destinos ou usos.

Se tem fontes que lhe devolvem 403 ou CAPTCHA, na nossa página de integração com a Bright Data explicamos como a montamos, e no serviço de web scraping como encaixa no resto do pipeline.

Não perca nada

JM

Javier Manzano

CEO & Co-founder na Soamee

Apaixonado por tecnologia e desenvolvimento de software. Compartilhando conhecimentos e experiências para ajudar outros desenvolvedores a crescer.

Gostou deste artigo?

Se você precisa de ajuda com seu projeto de desenvolvimento, estamos aqui para você.

Bright Data: Unlocker, Scraping Browser ou proxies

Conte-nos seu desafio. Propomos uma solução.

Sem compromisso. Em menos de 24 horas, você recebe uma proposta com escopo, cronograma e orçamento. Sem letras miúdas.

Agende uma call gratuita →