🎯 Um navegador em nuvem personalizável e anti-detecção alimentado por Chromium desenvolvido internamente, projetado para rastreadores web e agentes de IA. 👉Experimente agora
De volta ao blog

nodriver vs Patchright: Automação de Navegador Não Detectada em Python

Ethan Brown
Ethan Brown

Advanced Bot Mitigation Engineer

10-Jul-2026

TL;DR:

  • nodriver e Patchright são ferramentas de automação indetectáveis ao nível do driver — elas escondem os sinais que marcam uma sessão como automatizada, em vez de oferecer um novo motor de navegador como fazem Obscura ou Lightpanda.
  • nodriver é o sucessor do undetected-chromedriver: um framework Python assíncrono que se comunica diretamente com o Protocolo DevTools do Chrome, sem Selenium e sem o binário chromedriver, portanto, os sinais clássicos do webdriver são eliminados por design. É AGPL-3.0 e ultrapassou 4.000 estrelas no GitHub.
  • Patchright é um substituto drop-in para Playwright Python que corrige as falhas que a própria superfície de automação do Playwright expõe — mesma API, from patchright.sync_api import sync_playwright, licenciado sob Apache-2.0.
  • Ambos reportam navigator.webdriver como false imediatamente — verificado ao vivo abaixo em cada um — que é a primeira bandeira lida pela maioria dos detectores de bots.
  • Nenhum fornece IPs ou resolve páginas de desafio. A furtividade ao nível do driver oculta automação; não faz nada pela reputação do IP ou por uma parede de validação de tráfego. Scrapeless Scraping Browser adiciona proxies residenciais em mais de 195 países e manipulação de desafios na mesma sessão.
  • Gratuito para começar. Novas contas Scrapeless incluem um tempo de execução gratuito do Scraping Browser — inscreva-se em app.scrapeless.com.

Introdução: duas maneiras de parecer indetectável, uma coisa que não fazem

Os sistemas anti-bot detectam automação em dois lugares amplos: o navegador (superfícies de impressão digital como WebGL e fontes) e o driver (a maquinaria que controla o navegador — a propriedade navigator.webdriver do especificação WebDriver do W3C, artefatos do Protocolo DevTools do Chrome, o controle de automação que as ferramentas padrão expõem). Ferramentas ao nível do motor, como um Firefox modificado, reestruturam o primeiro. Nodriver e Patchright atacam o segundo: eles mantêm um Chromium normal, mas removem os sinais que um empilhamento de automação normal deixa para trás.

Eles abordam isso de direções opostas. nodriver descarta totalmente o Selenium e controla o Chrome através do Protocolo DevTools a partir do Python assíncrono. Patchright mantém Playwright exatamente como está e corrige as falhas por baixo dele, assim, o código existente do Playwright funciona sem mudanças. Este guia instala ambos, executa a mesma tarefa em cada um, mostra a limitação compartilhada que nenhum deles resolve e explica como um navegador na nuvem gerenciado preenche essa lacuna.

O que essas ferramentas são — e o que "ao nível do driver" significa

A furtividade ao nível do driver diz respeito a como o navegador é controlado, não o que o navegador é. Uma sessão padrão do Selenium ou Playwright vaza sua natureza através de artefatos de canal de controle: a propriedade navigator.webdriver definida como true, ganchos de tempo de execução do CDP, uma extensão de automação. Detectores buscam exatamente isso. Nodriver e Patchright os removem enquanto mantém você em um Chromium comum.

nodriver é o sucessor mantido do amplamente usado undetected-chromedriver. É um framework Python focado em assíncrono que fala CDP diretamente — sem executável chromedriver, sem camada webdriver do Selenium, portanto, não há binário do webdriver para imprimir em primeiro lugar. Sua própria descrição o enquadra como um framework rápido para automação e scraping que ultrapassa sistemas como Cloudflare e hCaptcha, e é licenciado como AGPL-3.0.

Patchright segue a rota da compatibilidade: é uma reimplementação indetectável do pacote Playwright Python que corrige as falhas de detecção na superfície de automação do Playwright. Você o instala no lugar do Playwright e altera uma importação; todo o resto — seletores, contextos, evaluate — é o Playwright que você já escreve. É Apache-2.0, uma licença mais permissiva do que a copyleft do nodriver, o que pode ser importante quando você o embute em um produto comercial.

Instale ambos

