Selenium con proxy: configuración en Python y Java

Publicado:

2 min de lectura

PXNET
Autor: PXNET
Selenium con proxy

Selenium controla navegadores de forma automática. Se usa sobre todo para probar aplicaciones web, pero sirve para cualquier tarea que alguien haría a mano en el navegador. En este artículo te mostramos cómo integrar los proxies de Proxynet.

Qué es Selenium

Selenium ofrece una interfaz con la que un programa maneja el navegador: abrir ventanas, cargar páginas, hacer clic, escribir texto, enviar formularios y leer el contenido de la página.

Admite los navegadores habituales —Chrome, Firefox, Safari, Edge— y se comunica con ellos mediante el componente Selenium WebDriver. Puedes usarlo desde Python, Java, C#, Ruby y otros lenguajes.

Configuración

Paso 1: instala Selenium. Con Python ya instalado:

bash
pip install selenium

Paso 2: consigue un proxy. Elige el servicio que encaje contigo en la página principal de Proxynet.

Paso 3: prepara el driver. Desde Selenium 4.6, Selenium Manager descarga solo el driver adecuado; instalar ChromeDriver a mano solo hace falta en versiones anteriores.

Paso 4: indica el proxy. En Python:

python
from selenium import webdriver

PROXY_HOST = "pr.proxynet.io"
PROXY_PORT = 8000

options = webdriver.ChromeOptions()
options.add_argument(f"--proxy-server=http://{PROXY_HOST}:{PROXY_PORT}")

driver = webdriver.Chrome(options=options)
driver.get("https://ipinfo.io/json")
print(driver.find_element("tag name", "body").text)
driver.quit()

En lugar de PROXY_HOST y PROXY_PORT pon el nombre de host y el puerto de tu panel de Proxynet.

Lo mismo en Java

java
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class SeleniumProxyExample {
    public static void main(String[] args) {
        String proxyHost = "pr.proxynet.io";
        int proxyPort = 8000;

        // Proxy para HTTP y HTTPS
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyHost + ":" + proxyPort);
        proxy.setSslProxy(proxyHost + ":" + proxyPort);

        ChromeOptions options = new ChromeOptions();
        options.setProxy(proxy);

        WebDriver driver = new ChromeDriver(options);
        driver.get("https://ipinfo.io/json");
        System.out.println(driver.getPageSource());
        driver.quit();
    }
}

Aquí vale la misma advertencia: el usuario y la contraseña no van en la dirección del proxy. Trabaja mejor con una IP autorizada.

Qué tipo de proxy elegir

En automatización, el origen de la dirección decide la tasa de éxito: Proxies residenciales para destinos con comprobaciones estrictas y Proxies de centro de datos para descargas rápidas en sitios poco exigentes. Si necesitas mantener una sesión a lo largo de varios pasos, usa Proxies ISP para que la dirección no cambie por el camino.