Ir al contenido
GProxy
Registro
Гайды 1 min de lectura 121 vistas

Proxy de Selenium: Guía Completa

Cómo configurar un proxy en Selenium WebDriver para Python: Chrome, Firefox, autenticación, rotación y elusión de detección.

Selenium Автоматизация Python
Proxy de Selenium: Guía Completa

Proxy de Selenium: Guía Completa

Selenium WebDriver es una herramienta popular para la automatización de navegadores. Configurar proxies en Selenium requiere un enfoque especial.

Chrome + Selenium

Configuración Básica

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://proxy.example.com:8080')

driver = webdriver.Chrome(options=chrome_options)
driver.get('https://httpbin.org/ip')

Con Autenticación (mediante extensión)

import zipfile

def create_proxy_extension(proxy_host, proxy_port, proxy_user, proxy_pass):
    manifest_json = '''
    {
        "version": "1.0.0",
        "manifest_version": 2,
        "name": "Proxy Auth",
        "permissions": ["proxy", "webRequest", "webRequestBlocking", "<all_urls>"],
        "background": {"scripts": ["background.js"]}
    }
    '''

    background_js = f'''
    var config = {{
        mode: "fixed_servers",
        rules: {{
            singleProxy: {{
                scheme: "http",
                host: "{proxy_host}",
                port: parseInt({proxy_port})
            }}
        }}
    }};

    chrome.proxy.settings.set({{value: config, scope: "regular"}}, function() {{}});

    chrome.webRequest.onAuthRequired.addListener(
        function(details) {{
            return {{
                authCredentials: {{
                    username: "{proxy_user}",
                    password: "{proxy_pass}"
                }}
            }};
        }},
        {{urls: ["<all_urls>"]}},
        ['blocking']
    );
    '''

    with zipfile.ZipFile('proxy_auth.zip', 'w') as zp:
        zp.writestr("manifest.json", manifest_json)
        zp.writestr("background.js", background_js)

    return 'proxy_auth.zip'

# Usage
ext_path = create_proxy_extension('proxy.example.com', 8080, 'user', 'pass')

chrome_options = Options()
chrome_options.add_extension(ext_path)

driver = webdriver.Chrome(options=chrome_options)

Firefox + Selenium

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", "proxy.example.com")
profile.set_preference("network.proxy.http_port", 8080)
profile.set_preference("network.proxy.ssl", "proxy.example.com")
profile.set_preference("network.proxy.ssl_port", 8080)

driver = webdriver.Firefox(firefox_profile=profile)

Proxy SOCKS5

chrome_options = Options()
chrome_options.add_argument('--proxy-server=socks5://proxy.example.com:1080')

Rotación de Proxy

import random

proxies = [
    'http://proxy1.example.com:8080',
    'http://proxy2.example.com:8080',
    'http://proxy3.example.com:8080',
]

def get_driver_with_proxy():
    proxy = random.choice(proxies)
    chrome_options = Options()
    chrome_options.add_argument(f'--proxy-server={proxy}')
    return webdriver.Chrome(options=chrome_options)

Elusión de Detección

chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://proxy:8080')
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
chrome_options.add_experimental_option('useAutomationExtension', False)

driver = webdriver.Chrome(options=chrome_options)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
    'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})

Verificación

driver.get('https://httpbin.org/ip')
print(driver.page_source)

Consejos

  1. Usa el modo headless con cuidado — muchos sitios lo detectan
  2. Añade retrasos aleatorios entre acciones
  3. Rota el User-Agent junto con el proxy
  4. Usa proxies residenciales para sitios difíciles
Actualizado: 09.01.2026
Volver a la categoría

Pruebe nuestros proxies

20,000+ proxies en 100+ países del mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.