Selenium – Automatizando tareas web

selenium

En la era de la información, la cantidad de datos disponibles en la web es inmensa y en constante crecimiento. Esto ha dado lugar a una necesidad cada vez mayor de herramientas que puedan ayudarnos a recopilar y analizar grandes cantidades de datos de manera efectiva y eficiente. Una de las herramientas más populares para hacer web scraping es Selenium.

¿ Qué es Selenium ?

Selenium es un conjunto de herramientas de automatización de pruebas para navegadores web. Originalmente, se creó como una herramienta para probar aplicaciones web, pero se ha convertido en una de las herramientas más utilizadas para el web scraping.

La principal ventaja de Selenium es que te permite interactuar con los sitios web como si estuvieras navegando por ellos con un navegador web. Esto significa que puedes interactuar con botones, enlaces, formularios y otros elementos en una página web como si estuvieras haciendo clic en ellos.

¿ Por qué utilizar Selenium para web scraping ?

Si quieres hacer web scraping, lo más normal suele utilizar librerías como BeatifulSoup, en la que te descargas el HTML de la web, y directamente desde ahí extraes el contenido que necesites. Esto está muy bien para webs estáticas. Pero.. ¿qué pasa si es una web que necesita que te autentiques, o te tienes que descargar un reporte desde urls diferentes? En este caso Selenium es la mejor elección que puedes hacer.

Selenium permite imitar el comportamiento humano, lo que es útil en situaciones en las que el sitio web está diseñado para detectar y bloquear bots. Selenium puede imitar el comportamiento humano de tal manera que el sitio web no puede detectar la automatización.

Requisitos para utilizar Selenium

Antes de ponerte manos a la obra, debes descargar el driver para el navegador que vayas a utilizar. En mi caso he utilizado Chrome, así que primero hay que descargarlo. Quédate con el path en el que lo vayas a almacenar. Yo lo he copiado y lo he puesto en la carpeta de este proyecto, para que sea más sencillo encontrarlo.

Cómo utilizar Selenium en Python

Para comenzar a usar Selenium, debes instalarlo. Esto se puede hacer a través de la línea de comandos utilizando un gestor de paquetes de Python, como pip. Una vez que hayas instalado Selenium, puedes comenzar a usarlo para automatizar tus interacciones con los sitios web.

Instalar Selenium

pip install selenium

Importar Selenium

Para usar Selenium, primero hay que importar la biblioteca en nuestro script de Python:

from selenium import webdriver

Abrir el navegador

Luego, toca especificar qué navegador queremos utilizar. Por ejemplo, podemos utilizar Chrome de la siguiente manera:

browser = webdriver.Chrome('chromedriver.exe')

Esto abrirá una nueva ventana de Chrome en la que puedes interactuar con el sitio web. Por ejemplo, podemos abrir una página web utilizando el método get():

browser.get('https://www.marca.com')

Pulsando en botones

Una vez que hayas cargado una página web, puedes interactuar con ella como si estuvieras navegando por ella manualmente. Por ejemplo, podemos hacer clic en un botón utilizando el método click():

boton = browser.find_element_by_xpath('//button[@class="boton"]')
boton.click()

En este ejemplo, estamos utilizando el método find_element_by_xpath() para encontrar el botón en la página web utilizando una expresión XPath. Luego, hacemos clic en el botón utilizando el método click().

También podemos interactuar con formularios utilizando Selenium. Por ejemplo, podemos escribir texto en un campo de entrada utilizando el método send_keys():

campo = browser.find_element_by_xpath('//input[@name="nombre"]')
campo.send_keys('Ejemplo')

Extraer datos de la web

Además de interactuar con elementos en una página web, también puedes extraer datos de la página utilizando Selenium. Por ejemplo, puedes encontrar un elemento en la página utilizando find_element_by_xpath() y luego extraer su contenido accediendo al atributo text:

elemento = browser.find_element_by_xpath('//div[@class="contenido"]')
contenido = elemento.text

Aquí estás extrayendo el contenido de un elemento <div> con una clase de CSS de «contenido» y luego almacenando el contenido en la variable contenido.

Cambiar de ventana

Selenium también permite interactuar con ventanas emergentes y cambiar entre pestañas de navegador utilizando el método switch_to_window(). Puedes cambiar a una pestaña diferente utilizando el siguiente código:

handles = browser.window_handles
browser.switch_to.window(handles[1])

En este ejemplo, estás obteniendo una lista de todas las ventanas abiertas en el navegador utilizando el método window_handles y luego cambiando a la segunda ventana en la lista utilizando el método switch_to.window().

Cerrar el navegador

Una vez que hayas terminado de interactuar con una página web utilizando Selenium, puedes cerrar el navegador utilizando el método quit():

browser.quit()

Conclusiones

En resumen, Selenium es una herramienta poderosa para hacer web scraping debido a su capacidad para interactuar con el contenido de una página web de manera dinámica. Te permite no sólo interactuar con el contenido, sino también acceder a los datos de la propia web.

Espero que te haya resultado útil. Si tienes cualquier duda, déjala en los comentarios.

¡Gracias por haberte pasado por aquí!