Como usar o Undetected ChromeDriver no web scraping

Publicado:

3 min de leitura

PXNET
Autor: PXNET
Undetected ChromeDriver para web scraping

O Undetected ChromeDriver é uma versão modificada do ChromeDriver do Selenium, feita para que os serviços comuns de detecção de bots não a classifiquem como automação.

O que é

O Undetected ChromeDriver é uma biblioteca Python que fornece um ChromeDriver com patches. As alterações miram nas marcas pelas quais serviços como Imperva, DataDome, Distil Networks e, em parte, Cloudflare reconhecem uma sessão do Selenium.

Como funciona

  • Variáveis do Selenium renomeadas: os identificadores que o Selenium deixa no navegador ganham nomes de um navegador comum.
  • User-Agent realista: no lugar do identificador que entrega a automação na hora.
  • Comportamento mais natural: padrões de movimento e de tempo menos mecânicos.
  • Cookies e sessões: são conduzidos corretamente ao longo da visita.
  • Suporte a proxy: para que as requisições não saiam todas de um mesmo endereço.

Quais dos nossos produtos de proxy servem para isso:

Instalação

bash
pip install undetected-chromedriver

Um primeiro script:

python
import undetected_chromedriver as uc

# start the browser
driver = uc.Chrome()

# open the target page
driver.get("https://example.com")

# ... read the data you need ...

driver.quit()

Com uc.ChromeOptions() você configura o navegador, por exemplo para rodar sem janela:

python
import undetected_chromedriver as uc

options = uc.ChromeOptions()
options.add_argument("--headless=new")

driver = uc.Chrome(options=options)

Ligar um proxy

python
import undetected_chromedriver as uc

options = uc.ChromeOptions()
options.add_argument("--proxy-server=http://PROXY_HOST:PORT")

driver = uc.Chrome(options=options)

Onde ela não dá conta

A biblioteca contorna muitos métodos de detecção, mas não todos, e sozinha não faz rotação de proxies.

  • Verificações simples: taxa de sucesso alta; a sessão se comporta quase como uma visita manual.
  • Verificações intermediárias: serviços como o Cloudflare entram em ação e é preciso somar ajuste de impressão digital e cookies bem cuidados.
  • Verificações rigorosas: a análise de comportamento no navegador costuma detectar a automação mesmo assim. Aí vale olhar outras ferramentas ou uma interface oficial.

A inicialização demora um pouco mais que no ChromeDriver comum: é o preço dos patches e quase não pesa em execuções longas.

Boas práticas

Troque de endereço. Muitas requisições a partir de um único IP são o sinal mais evidente de todos. Um Proxies residenciais rotativo resolve isso do lado do serviço; com a sua própria lista, monte a rotação seguindo Como rotacionar proxies em Python.

Ajuste a impressão digital. O que o navegador revela sobre fontes, resolução e gráficos já é, por si só, uma marca. Bibliotecas como selenium-stealth suavizam isso.

Guarde os cookies. Uma sessão que começa do zero a cada visita parece uma máquina. Salve os cookies e carregue-os na execução seguinte.

Use headless com critério. O modo sem janela é prático, mas alguns sites o tratam como sinal por si só. Se houver problemas, teste desativá-lo.

Não trabalhe de forma regular demais. Pausas aleatórias entre requisições e um percurso que não seja idêntico toda vez chamam menos atenção que uma execução perfeitamente cronometrada.

Conclusão

O Undetected ChromeDriver é uma ferramenta eficaz, mas não resolve todos os casos. A taxa de detecção só cai de verdade quando ele vem junto com endereços variáveis, impressão digital ajustada e um ritmo calmo.

Para alvos mais exigentes, vale olhar o Playwright ou o Puppeteer — ou uma API oficial, se houver. E, qualquer que seja a ferramenta: respeite os termos de uso do site de destino e a legislação aplicável.