🎯 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

Como Configurar um Proxy no Selenium Java para Web Scraping Escalável

Michael Lee
Michael Lee

Expert Network Defense Engineer

18-Dec-2025
Dê uma Olhada Rápida

Aumente sua automação e scraping com Scrapeless Proxies — rápidos, confiáveis e acessíveis.

Integrar proxies em seus projetos Selenium Java é um requisito fundamental para qualquer tarefa séria de web scraping ou automação. Os proxies permitem que você oculte seu verdadeiro endereço IP, contorne restrições geográficas e distribua suas solicitações para evitar limites de taxa e bloqueios de IP. Este guia se concentra na maneira padrão e mais eficaz de configurar proxies no Selenium WebDriver usando Java.

Configurando um Proxy usando ChromeOptions

O método mais comum e confiável para configurar um proxy no Selenium Java é configurando as opções do navegador antes de inicializar o WebDriver. Isso envolve a criação de um objeto Proxy e a passagem dele para o ChromeOptions (ou equivalente para outros navegadores como Firefox).

O objeto Proxy é usado para definir o endereço do servidor proxy tanto para tráfego HTTP quanto SSL.

java Copy
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import io.github.bonigarcia.wdm.WebDriverManager;

public class Scraper {
    public static void main(String[] args) {
        // 1. Configurar o WebDriver (usando WebDriverManager para conveniência)
        WebDriverManager.chromedriver().setup();

        // 2. Definir os detalhes do proxy (IP:PORT)
        String proxyAddress = "184.169.154.119:80";

        // 3. Criar um objeto Proxy e definir os proxies HTTP e SSL
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyAddress);
        proxy.setSslProxy(proxyAddress);

        // 4. Criar uma instância de ChromeOptions e definir as opções do proxy
        ChromeOptions options = new ChromeOptions();
        options.setProxy(proxy);
        options.addArguments("--headless=new"); // Opcional: executar em modo headless

        // 5. Criar uma instância do driver com as opções configuradas
        WebDriver driver = new ChromeDriver(options);

        // 6. Navegar para uma URL de teste
        driver.get("https://httpbin.io/ip");
        
        // ... resto da sua lógica de scraping
        driver.quit();
    }
}

Implementando Rotação de Proxy em Java

Para scraping em larga escala, você deve rotacionar seus endereços IP para evitar que suas solicitações sejam sinalizadas como tráfego de bot. Em Java, isso é alcançado mantendo uma lista de proxies e selecionando aleatoriamente um para cada nova sessão do WebDriver. Esta abordagem é altamente eficaz para distribuir a carga e manter um perfil baixo [3].

java Copy
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
// ... outras importações

public class RotatingScraper {
    public static void main(String[] args) {
        // ... configuração do WebDriver

        // 1. Definir uma lista de endereços de proxy (IP:PORT)
        List<String> proxyList = new ArrayList<>();
        proxyList.add("190.61.88.147:8080");
        proxyList.add("13.231.166.96:80");
        proxyList.add("35.213.91.45:80");

        // 2. Selecionar aleatoriamente um proxy para a sessão
        Random rand = new Random();
        String proxyAddress = proxyList.get(rand.nextInt(proxyList.size()));

        // 3. Configurar o objeto Proxy com o endereço selecionado aleatoriamente
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyAddress);
        proxy.setSslProxy(proxyAddress);

        // 4. Definir as opções de proxy em ChromeOptions
        ChromeOptions options = new ChromeOptions();
        options.setProxy(proxy);
        // ... outras opções

        // 5. Criar a instância do driver
        WebDriver driver = new ChromeDriver(options);
        // ... lógica de scraping
    }
}

Manipulando Proxies Autenticados

Para proxies premium que requerem um nome de usuário e senha, o objeto Proxy padrão sozinho não é suficiente. O Selenium não lida nativamente com o pop-up de autenticação que aparece no navegador. As soluções mais comuns incluem:

  1. Usar uma Extensão de Proxy: Empregar uma extensão de navegador que gerencia a autenticação do proxy e pré-configura as credenciais.
  2. Usar um Gerenciador de Proxy: Utilizar um gerenciador ou gateway de proxy (como o fornecido pelo Scrapeless) que gerencia a autenticação no lado do servidor, permitindo que você se conecte usando um simples endpoint IP:PORT.

Solução de Proxy Recomendada: Scrapeless Proxies

Para raspagem de web baseada em Java de forma profissional, a qualidade da sua rede de proxies é fundamental. Os Proxies Scrapeless são construídos para fornecer a velocidade, confiabilidade e anonimato necessários para operações em larga escala com Selenium.

Os Proxies Residenciais da Scrapeless são altamente recomendados para projetos em Java com Selenium, pois fornecem endereços IP reais que têm muito menos probabilidade de serem detectados e bloqueados por sistemas anti-bot sofisticados. Além disso, seus Proxies ISPs Estáticos oferecem o equilíbrio perfeito entre confiança residencial e velocidade consistente, o que é ideal para manter um ambiente de raspagem estável [4]. Ao usar um serviço como o Scrapeless, você pode garantir que seu navegador de raspagem esteja sempre operando com um IP limpo e de alta reputação.

Perguntas Frequentes (FAQ)

P: Posso usar as propriedades do sistema Java para definir o proxy para o Selenium?
R: Embora você possa definir propriedades do sistema como System.setProperty("http.proxyHost", "..."), isso afeta apenas a pilha de rede Java subjacente e não o navegador controlado pelo Selenium. Você deve usar o objeto Proxy com ChromeOptions para configurar as configurações de rede do navegador [5].

P: Qual é a diferença entre as configurações de proxy HTTP e SSL no objeto Proxy?
R: O método setHttpProxy() configura o proxy para tráfego HTTP padrão, enquanto o setSslProxy() o configura para tráfego HTTPS seguro (SSL/TLS). É uma melhor prática definir ambos para o mesmo endereço de proxy para garantir que todo o tráfego seja roteado corretamente.

P: É melhor usar uma extensão de proxy ou um gerenciador de proxy para autenticação?
R: Um gerenciador de proxy ou gateway é geralmente preferido para raspagem em larga escala e em nível de produção. Ele centraliza a lógica de autenticação e rotação fora do seu código Selenium, tornando seu script de raspagem mais limpo e mais robusto contra mudanças [6].


Referências

[1] Manual GNU Wget: Arquivo Wgetrc
[2] GeeksforGeeks: Raspagem de Web usando Wget
[3] Documentação Selenium: Instalando Bibliotecas
[4] Oracle Java Networking e Proxies
[5] Baeldung: Selenium com Proxy em Java
[6] Rascunho de Trabalho W3C: Requisitos de Proxy
[7] Wiki Scrapeless: O que é um Navegador Headless
[8] Wiki Scrapeless: Melhores Serviços de Raspagem de Web
[9] Wiki Scrapeless: Raspagem de Web com LXML
[10] Wiki Scrapeless: Ferramentas Recomendadas de Coleta de Dados Automatizada Gratuitas
[11] Wiki Scrapeless: Guia Completo do Navegador Scrapeless

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