Como configurar proxy autenticado no Selenium WebDriver
Atualizado:
O parâmetro padrão do ChromeDriver --proxy-server=http://ip:port ignora credenciais embutidas user:pass e exibe uma caixa de diálogo de login que trava a automação. Para usar proxies HTTP(S) autenticados da VinaProxy de maneira limpa no Selenium, envie suas credenciais via selenium-wire ou carregue uma extensão de background do Chrome baseada em onAuthRequired.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP₫ 40.000
- 5+ IPs₫ 35.000
- 10+ IPs₫ 25.000
- 20+ IPs₫ 25.000
- 50+ IPs₫ 25.000
- 100+ IPs₫ 25.000
- 200+ IPs₫ 25.000
- 500+ IPs₫ 25.000
- 1000+ IPs₫ 22.000
- 2000+ IPs₫ 20.000
- 1 IP₫ 75.000
- 3+ IPs₫ 70.000
- 5+ IPs₫ 65.000
- 10+ IPs₫ 60.000
- 50+ IPs₫ 60.000
- 100+ IPs₫ 60.000
- 200+ IPs₫ 60.000
- 500+ IPs₫ 55.000
Duas formas confiáveis de autenticar proxies no Selenium
Escolha a abordagem mais adequada à sua linguagem de desenvolvimento e driver:
| Abordagem | Sintaxe de configuração | Ideal para |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Configuração mais rápida em Python; permite alternar proxies a quente no meio da sessão |
| Extensão Chrome Auth | Carregar extensão ZIP que lida com chrome.webRequest.onAuthRequired | Selenium padrão em Python, Java, C# e undetected-chromedriver |
| Migrar para Playwright | browser.newContext({ proxy: { server, username, password } }) | Autenticação nativa por contexto sem a necessidade de nenhuma extensão |
Dicas de desempenho para scraping com Selenium através de proxies
- Defina
options.page_load_strategy = 'eager'para que o WebDriver interaja assim que o DOM estiver pronto, sem esperar rastreadores lentos - Use
--headless=new(Chrome 109+) se for rodar em segundo plano, para que extensões e autenticação de proxy funcionem igual ao modo com janela - Desative a renderização de imagens nas preferências do Chrome ao coletar apenas texto para economizar banda e acelerar o processo
- Sempre envolva o seu driver em um bloco
try / finally: driver.quit()para evitar processos órfãos do Chromium na memória
Passo a passo
- 1
Instalar o selenium-wire
Execute
pip install selenium-wireno seu ambiente virtual Python. - 2
Definir o dicionário do proxy da VinaProxy
Formate suas credenciais:
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Iniciar o webdriver.Chrome com seleniumwire_options
Inicialize a instância:
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Verificar o endereço IP de saída
Acesse
driver.get('https://vinaproxy.com/api/my-ip')e confirme se o JSON retornado exibe o IP do proxy.
Perguntas frequentes
Por que '--proxy-server=http://user:pass@ip:port' não funciona no ChromeOptions?
O Chromium intencionalmente remove user:pass@ do parâmetro de linha de comando --proxy-server. Usar selenium-wire, uma extensão onAuthRequired ou migrar para o Playwright soluciona o problema.
É possível alternar proxies sem reiniciar o Chrome no selenium-wire?
Sim. Basta atribuir um novo dicionário a driver.proxy = {'http': 'http://...', 'https': 'http://...'} a qualquer momento para trocar o proxy upstream em tempo real.
Extensões de proxy do Chrome funcionam em modo headless?
Sim, desde que você use a flag --headless=new em vez do parâmetro legado --headless.
Execute o Selenium WebDriver em grande escala com IPs estáticos ilimitados
Proxies IPv4 dedicados e ISP estáticos instantâneos em 7 países.
Comprar proxies para Selenium