---
title: "Evite a detecção de bots com o Playwright Stealth"
slug: avoid-bot-detection-with-playwright-stealth
date: 2024-02-20T15:51:47+00:00
modified: 2026-04-20T11:24:49+00:00
permalink: https://brightdata.com.br/blog/procedimentos/avoid-bot-detection-with-playwright-stealth
type: blog
---

[ Blog ](https://brightdata.com.br/blog "Blog") / [procedimentos](https://brightdata.com.br/blog/procedimentos)







 [procedimentos](https://brightdata.com.br/blog/procedimentos)

# Evite a detecção de bots com o Playwright Stealth

Contorne a detecção de bots com o plugin Playwright Stealth. Nosso guia rápido mostra como integrar o Stealth em seus scripts da Playwright, mantendo sua automação da web fluida e indetectável.

 8 min de leitura





 [ ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg) ](https://brightdata.com/blog/authors/antonello-zanini)

 [Antonello Zanini

Technical Writer

February 20, 2024

 ](https://brightdata.com/blog/authors/antonello-zanini)





 ![](https://media.brightdata.com.br/2024/02/Avoid-Bot-Detection-with-Playwright-Stealth.png)





Neste tutorial do Playwright Stealth, falaremos sobre:

- O que é a detecção de bots e por que ela representa um problema para a Playwright.
- O que é o Playwright Stealth.
- Como usá-lo em Python e JavaScript para evitar ser bloqueado.

Vamos lá!

## Detecção de bots como a maior limitação da Playwright

[Playwright](https://playwright.dev/python/docs/intro) é uma das bibliotecas Python mais populares para automação de navegadores. Em detalhes, ela é confiável e amplamente utilizada porque é desenvolvida e mantida diretamente pela Microsoft. Sua API intuitiva e de alto nível facilita o controle de navegadores headless ou headed em diferentes linguagens de programação. Isso significa que a Playwright é uma ótima ferramenta para desenvolvimento de bots entre navegadores e plataformas, testes automatizados e web scraping.

Playwright é uma das bibliotecas Python mais populares para automação de navegadores. Em detalhes, ela é confiável e amplamente utilizada porque é desenvolvida e mantida diretamente pela Microsoft. Sua API intuitiva e de alto nível facilita o controle de navegadores headless ou headed em diferentes linguagens de programação. Isso significa que a Playwright é uma ótima ferramenta para desenvolvimento de bots entre navegadores e plataformas, testes automatizados e web scraping.

O principal problema com a biblioteca é que ela pode ser facilmente detectada e bloqueada por tecnologias antibot, especialmente ao usar [navegadores no modo headless](/blog/proxy-101/what-is-a-headless-browser). Como isso é possível? Bem, a Playwright altera automaticamente o valor de propriedades e cabeçalhos especiais ao controlar navegadores headless. Por exemplo, ela define a configuração `navigator.webdriver` do Chrome como `true`.

As soluções de detecção de bots estão cientes dessas configurações e as analisam para verificar se o usuário atual é humano ou um bot. Quando esses mecanismos detectam qualquer configuração suspeita, eles categorizam o usuário como um bot e o bloqueiam imediatamente.

Por exemplo, considere [este teste de detecção de bots](https://arh.antoinevastel.com/bots/areyouheadless) para o modo headless. Visite a página em seu navegador e você verá:

![Página web exibindo a mensagem “Você não é Chrome headless”](https://media.brightdata.com.br/2024/02/Headless-chrome-checker.png)Perfeito, esse é o resultado que se esperaria!

Agora, tente visitar a mesma página na Playwright com a configuração padrão e extraia a resposta da página:

  ```
nimport asyncionfrom playwright.async_api import async_playwrightnnasync def main():n    async with async_playwright() as p:n        # launch the browsern        browser = await p.chromium.launch()n        # open a new pagen        page = await browser.new_page()nn        # visit the target pagen        await page.goto(u0022https://arh.antoinevastel.com/bots/areyouheadlessu0022)nn        # extract the answer contained on the pagen        answer_element = page.locator(u0022#resu0022)n        answer = await answer_element.text_content()nn        # print the resulting answern        print(f'The result is: u0022{answer}u0022')nn        # close the browser and release its resourcesn        await browser.close()nnasyncio.run(main())
```

Execute o programa Python, e ele mostrará:

  ```
The result is: u0022You are Chrome headlessu0022
```

Isso significa que a página de teste de automação de bots conseguiu detectar a solicitação feita pelo seu script automatizado como proveniente de um navegador headless.

Em outras palavras, a Playwright é uma ferramenta limitada que pode ser facilmente interrompida por tecnologias de detecção de bots. Para evitar isso, você pode substituir manualmente as configurações padrão e esperar o sucesso. Caso contrário, instale o plugin Playwright Stealth!

## Plugin Playwright Stealth: o que é e como funciona

`playwright-stealth` é um pacote Python que estende a Playwright substituindo configurações específicas para evitar a detecção de bots. O Playwright Stealth é uma versão do pacote npm `<a href="https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth" rel="noreferrer noopener nofollow" target="_blank">puppeteer-extra-plugin-stealth</a>`, que usa [módulos de evasão integrados](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth/evasions) para evitar vazamentos e alterar propriedades que expõem navegadores automatizados como bots. Por exemplo, ele exclui a propriedade `navigator.webdriver` e remove “headlessChrome” do cabeçalho User-Agent definido pelo Chrome no modo headless por padrão.

O objetivo do plugin Stealth é permitir que uma instância automatizada de navegador headless passe com êxito em todos os testes de detecção de bots em [sannysoft.com](https://bot.sannysoft.com/). No momento em que este artigo foi escrito, esse objetivo foi atingido. No entanto, [conforme mencionado na documentação oficial](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth#status), ainda existem métodos para detectar navegadores headless. Então, o que funciona hoje, pode não funcionar amanhã. Ignorar todos os mecanismos de detecção de bots não é totalmente possível, mas a biblioteca visa tornar esse processo o mais desafiador possível.

## Como usar o Playwright Stealth para evitar a detecção de bots

Siga as etapas abaixo para aprender como integrar o Playwright Stealth a um script da `Playwright` em Python para evitar ser bloqueado.

### Etapa 1: configurar um projeto da Playwright em Python

Aviso: se você já tem implementado um projeto em Python da [`Playwright`](https://github.com/microsoft/playwright-python), pode pular esta etapa.

Primeiro, certifique-se de ter o Python 3 instalado em sua máquina. Caso contrário, [baixe o instalador](https://www.python.org/downloads/), execute-o e siga o assistente de instalação.

Em seguida, use os comandos abaixo para configurar um projeto em Python chamado `playwright-demo`:

  ```
mkdir playwright-demoncd playwright-demo
```

Esses comandos criam a pasta `playwright-demo` e a inserem no terminal.

Inicialize um [ambiente virtual Python](https://docs.python.org/3/library/venv.html) e ative-o:

  ```
python -m venv envnenv/Scripts/activate
```

Execute o seguinte comando para instalar a Playwright:

  ```
pip install playwright
```

Isso vai demorar um pouco, então seja paciente.

Depois disso, instale os navegadores necessários com:

  ```
playwright install
```

Abra a pasta do projeto no IDE para Python de sua escolha e crie um arquivo `index.py`. Inicialize-o com as seguintes linhas:

  ```
import asyncionfrom playwright.async_api import async_playwrightnnasync def main():n    async with async_playwright() as p:n        browser = await p.chromium.launch()n        page = await browser.new_page()nn        # browser automation logic...        nn        await browser.close()nnasyncio.run(main())
```

O script acima inicia uma instância do Chromium no modo headless, abre uma nova página e finalmente fecha o navegador. É assim que fica um script básico da Playwright em Python.

Para executá-lo, digite:

  ```
python index.py
```

Perfeito, agora você tem um projeto da Playwright pronto para ser estendido com o Stealth Plugin!

### Etapa 2: instalar e usar o Stealth Plugin

Instale o plugin do Playwright Stealth com:

  ```
pip install playwright-stealth
```

Abra seu arquivo `index.py` e adicione a importação abaixo ao seu script da Playwright:

  ```
from playwright_stealth import stealth_async
```

Ou, se você estiver usando a API de sincronização:

  ```
from playwright_stealth import stealth_sync
```

Para registrá-lo na Playwright, passe o objeto `page` para a função importada da seguinte forma:

  ```
await stealth_async(page)
```

Ou, se você estiver usando a API de sincronização:

  ```
stealth_async(page)
```

A função `stealth_async()` estenderá `page` substituindo algumas configurações padrão para evitar a detecção de bots.

Fantástico! Só resta visitar a página-alvo e repetir o teste.

### Etapa 3: juntar tudo

Integre o plugin Stealth ao script da Playwright apresentado no início do artigo:

  ```
import asyncionfrom playwright.async_api import async_playwrightnfrom playwright_stealth import stealth_asyncnasync def main():n    async with async_playwright() as p:n        # launch the browsern        browser = await p.chromium.launch()n        # open a new pagen        page = await browser.new_page()nn        # register the Playwright Stealth pluginn        await stealth_async(page)nn        # visit the target pagen        await page.goto(u0022https://arh.antoinevastel.com/bots/areyouheadlessu0022)nn        # extract the message contained on the pagen        message_element = page.locator(u0022#resu0022)n        message = await message_element.text_content()nn        # print the resulting messagen        print(f'The result is: u0022{message}u0022')nn        # close the browser and release its resourcesn        await browser.close()nnasyncio.run(main())
```

Execute novamente, e desta vez ele gerará:

  ```
The result is: u0022You are not Chrome headlessu0022
```

E pronto! A página-alvo, com recursos de detecção de bots, não será mais capaz de sinalizar seu script automatizado da Playwright como um bot.

Muito bem! Agora você domina a arte do Playwright Stealth, e nenhuma tecnologia de detecção de bots pode voltar a te intimidar.

## Extra: Playwright Stealth em JavaScript

Se você é usuário da Playwright em JavaScript e quer obter o mesmo resultado, você precisa usar o pacote npm `puppeteer-extra-plugin-stealth`. Isso funciona tanto com [Puppeteer Extra](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra) quanto com [Playwright Extra](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra). Se você não estiver familiarizado com esses projetos, eles são essencialmente versões aprimoradas das duas bibliotecas de automação de navegadores. Especificamente, eles adicionam funcionalidade de extensão por meio de plugins à Puppeteer e à Playwright, respectivamente.

Portanto, suponha que você tenha o seguinte script da Playwright em JavaScript e queira integrá-lo ao Stealth Plugin:

  ```
import { chromium } from u0022playwrightu0022nn(async () =u003e {n    // set up the browser and launch itn    const browser = await chromium.launch()n    // open a new blank pagen    const page = await browser.newPage()nn    // navigate the page to the target pagen    await page.goto(u0022https://arh.antoinevastel.com/bots/areyouheadlessu0022)nn    // extract the message contained on the pagen    const messageElement = page.locator('#res')n    const message = await messageElement.textContent()nn    // print the resulting messagen    console.log(`The result is: u0022${message}u0022`)nn  // close the browser and release its resourcesn  await browser.close()n})()
```

Primeiro, instale o `playwright-extra` e o `puppeteer-extra-plugin-stealth`:

  ```
npm install playwright-extra puppeteer-extra-plugin-stealth
```

Em seguida, importe o `chromium` de `playwright-extra` em vez de `playwright` e importe o `StealthPlugin` de `puppeteer-extra-plugin-stealth`:

  ```
import { chromium } from u0022playwright-extrau0022nimport StealthPlugin from u0022puppeteer-extra-plugin-stealthu0022
```

Em seguida, registre o Stealth Plugin com:

  ```
chromium.use(StealthPlugin())
```

Junte tudo e você terá:

  ```
import { chromium } from u0022playwright-extrau0022nimport StealthPlugin from u0022puppeteer-extra-plugin-stealthu0022nn(async () =u003e {n    // configure the Stealth pluginn    chromium.use(StealthPlugin())nn    // set up the browser and launch itn    const browser = await chromium.launch()n    // open a new blank pagen    const page = await browser.newPage()nn    // navigate the page to the target pagen    await page.goto(u0022https://arh.antoinevastel.com/bots/areyouheadlessu0022)nn    // extract the message contained on the pagen    const messageElement = page.locator('#res')n    const message = await messageElement.textContent()nn    // print the resulting messagen    console.log(`The result is: u0022${message}u0022`)nn    // close the browser and release its resourcesn    await browser.close()n})()
```

Formidável! Você acaba de integrar o Stealth Plugin à Playwright em JavaScript.

## Conclusão

Neste guia, você entendeu por que a detecção de bots representa um desafio para a Playwright e como lidar com isso. Graças à biblioteca Python Playwright Stealth, você pode aprimorar a configuração padrão do navegador para evitar a detecção de bots. Como provado aqui, uma abordagem similar também pode ser aplicada em JavaScript.

Independentemente da sofisticação do script de automação do seu navegador na Playwright, os sistemas avançados de detecção de bots ainda representarão um problema. Embora você possa considerar usar outro pacote de automação de navegador, a causa-raiz da detecção está no navegador, não na biblioteca em si. A solução está em um navegador escalável com funcionalidade para contornar os antibots, que se integra perfeitamente a qualquer biblioteca de automação de navegador. Esse navegador existe e é conhecido como [Scraping Browser](https://brightdata.com.br/products/scraping-browser)!

O Scraping Browser da Bright Data é um navegador baseado em nuvem altamente escalável compatível com Playwright, Puppeteer e Selenium. Ele rotaciona automaticamente o IP de saída em cada solicitação e pode lidar com impressões digitais do navegador, novas tentativas automáticas e [resolução de CAPTCHAs](https://brightdata.com.br/products/web-unlocker/captcha-solver) para você. Esses recursos são possíveis por meio das funcionalidades de desbloqueio baseadas em proxy nas quais ele se baseia.

Os proxies da Bright Data são usados por empresas da Fortune 500 e mais de 20 000 clientes. Essa rede mundial confiável de proxies envolve:

- Proxies de datacenters — Mais de 770 000 IPs de datacenters.[](https://brightdata.com.br/proxy-types/datacenter-proxies)
- Proxies residenciais — Mais de 400M+ monthly de IPs residenciais em mais de 195 países.[](https://brightdata.com.br/proxy-types/residential-proxies)
- Proxies de ISPs — Mais de 700 000 IPs de ISPs.[](https://brightdata.com.br/proxy-types/isp-proxies)

Fale conosco



Contate-nosTeste grátis![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Índice







Dedicated Scraper APIs &amp; No-Code Scrapers

Over 1000 scrapers for all popular domains. Simplify your web scraping.

[See pricing](/pricing/web-scraper "See pricing")

Just want data? Skip scraping.

Hundreds of ready-to-use datasets from all popular domains.

[See pricing](/pricing/datasets "See pricing")







 [ ](https://news.ycombinator.com/submitlink?t=Evite+a+detec%C3%A7%C3%A3o+de+bots+com+o+Playwright+Stealth&u=https://brightdata.com.br/blog/procedimentos/avoid-bot-detection-with-playwright-stealth) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Evite+a+detec%C3%A7%C3%A3o+de+bots+com+o+Playwright+Stealth&url=https://brightdata.com.br/blog/procedimentos/avoid-bot-detection-with-playwright-stealth) [ ](http://www.reddit.com/submit?title=Evite+a+detec%C3%A7%C3%A3o+de+bots+com+o+Playwright+Stealth&url=https://brightdata.com.br/blog/procedimentos/avoid-bot-detection-with-playwright-stealth)







##  Você também pode estar interessado em

 [ ![Avoid Getting Blocked With Puppeteer Stealth](https://media.brightdata.com.br/2023/12/Avoid-Getting-Blocked-With-Puppeteer-Stealth.svg) ](https://brightdata.com.br/blog/procedimentos/avoid-getting-blocked-with-puppeteer-stealth "Evite ser bloqueado com Puppeteer Stealth")

 [procedimentos



 ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Evite ser bloqueado com Puppeteer Stealth

Saiba como integrar Puppeteer Stealth num script de raspagem de Puppeteer para evitar ser bloqueado.



 05-Dec-2023

 8 min de leitura

 ](https://brightdata.com.br/blog/procedimentos/avoid-getting-blocked-with-puppeteer-stealth)

 [ ](https://brightdata.com.br/blog/dados-do-site/web-scraping-without-getting-blocked "Scraping de dados sem ser bloqueado: 12 técnicas comprovadas")

 [Dados do site



 ![](https://media.brightdata.com.br/2023/05/Michael-Nyamande-50x50.png)

Michael Nyamande





### Scraping de dados sem ser bloqueado: 12 técnicas comprovadas

Tutorial sobre como extrair dados de sites sem ser bloqueado. Conheça 12 soluções diferentes para superar bloqueios de extração de dados de sites.



 18-Jun-2023

 27 min de leitura

 ](https://brightdata.com.br/blog/dados-do-site/web-scraping-without-getting-blocked)
