SEO

Cómo automatizar el linkbuilding con Python

Dentro del ámbito del SEO tenemos distintas ramas en las que uno puede especializarse. Por una parte, está el SEO técnico más enfocado a la parte del SEO On Page y, por otra parte, el perfil de SEO Linkbuilding enfocado a conseguir aumentar la autoridad del sitio Web externamente, lo que se conoce como SEO Off Page.

Dentro del SEO Off Page podemos orientarnos hacia 3 caminos:

  1. Generar contenidos de calidad que aporten valor al usuario final y que, de esta forma, consigamos que nos enlacen desde diferentes sitios Web relevantes en nuestro sector y semánticamente afines a nuestro sitio Web. Estos son los enlaces que Google quiere que obtengamos para nuestra Web, los que considera que serían enlaces naturales.
  2. Definir una estrategia de Linkbuilding para conseguir esos enlaces de manera menos natural mediante registros en foros, perfiles sociales, blogs 2.0, Wikis, etc.
  3. Comprando los enlaces en periódicos o blogs tematizados, lo que conocemos como reseñas o post patrocinados, totalmente prohibidos en las directrices para Webmasters de Google.

Una vez vistas las 3 principales formas de conseguir enlaces para nuestra estrategia de linkbulding, en este artículo nos centraremos en la segunda opción que hemos definido anteriormente.

Cuando tienes que realizar registros en diferentes plataformas para crear perfiles puede llegar a ser muy monótono tener que registrarte varias veces en la misma Web para distintos proyectos. Es por ello, que gracias a Python podemos automatizar los registros simulando la interacción de un usuario con el navegador. Esto nos puede ahorrar mucho tiempo, y al final el tiempo es dinero.

Dicho esto, vamos a ponernos manos a la obra. Para poder ejecutar el script de Python que automatiza los registros vamos a necesitar distintos recursos que adjunto a continuación:

En estos recursos básicamente tienes, por una parte, toda la documentación de Selenium para que puedas revisar todas las llamadas que soporta la API de Selenium y, por otra, los drivers para Firefox y Chrome para poder ejecutar los navegadores y simular las acciones del usuario en el registro en las distintas plataformas.

Lo primero que tenemos que hacer es importar las librerías de selenium para poder utilizar el webdriver:

import time 

from selenium import webdriver

El siguiente paso será identificar en el código HTML de la página los diferentes elementos con los que queremos simular la interacción del usuario:

#Fields dropmark.com 

FIELD_NAME_DROPMARK = 'name' 

FIELD_EMAIL_DROPMARK = 'email' 

FIELD_USERNAME_DROPMARK = 'username' 

FIELD_PASSWORD_DROPMARK = 'password' 

GO_BUTTON_DROPMARK = '/html/body/section/div/div/form/input[5]'

Una vez tengamos ya recogida esta información, el siguiente paso será proporcionar los datos de registro al script para que vaya rellenando el formulario. En ese caso he añadido los datos directamente, aunque se podría solicitar por teclado al usuario o cargarlos de una BBDD directamente.

#Input data 

email = "juanadormideras@outlook.com" 

password = "juanadormideras2021" 

username = "juanadormideras" 

name = "Juan" 

lastname = "Adormideras"

Con toda esta información solo nos queda ejecutar el webdriver de Selenium para que empiece con el registro del usuario simulando la interacción del mismo a través del navegador.

#Selenium driver 

print("+Registration Dropmark") 

 

driver = webdriver.Firefox('/Users/rafavillaplana/AppData/Local/Programs/Microsoft VS Code/bin') 

driver.maximize_window() 

driver.get("https://app.dropmark.com/signup") 

 

time.sleep(5) 

element = driver.find_element_by_name(FIELD_NAME_DROPMARK) 

element.send_keys(name +' '+ lastname) 

time.sleep(2) 

element = driver.find_element_by_name(FIELD_EMAIL_DROPMARK) 

element.send_keys(email) 

time.sleep(3) 

element = driver.find_element_by_name(FIELD_USERNAME_DROPMARK) 

element.send_keys(username) 

time.sleep(5) 

element = driver.find_element_by_name(FIELD_PASSWORD_DROPMARK) 

element.send_keys(password) 

time.sleep(3) 

element = driver.find_element_by_xpath(GO_BUTTON_DROPMARK) 

element.click() 

time.sleep(5) 

 

driver.close()

 

Lo primero que hacemos en el código es abrir la URL de registro del sitio Web mediante el navegador de Firefox. Una vez abierta la Web esperamos 5 segundos para que termine de cargar y simular un tiempo de espera del usuario.

A continuación, mediante la llamada find_element_by_name lo que hacemos es buscar en el código HTML el elemento cuyo nombre coincide con ese campo y enviamos el valor que tenemos almacenado en las variables name + lastname. Este proceso lo repetimos para el resto de los campos del formulario.

Al final, cuando ya hemos rellenado todo el formulario, procedemos a realizar un click en el botón de registro. Para localizar este elemento en el código hemos utilizado la llamada de la API de Selenium find_element_by_xpath, que nos permite buscar el elemento en el código mediante rutas XPath.

Y con todo esto, ya tendríamos el registro listo en la plataforma de forma totalmente automatizada. Por lo que procedemos a cerrar el navegador con la llamada close.

Con este sencillo ejemplo podemos ver la potencia que consigue Selenium con Python. Nos permite automatizar cualquier acción que tenga que realizar el usuario a través del navegador. Por esta razón, los sitios Web utilizan Captchas para evitar los registros automatizados como el que os hemos mostrado.

Pero para esto también hay solución, ya que existen servicios como DeathbyCaptcha o 2Captcha que proporcionan API para poder resolver la mayoría de captchas existentes en el mercado. Aquí os dejamos los recursos por si queréis investigar un poco, ya que esto daría para otro artículo:

Con todo esto me despido, espero que os haya gustado el artículo y nos vemos en el siguiente capítulo de automatización de linkbuilding con Python.

Rafa Villaplana

SEO Manager

Apasionado del SEO y Marketing Online. Lo único que cae del cielo es la lluvia.