Selenium in python 1

Selenium por sí solo funciona muy bien para la automatización web, pero al combinarlo con un proxy puede proteger su privacidad, mantener una conexión estable y acceder al contenido sin interrupciones. En pocas palabras, es una herramienta de código abierto desarrollada por Jason Huggins para automatizar o probar aplicaciones web. Incluye módulos como Selenium IDE, Grid, Standalone Server y WebDriver.

En esta guía, repasaremos los pasos clave para configurar Selenium con un proxy en Python para tareas de web scraping.

Empezando

En primer lugar, asegúrese de tener instalados Python y pip (Administrador de paquetes Python). De lo contrario, descargue Python del sitio oficial, abra el .paquete archivo que descargó y siga las instrucciones. Veamos los pasos básicos:

1. Abra Terminal o Command Prompt. Si usa Mac, haga clic en el icono de Launchpad en el Dock, escriba Terminal en el campo de búsqueda y haga clic en Terminal. Si usa Windows, escriba cmd en la ventana Run. Este acceso directo abrirá Command Prompt o PowerShell. 

2. En la terminal, escriba: 


python --version
      
        

      

Si tu versión es Python 3, simplemente añada 3 después de Python. Esto también puede aplicarse a otros comandos:


python3 --version
      
        

      

pip normalmente se instala automáticamente con Python 3.4+. Aun así, conviene comprobar si pip está instalado escribiendo:


pip --version
      
        

      


pip3 --version
      
        

      

3. Usar pip a instalar el paquete Selenium:


pip install selenium
      
        

      

Si está utilizando Python 3, intente utilizar pip3 para asegurarse de que esté instalado para Python 3: 


pip3 install selenium
      
        

      

4. Compruebe si se completó la instalación. 

Después de la instalación, puede verificar que Selenium esté instalado ejecutando:


pip show selenium
      
        

      

Uso de WebDriver con Selenium

Selenium necesita un controlador web para interactuar con navegadores como Chrome, Firefox y otros. Tendrá que descargar el driver adecuado y asegurarse de que esté disponible en el PATH del sistema. Trabajaremos con Chrome, el navegador de referencia para la mayoría de los proyectos de automatización.

1. Vaya a la página oficial de descargas de ChromeDriver:

https://developer.chrome.com/docs/chromedriver/downloads 

2. Busque el enlace que coincida con su versión de Chrome y descargue ChromeDriver para macOS. 

El archivo que descargue estará en un zip formato. Simplemente haga doble clic para extraerlo y obtendrá el ChromeDriver ejecutable.

Para acceder a el con facilidad, debe mover el ChromeDriver a un directorio incluido en el PATH del sistema. Los directorios comunes incluyen /usr/local/bin o /usr/bin. Utilice este comando:


sudo mv ~/Downloads/chromedriver /usr/local/bin/
      
        

      

***Si ve el error “No existe tal archivo o directorio”, generalmente significa que la ruta del archivo en su comando es incorrecta o que el archivo no existe en la ubicación indicada. Vuelva a verificar que esté en el directorio donde se encuentra el ChromeDriver se encuentra el archivo y que el nombre del archivo no tiene extensiones ni errores tipográficos. 

Cuando usas el mv comando con sudo para mover archivos a directorios como /usr/local/bin, macOS le pedirá que ingrese su contraseña. Esta es la contraseña de su cuenta de usuario. Escríbelo y presiona Enter. Tenga en cuenta que su contraseña no aparecerá en la pantalla mientras escribe (no aparecerán caracteres ni símbolos).

Para verificar si ChromeDriver está instalado correctamente, escriba el siguiente comando en la terminal:


chromedriver --version/
      
        

      

Creando un script básico Python

A continuación, descargue cualquier editor de texto (VS Code en nuestro caso) o use IDE para crear un nuevo archivo llamado selenio_test.py. 

Para crear un script básico Python necesitamos instalar el administrador-webdriver módulo. 

  • Podemos instalar el paquete usando pip. Run el siguiente comando en su terminal:

pip install webdriver-manager/
      
        

      


pip install selenium webdriver-manager/
      
        

      

Después de ejecutar el comando anterior, su script debería funcionar como se esperaba:


# pip install selenium webdriver-manager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

# set Chrome options to run in headless mode
options = Options()
options.add_argument("--headless=new")

# initialize Chrome driver
driver = webdriver.Chrome(
    service=Service(ChromeDriverManager().install()), 
    options=options
)

# navigate to the target webpage
driver.get("https://httpbin.io/ip")

# print the HTML of the target webpage
print(driver.page_source)