Nodriver instala do PyPI e traz seu próprio gerenciamento do Chrome; Patchright instala como o Playwright e baixa uma versão do Chromium:

bash Copy
# nodriver — framework assíncrono CDP, sucessor do undetected-chromedriver
pip install nodriver

# Patchright — Playwright indetectável drop-in, além de sua versão do Chromium
pip install patchright
patchright install chromium

nodriver: CDP assíncrono, sem camada webdriver

A API do nodriver é assíncrona e nativa do CDP. Isso inicia o Chrome, navega e lê de volta a bandeira de automação:

python Copy
import nodriver as uc

async def main():
    browser = await uc.start(headless=True)
    page = await browser.get("https://example.com")
    await page.sleep(1)

    print("TÍTULO:", await page.evaluate("document.title"))
    print("WEBDRIVER:", await page.evaluate("navigator.webdriver"))

    browser.stop()

nodriver envia seu próprio auxiliar de loop para que a limpeza do teardown permaneça limpa

uc.loop().run_until_complete(main())

Copy
Isso imprime `TÍTULO: Domínio Exemplo` e `WEBDRIVER: False`. Não há processo `chromedriver` e nenhum Selenium na pilha — o canal de controle é CDP bruto, então o sinal do webdriver está ausente em vez de ser corrigido. Usar `uc.loop()` em vez de um mero `asyncio.run` mantém a limpeza do teardown do próprio loop de eventos do nodriver.

## Patchright: o mesmo Playwright, menos os vazamentos

Se você já tem código Playwright, o Patchright é uma troca de uma linha — a importação muda e nada mais muda:

