# Selenium Python (4). Cómo usar Selenium con Python y proxies

Descubra el poder de Selenium con Python y aproveche los proxies para un web scraping y automatización eficientes. Aumente su recopilación de datos con los asequibles servidores proxy de FineProxy.

- Autor: [Brandon Perry](https://fineproxy.org/es/brandon-perry/)
- Publicado: 2024-06-04T11:17:19.000Z
- Actualizado: 2024-05-27T11:43:12.000Z
- Canónica: https://fineproxy.org/es/selenium-python-4-how-to-use-selenium-with-python-and-proxies/

Cuando se trabaja con web scraping o automatización usando Selenium y Python, el uso de proxies puede ser esencial para evitar prohibiciones de IP y mejorar la eficiencia de la recopilación de datos. Este artículo lo guiará a través de la configuración y el uso de servidores proxy en Selenium con Python.

## ¿Qué es el selenio y por qué utilizar proxies?

**Selenio** es una herramienta poderosa para automatizar navegadores web, que a menudo se usa para raspado web y prueba de aplicaciones web. **Proxies** son servidores intermediarios que separan a los usuarios finales de los sitios web que navegan, lo que ayuda a enmascarar las direcciones IP y gestionar las cargas de solicitudes.

## Configurar Selenium con proxies

Antes de sumergirse en el código, asegúrese de tener instaladas las herramientas necesarias:

-   Python
-   selenio (`pip install selenium`)
-   Un controlador de navegador web (por ejemplo, ChromeDriver para Chrome o GeckoDriver para Firefox)

## Guía paso a paso para usar proxies en Selenium

### 1\. Configurar Chrome con un proxy

Para configurar Chrome para que utilice un servidor proxy, debe configurar las capacidades deseadas en Selenium.

```python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Specify proxy details
proxy = "your_proxy_ip:port"

# Set up Chrome options
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')

# Initialize WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()
```

## Proxy con autenticación

Si su proxy requiere autenticación, puede utilizar el `Proxy` clase de `selenium.webdriver.common.proxy`.

```python
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Proxy settings
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "your_proxy_ip:port"
proxy.ssl_proxy = "your_proxy_ip:port"
proxy.add_argument('--proxy-auth=user:password')

capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

# Initialize WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), desired_capabilities=capabilities)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()
```

## Usar Firefox con un proxy

Para configurar Firefox para que utilice un proxy, modifique la configuración del perfil de Firefox.

```python
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager

# Proxy details
proxy_ip = "your_proxy_ip"
proxy_port = "port"

# Set up Firefox profile
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", proxy_ip)
profile.set_preference("network.proxy.http_port", int(proxy_port))
profile.set_preference("network.proxy.ssl", proxy_ip)
profile.set_preference("network.proxy.ssl_port", int(proxy_port))

# Initialize WebDriver
driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()), firefox_profile=profile)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()
```

## Solución de problemas comunes

**Autenticación de proxy:** Si su proxy requiere iniciar sesión, asegúrese de que las credenciales estén configuradas correctamente.

**Bloqueo de IP:** Es posible que algunos sitios web aún bloqueen los servidores proxy. Utilice proxies residenciales o rotativos para mitigar este problema.

## Resumen

El uso de proxies con Selenium y Python puede ayudarlo a evitar las restricciones de IP y mejorar sus proyectos de web scraping. Ya sea que use Chrome o Firefox, configurar servidores proxy implica configurar las opciones y capacidades del navegador para enrutar el tráfico a través del servidor proxy.

| Navegador | Método de configuración | Autenticación | Fragmento de código disponible |
| --- | --- | --- | --- |
| Chrome | Opciones de Chrome | Sí | Sí |
| Firefox | Perfil de Firefox | Sí | Sí |

Si sigue estos pasos, podrá asegurarse de que sus actividades de scraping se mantengan ininterrumpidas y eficientes. Si tienes alguna pregunta o idea para futuros tutoriales, ¡no dudes en dejar un comentario!