# release the resources and close the browser
driver.quit()/


























Verás este resultado:

Configurar un proxy gratuito en Selenium

En esta parte, descubrirá cómo configurar un proxy Selenium usando Python y probar servidores proxy gratuitos. Visita este sitio web https://free-proxy-list.net/ y elige un proxy gratuito para tu prueba. En el script, tendrás que definir la dirección y el puerto del proxy. Por ejemplo, elijamos este proxy gratuito:


from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

# define the proxy address and port
proxy = "194.5.25.34:443"

# set Chrome options to run in headless mode using a proxy
options = Options()
options.add_argument("--headless=new")
options.add_argument(f"--proxy-server={proxy}")

# initialize Chrome driver
driver = webdriver.Chrome(
        service=Service(ChromeDriverManager().install()),
        options=options

)

# navigate to the target webpage
driver.get("https://httpbin.io/ip")

# print the body content of the target webpage
print(driver.find_element(By.TAG_NAME, "body").text)

# release the resources and close the browser
driver.quit()/































En la terminal, obtendrá la siguiente respuesta:

{

  “origen”: “194.5.25.34:443”

}

Esto significa que Selenium está navegando a páginas utilizando el servidor proxy. Sin embargo, tenga cuidado ya que los proxies gratuitos pueden ser lentos y vender sus datos.

Selenium Wire

Selenium Wire es una poderosa extensión de Selenium que le permite interceptar y analizar el tráfico de red. Al revisar las solicitudes y respuestas de HTTP, puede comprender mejor cómo interactúa una aplicación web con su servidor. El controlador Chrome no procesa el nombre de usuario y la contraseña automáticamente, por lo que necesita un complemento de terceros como Selenium Wire.

Para instalar Selenium Wire, ejecute este comando en su terminal: 


pip install blinker==1.7.0 selenium-wire/
      
        

      


pip3 install blinker==1.7.0 selenium-wire/
      
        

      

Proxies DataImpulse en Selenium

Es hora de finalmente hacer uso de los proxies DataImpulse. Con todo instalado, estamos listos para continuar con la autenticación de proxy. Para este paso, necesitará su nombre de usuario, contraseña, dirección y puerto guardados en la sección del plan elegido en su panel DataImpulse. Usaremos un proxy residencial. 

Pasemos al script:


from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

# configure the proxy
proxy_username = ""
proxy_password = ""
proxy_address = "gw.dataimpulse.com"
proxy_port = "823"

# formulate the proxy url with authentication
proxy_url = f"http://{proxy_username}:{proxy_password}@{proxy_address}:{proxy_port}"

# set selenium-wire options to use the proxy
seleniumwire_options = {
    "proxy": {
        "http": proxy_url,
        "https": proxy_url
    },
}

# set Chrome options to run in headless mode
options = Options()
options.add_argument("--headless=new")

# initialize the Chrome driver with service, selenium-wire options, and chrome options
driver = webdriver.Chrome(
    service=Service(ChromeDriverManager().install()),
    seleniumwire_options=seleniumwire_options,
    options=options
)

# navigate to the target webpage
driver.get("https://httpbin.io/ip")

# print the body content of the target webpage
print(driver.find_element(By.TAG_NAME, "body").text)

# release the resources and close the browser
driver.quit()/












































En VS Code, se verá así:

Como resultado, obtendrá una respuesta con su “origen”. Significa que la autenticación se ha completado con éxito. 

Consejos

  • Visite solo sitios web oficiales – Descargue todos los programas necesarios de los sitios oficiales seguros. 
  • Verificar compatibilidad – Vuelva a verificar que las versiones de Selenium, ChromeDriver y su navegador sean compatibles entre sí.
  • Actualizar periódicamente – Verifique periódicamente Selenium, ChromeDriver y otras herramientas para utilizar las últimas funciones.
  • Administre de forma segura la información de inicio de sesión – Proteja y administre sus datos de autenticación de forma segura.
  • Utilice entornos virtuales – Cree un entorno virtual para mantener sus dependencias organizadas y evitar conflictos de paquetes.
  • Manejo de errores – Agregue mecanismos de manejo de errores en sus scripts para abordar posibles problemas al usar servidores proxy o trabajar con elementos web.

Conclusión

Si está pensando en configurar Selenium, vale la pena probarlo. Usar un proxy con Selenium es como añadir una marcha más al motor: ofrece más potencia y control. Siga estas instrucciones y consejos para incorporar correctamente todos los paquetes desde el primer intento. Recuerde que es mejor elegir proxies fiables que proxies gratuitos si busca más velocidad, seguridad y estabilidad. 

Share article: