Aprende a hacer bots con Selenium

“El código, lo pueden adaptar a su lógica.”

 


¿Qué es Selenium?

Selenium es una librería la cual usamos para automatizar lo que haríamos normalmente en el navegador. Les dejo una pequeña descripción que tienen en su sitio oficial:

Vamos a entrar en un ejemplo práctico, donde veremos cómo utilizar.

Cabe aclarar que Python al ser multiplataforma, es indiferente si usamos Linux, Mac, Windows u otro sistema operativo.

Para descargar Selenium, lo podemos hacer en ésta web: Enlace de descarga

Underc0de - Descargando seleniumUna vez descargado, podemos instalar simplemente con nuestro Python(recuerden, deben estar definidas en las variables de entorno):

Underc0de - Instalando selenium
Luego de la instalación, procedemos con el código  .
Realizaremos un bot que realice un post 1000 veces(compartir) en Facebook.


Configurando e Importando Selenium.

Existe un paso muy importante, es el de descargar el webdriver de Mozilla Firefox o en su defecto, el de Google Chrome. El webdriver de Mozilla Firefox se llama Geckodriver y el de Chrome se llama ChromeDriver.

Una vez descargado procedemos a:
1) Configurarlo como variable de entorno / solución más óptima si van a trabajar con Python + Selenium muchas veces.
2) Pegarlo en una carpeta y simplemente pasarle la ruta a nuestro script.

Parra éste ejemplo, utilizaremos la segunda opción; también utilizaremos Geckodriver(webdriver de Firefox).
Procedemos a importar algunas declaraciones de importaciones básicas para importar módulos de Selenium.

Underc0de - Importando librerias

Luego de importar correctamente nuestra librería, debemos importar nuestro Geckodriver en una línea del script(solo si no se ha establecido como variable de entorno; caso opuesto, debemos omitir el siguiente paso).

Underc0de - Llamada de Gecko

Recuerden, esa es la ruta donde tenemos el Geckodriver, en su caso, deberán insertar la ruta donde lo dejaron.
Como realizaremos un bot para Facebook, debemos ingresar en nuestra cuenta, en ese caso, creamos una función llamada “executeBot()” a la cual insertamos nuestra lógica.

Underc0de - Accediendo a nuestra cuenta

Solo estamos configurando dos variables, email y contraseña, no estamos insertando en el formulario de login en Facebook, lo que hacemos es acceder a cualquier url que deseemos.

Debemos tener en cuenta que driver vendría siendo nuestro objeto de tipo browser.

Ahora bien, ya teniendo nuestros datos, debemos insertarlos en el formulario y además, presionar en el botón de entrar.
Tenemos que tener un concepto clave antes de continuar. Xpath es lo que utiliza Selenium para que pueda saber dónde va a ingresar datos.

Xpath sirve precisamente para recopilar inputs, botones, clases, id’s los cuales necesitaremos para utilizar Selenium.

Para obtener los xpath, debemos utilizar el inspector de elementos de Chrome / Firefox.

Lo haremos con inspector de firebug, haciendo clic derecho a los inputs y al botón donde tenemos que extraer los xpath’s e insertarlos en nuestro código.

Underc0de - Xpath del correo electronico

Underc0de - Xpath de la contraseña

Underc0de - Xpath del boton

Habiendo obtenido cada xpath, procedemos a pegar en las siguientes líneas de código.

Underc0de - Insertando los xpaths


Explicando los métodos.

  • find_element_by_xpath(): Indicamos al navegador que encuentre el xpath que deseamos.
  • send_keys(): Utilizado para insertar contenido en un campo editable(inputs por ejemplo).
  • click(): Presionar click en alguna parte de la página web(indicar xpath).

Teniendo la sesión iniciada, lo que buscamos es compartir un enlace de facebook, procedemos de la siguiente forma:

Underc0de - Compartiendo contenido

Underc0de - Compartiendo contenido

La imagen anterior, mustra el típico botón azul de “Publicar en Facebook”, lo único que hace es obtener el xpath y luego de eso, pasarlo a nuestro método “find_element_by_xpath” para evitar inconvenientes con el método “click()”.

En el campo no colocamos nada, en la url ya estamos pasando el enlace: “https://www.facebook.com/sharer.php?u=ENLACE“, también podríamos obtener el xpath a ese textarea e insertar nuestro contenido.

El xpath de ese textarea es: //*[@id=”u_0_s”]


Testeando el bot.

Underc0de - Testeando el bot


Agradecemos a Mortal_Posion por compartir el artículo haciendo bots con selenium


Posts Relacionados

Comments

comments

Deja una respuesta

Tu email no será publicado. Los campos requeridos estan marcados con *
Puedes usar tags HTML y los atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">