Cuando se trabaja con Selenium para el web scraping o la automatización, la integración de proxies es una necesidad. Los proxies le permiten evitar prohibiciones, límites de velocidad y restricciones geográficas, haciendo que sus tareas sean fluidas y eficientes. Pero configurar proxies en Selenium puede ser un reto, especialmente si se trata de autenticación o se necesita monitorizar peticiones HTTP. Aquí es donde entra Selenium Wire.
Selenium Wire es una versión extendida de Selenium que le añade funciones avanzadas adicionales permitiéndole autenticar proxies fácilmente, interceptar peticiones y respuestas HTTP y depurar el tráfico de red.
En esta guía, le mostraremos cómo configurar proxies en Selenium utilizando selenium-wire
y el webdriver-manager
. Normalmente, es necesario descargar los archivos binarios de los webdrivers de los navegadores y mantenerlos actualizados periódicamente. El sitio webdriver-manager simplifica este proceso encargándose de estas tareas por usted.
Al final de este blog, tendrás una configuración de Selenium totalmente adaptada a los proxies de ProxyScrape , lista para afrontar cualquier reto que se te presente. ¡A trabajar!
Para acceder al script completo sin pasar por todo el tutorial, haga clic en este enlace para copiar el código completo.
Antes de sumergirnos en la configuración de proxies en Selenium, asegúrate de que tienes las siguientes herramientas y librerías instaladas y listas:
Ejecute el siguiente comando para instalar todas las dependencias:
pip install selenium-wire webdriver-manager
Nota: Es posible que aparezca el error "ModuleNotFoundError: No module named blinker._saferef". Esto se puede resolver mediante la actualización de la biblioteca de parpadeo a la versión 1.7.0
intermitente
pip uninstall blinker
pip install blinker==1.7.0
Una vez establecidos los requisitos previos, vamos a desglosar la configuración del script en tres sencillos pasos:
Ahora que ya hemos cubierto los requisitos previos, pasemos al guión propiamente dicho. Esta guía paso a paso le ayudará a integrar ProxyScrape apoderados residenciales con Selenium utilizando selenium-wire
y webdriver-manager
.
Empezaremos por importar las bibliotecas necesarias:
importar re
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Servicio
from selenium.webdriver.chrome.options import Opciones
from webdriver_manager.chrome import ChromeDriverManager
Defina los detalles de su proxy ProxyScrape :
dirección_proxy = "rp.proxyscrape.com:6060"
nombre_usuario_proxy = "tu_nombre_usuario_proxy"
contraseña_proxy = "tu_contraseña_proxy"
(nombre_usuario_proxy, contraseña_proxy)
con sus credenciales reales de ProxyScrape .Configure el proxy en Selenium Wire:
sw_options = {
'proxy': {
'http': f'http://{proxy_username}:{proxy_password}@{proxy_address}',
'https': f'https://{proxy_username}:{proxy_password}@{proxy_address}',
}
}
Optimiza la configuración de Chrome para mejorar el rendimiento:
chrome_options = Opciones()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
Puesta en marcha selenium-wire
con webdriver-manager
:
service = Servicio(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, seleniumwire_options=sw_options, options=chrome_options)
Navegue hasta el endpoint ProxyScrape Judge para probar su proxy:
driver.get('https://ssl-judge2.api.proxyscrape.com/')
Extraer y mostrar su dirección IP proxy utilizando regex:
# Ejemplo: Extraer la IP de la respuesta
respuesta = conductor.fuente_página
# usando simple regex para parsear ip de origen
print("Respuesta:", respuesta)
print("Su IP es:", re.search("HTTP_X_FORWARDED_FOR = (\d+\.)+\d+", response).group().split("=")[-1])
# salir de la instancia del navegador
driver.quit()
HTTP_X_FORWARDED_FOR
y extrae la IP proxyEn conclusión, el uso de proxies residencialesProxyScrape con Selenium Wire es una solución robusta para cualquiera que necesite capacidades avanzadas de web scraping y automatización con mayor privacidad y seguridad.
Siguiendo esta guía, puede configurar un entorno sin problemas que no sólo evita las restricciones, sino que también requiere esfuerzos de configuración mínimos. Este método aprovecha potentes herramientas como Selenium Wire y WebDriver Managerpara gestionar y enrutar eficazmente el tráfico a través de proxies, garantizando que las tareas de scraping sigan siendo eficientes y fiables.
Si necesita ayuda con el web scraping o tiene preguntas sobre nuestro producto, no dude en ponerse en contacto con nosotros a través del chat en directo. También puede unirse a nuestra comunidad de Discord para recibir asistencia y actualizaciones.