```python
# A única mudança em relação ao Playwright: importar do patchright, não do playwright
from patchright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto("https://example.com")

    print("TÍTULO:", page.title())
    print("WEBDRIVER:", page.evaluate("navigator.webdriver"))

    browser.close()

Isso também imprime WEBDRIVER: False. Como a API é idêntica à do Playwright, um scraper Playwright existente adota a ocultação do Patchright simplesmente trocando a importação — sem reescrita, sem novo modelo mental.

Obtenha sua chave de API no plano gratuito: app.scrapeless.com

Qual deles — e a brecha que ambos deixam em aberto

Escolher entre eles se resume ao seu ponto de partida. Se você está escrevendo Python assíncrono novo e quer o caminho direto mais leve do CDP sem legado do Selenium, o nodriver se encaixa — note sua copyleft AGPL-3.0 antes de incorporá-lo comercialmente. Se você tem código Playwright ou uma equipe fluente na API do Playwright, o Patchright oferece a mesma superfície com os vazamentos corrigidos e uma licença permissiva Apache-2.0. Ambos mantém você no Chromium comum; nenhum pede que você aprenda um novo motor.

A brecha que eles compartilham é a parte importante. A ocultação em nível de driver esconde que uma sessão é automatizada. Não muda de onde a sessão vem, e não responde a uma página de desafio. Três modos de falha estão totalmente fora do que essas ferramentas abordam:

  • Reputação de IP. Suas solicitações saem do IP da sua máquina. Um alvo que bloqueia intervalos de datacenter ou limita a taxa do seu endereço bloqueia uma sessão sem webdriver impecável exatamente tão rápido quanto uma ingênua.
  • Páginas de desafio. Um intersticial de validação de tráfego ainda precisa ser resolvido. Parecer não automatizado reduz a frequência com que uma aparece; não elimina as que aparecem.
  • Profundidade da impressão digital. Essas ferramentas focam no canal de controle, não na superfície completa da impressão digital em nível de motor que um navegador anti-detectores dedicado reescreve.

Todos os três são problemas de rede e infraestrutura, e nenhuma biblioteca em nível de driver os resolve porque não são problemas em nível de driver.

Onde o Scrapeless Scraping Browser se encaixa

Quando o alvo faz verificação de reputação de IP ou apresenta desafios — não apenas na bandeira do webdriver — as peças faltantes são a saída residencial e o manuseio de desafios. O Scrapeless Scraping Browser oferece ambos em uma sessão gerenciada: um navegador em nuvem anti-deteção impulsionado por Chromium desenvolvido internamente, com proxies residenciais em mais de 195 países selecionados por sessão, exposto como um endpoint CDP. Como o Patchright é Playwright, conectar-se a ele é a mesma chamada connect_over_cdp que o Playwright já usa:

python Copy
import os
from playwright.sync_api import sync_playwright

# Cloud Chromium com saída residencial — o nível de IP + desafio
API_KEY = os.environ["SCRAPELESS_API_KEY"]
ws_endpoint = (
    "wss://browser.scrapeless.com/api/v2/browser"
    f"?token={API_KEY}&session_ttl=180&proxy_country=US"
)

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(ws_endpoint)
    page = browser.contexts[0].new_page() if browser.contexts else browser.new_page()
    page.goto("https://example.com", wait_until="domcontentloaded")
    print("TÍTULO:", page.title())
    browser.close()

O padrão prático é um modelo em camadas: nodriver ou Patchright para execuções auto-hospedadas contra alvos que apenas verificam o driver, e uma sessão Scrapeless para alvos que também ponderam o IP e emitem desafios. A documentação do Scrapeless tem a referência completa de parâmetros, e preços são baseados no uso com um nível gratuito. Para a parte de página de desafio especificamente, o guia sobre resolver Cloudflare com Python mostra a sessão gerenciada limpando o que uma pilha apenas do driver não consegue.

Conclusão: esconda o driver, então resolva a rede

nodriver e Patchright são as duas respostas mais fortes em nível de driver para a detecção de automação — nodriver descartando Selenium para CDP direto, Patchright corrigindo Playwright no lugar — e ambos limpam a flag do webdriver que cada detector verifica primeiro. Escolha conforme seu código-fonte e necessidades de licença, e tenha clareza sobre a fronteira: eles escondem a automação, não a infraestrutura.

Para alvos que também julgam a reputação do IP e lançam desafios, mantenha uma sessão do Scrapeless Scraping Browser na rotação. Tudo aqui fala CDP ou Playwright, então direcionar uma solicitação de uma execução furtiva auto-hospedada para uma sessão em nuvem gerenciada é apenas uma mudança na string de conexão, não uma reescrita.


Pronto para Construir Seu Pipeline de Dados Potencializado por AI?

Junte-se à nossa comunidade para reivindicar um plano gratuito e conectar-se com desenvolvedores construindo pipelines de automação não detectados: Discord · Telegram.

Inscreva-se em app.scrapeless.com para um tempo de execução gratuito do Scraping Browser e direcione seus alvos de IP e desafios através dele enquanto nodriver ou Patchright lidam com os exclusivamente de driver.

FAQ

Q: Qual é a diferença entre nodriver e Patchright?
nodriver é um framework assíncrono que controla o Chrome diretamente via CDP sem Selenium ou chromedriver, e é o sucessor do undetected-chromedriver. Patchright é um substituto que se encaixa para o pacote Playwright Python que corrige as vazamentos de detecção do Playwright enquanto mantém a exata API do Playwright. Escolha nodriver para uma pilha nativa CDP fresca, Patchright para adicionar furtividade a um código Playwright existente.

Q: O nodriver e o Patchright escondem navigator.webdriver?
Sim — ambos reportam navigator.webdriver como false por padrão, verificado ao vivo neste guia. nodriver remove o sinal do webdriver ao não usar uma camada de webdriver; Patchright o corrige na superfície do Playwright.

Q: Esses navegadores anti-detect são como o Camoufox?
Não. Camoufox é um navegador anti-detect em nível de motor que reescreve superfícies de impressão digital dentro do Firefox. nodriver e Patchright são em nível de driver: eles executam o Chromium comum e escondem o canal de controle de automação. As duas abordagens tratam de diferentes camadas de detecção e podem ser complementares.

Q: Qual licença devo verificar antes de usá-los comercialmente?
nodriver é AGPL-3.0 (copyleft, com obrigações de uso em rede); Patchright é Apache-2.0 (permissiva). Se os termos de licença restringirem seu produto, Patchright é a mais permissiva das duas — mas revise ambas de acordo com suas próprias exigências.

Q: Por que adicionar Scrapeless se minha sessão já parecer não automatizada?
Porque parecer não automatizado apenas derrota as verificações em nível de driver. Alvos difíceis também consideram a reputação do IP e exibem páginas de desafio, e nenhuma biblioteca em nível de driver move seu IP ou resolve um desafio. O Scrapeless Scraping Browser agrupa proxies residenciais em mais de 195 países e o manuseio de desafios em uma única sessão CDP gerenciada, cobrindo a camada que essas ferramentas não cobrem.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo