Leer esto de llevara más o menos... 15 minutos
by APFerrer
Share
Trucos rápidos para salir del paso: Rastreo de URL
Hoy: Ver los enlaces salientes de una URL usando Python y Google Colab
Si tienes una página web o estás empezando a crear webs para otros, es posible que lo que te voy a contar te suene a nuevo, pero no te vayas, que te va a gustar y además va a ser rápido. Toda web tiene lo que llamamos enlaces internos y enlaces externos. Los internos son esos enlaces que apuntan a contenido dentro de tu propia web (es decir, es como un «yo, mi, me, conmigo»). Los enlaces externos, en cambio, son los que dirigen desde tu web hacia otros sitios.
Aquí es donde empieza el problema. Existe una forma de hackeo que consiste en inyectar un archivo malicioso (generalmente un PHP) en la raíz de tu web. Este archivo puede usar tu dominio para lanzar cientos de enlaces a sitios de dudosa reputación. ¿Te imaginas el caos que eso puede causar? Además de comprometer la seguridad de tu web, estarías enlazando a páginas que no te convienen para nada. Y eso es solo una razón para preocuparte por los enlaces.
Los enlaces son importantes por varios motivos: desde cómo influyen en la seguridad de tu sitio, hasta cómo afectan al SEO o incluso para organizar mejor tu contenido. Mantener el control sobre esos enlaces es más importante de lo que parece. Si alguien logra meter un enlace malicioso en tu web, te la pueden reventar. Así de sencillo. Además, a Google no le gustan los enlaces rotos o aquellos que apuntan a sitios de mala reputación. Y claro, no querrás que los usuarios hagan clic en un enlace que ni tú mismo sabías que existía.
Ahora, seguramente has probado alguna de esas herramientas online que te prometen hacer este trabajo por ti. Sin embargo, si te pasa como a mí, habrás notado que muchas veces no funcionan del todo bien. A veces te dejan enlaces sin revisar o los resultados son confusos. Es frustrante. Por eso voy a regalarte algo: vamos a usar Python y Google Colab (2×1 si nunca has usado Google Colab porque te vas a desvirgar). Lo mejor de todo es que no necesitas ser un experto en programación ni hacer configuraciones complicadas. Si tienes una cuenta de Gmail, ya tienes todo lo que necesitas. ¡Comencemos!
Lo primero que tienes que saber: ¿Qué es Python?
Python (pronunciado PAI-ton, no te vayas a confundir) no es un coche ni un reptil peligroso. Es un lenguaje de programación. Si no tienes ni idea de lo que es un lenguaje de programación, te lo explico rápido: es como la manera en la que los humanos le damos instrucciones a una máquina, normalmente un ordenador, para que haga lo que queremos. Así que, en vez de decirle al ordenador “haz esto” a gritos, le escribimos las órdenes usando un lenguaje como Python, que entiende perfectamente.
Python nació allá por 1991 gracias a un tal Guido van Rossum (sí, un nombre complicado, pero no te preocupes, no es necesario memorizarlo). Este buen hombre creó Python porque los lenguajes de programación de la época eran un dolor de cabeza y pensaba que necesitábamos algo más fácil y accesible. Y la verdad es que acertó, porque Python se ha convertido en uno de los lenguajes más populares del mundo, y no es por casualidad. Lo usamos para todo: desde crear páginas web hasta inteligencia artificial. Y lo mejor de todo, es relativamente fácil de aprender. No necesitas ser un genio de la programación para entenderlo.
¿Cómo funciona Python?
La estructura básica de Python es bastante simple y se basa en tres elementos clave: bibliotecas, funciones y variables.
Primero, están las bibliotecas, que son colecciones de herramientas preescritas que puedes usar para no tener que reinventar la rueda. Si, por ejemplo, quieres que tu programa lea el contenido de una página web, puedes importar la biblioteca requests
, que ya tiene todo el código necesario para hacer esa tarea.
Hay un montón de bibliotecas, lo complicado es aprender que biblioteca utilizar y cuando utilizarla (pero de eso hablaremos otro día).
¿Qué son las funciones en Python?
Las funciones en Python son bloques de código que realizan una tarea específica. Tú defines una función con la palabra clave def
, le das un nombre y luego decides qué acciones quieres que realice. Una vez que la función está definida, puedes llamarla en cualquier momento para que ejecute las instrucciones que has escrito.
¿Qué son las variables en Python?
Dentro de las funciones, usas variables para guardar datos que puedes reutilizar más adelante. Las variables son espacios donde almacenas información que puede cambiar durante la ejecución del programa. Por ejemplo, si estás creando un programa para saludar a diferentes personas, puedes almacenar sus nombres en una variable y usarlos cuando llames a la función.
Ejemplo práctico de Python
Aquí tienes un ejemplo sencillo de cómo se usa Python para obtener el contenido de una página web:
import requests # Importamos la biblioteca requests
def obtener_pagina(url): # Definimos una función para hacer la petición a la página web
respuesta = requests.get(url) # Hacemos la petición a la URL
return respuesta.text # Devolvemos el contenido de la página
contenido = obtener_pagina("https://www.ejemplo.com") # Llamamos a la función y guardamos el resultado
print(contenido) # Imprimimos el contenido en pantalla
En este código, lo que hacemos es obtener el contenido de la página web https://www.ejemplo.com
y luego lo mostramos en pantalla. Primero, importamos la biblioteca requests
, luego definimos una función para hacer la petición a la página web, y finalmente almacenamos el contenido en una variable.
¿Por qué deberías aprender Python?
Lo mejor de Python es que, aunque hoy lo estamos utilizando para rastrear los enlaces salientes de una página web, puedes aplicarlo a muchas otras áreas. Python es una herramienta muy versátil y te permitirá automatizar tareas, trabajar con datos y desarrollar soluciones para problemas complejos sin necesidad de ser un experto en programación.
Lo segundo que tienes que saber: ¿Qué es Google Colab?
Google Colab es una herramienta gratuita proporcionada por Google que te permite escribir y ejecutar código Python directamente desde tu navegador. No necesitas instalar nada en tu ordenador, y lo único que necesitas para usarlo es una cuenta de Google (sí, la misma que usas para Gmail).
Colab es muy útil porque te permite trabajar en la nube, lo que significa que no estás limitado por la capacidad de tu ordenador. Todo el código se ejecuta en los servidores de Google, por lo que puedes llevar a cabo tareas pesadas, como análisis de datos o entrenamiento de modelos de inteligencia artificial, sin que tu equipo se resienta. Además, es ideal para colaborar con otros, ya que puedes compartir tus proyectos de Colab fácilmente y trabajar juntos en tiempo real.
¿Por qué usar Google Colab?
Una de las grandes ventajas de Google Colab es que es fácil de usar, especialmente si estás empezando con Python. No necesitas instalar programas complicados ni preocuparte por configuraciones técnicas. Simplemente abres tu navegador, accedes a Colab, y puedes empezar a escribir y ejecutar código al instante.
Otra razón para usar Google Colab es que es gratis. Google te proporciona recursos de computación, como CPU e incluso GPU (que son tarjetas gráficas que aceleran el procesamiento de tareas complejas), sin que tengas que pagar por ello. Esto lo hace perfecto si estás aprendiendo o necesitas realizar tareas que requieren más potencia de la que tu ordenador puede ofrecer.
¿Cómo funciona Google Colab?
Google Colab te proporciona una interfaz similar a la de un cuaderno, donde puedes escribir y ejecutar código en celdas. Cada celda puede contener una pequeña porción de código Python que se ejecuta de forma independiente. Esto es muy útil porque te permite probar pequeñas partes del programa sin tener que ejecutarlo todo de una sola vez. Así puedes ir desarrollando paso a paso.
Cuando escribes código en una celda y lo ejecutas, los resultados se muestran justo debajo, lo que te permite ver rápidamente si todo está funcionando como debería o si necesitas hacer ajustes. Además, Colab te permite guardar tu trabajo en tu cuenta de Google Drive, para que puedas retomarlo en cualquier momento y desde cualquier dispositivo.
¿Qué puedes hacer con Google Colab?
Con Google Colab puedes hacer todo lo que harías con Python en tu ordenador, pero con la ventaja de que puedes acceder a él desde cualquier lugar y compartir tu trabajo con otras personas. Es ideal para proyectos de análisis de datos, desarrollo web, inteligencia artificial y cualquier cosa que necesites programar con Python.
Otra ventaja es que Colab viene con muchas bibliotecas ya instaladas, como Pandas para trabajar con datos, NumPy para hacer cálculos matemáticos, o TensorFlow para inteligencia artificial. Así que no tienes que perder tiempo instalando cosas, simplemente empiezas a trabajar desde el primer minuto.
Ejemplo de uso en Google Colab
Para que te hagas una idea de lo fácil que es usar Google Colab, te muestro un ejemplo sencillo. Si quisieras imprimir algo en pantalla, solo tendrías que escribir este código en una celda:
print("Hola, este es mi primer código en Google Colab")
Después de ejecutar esa celda, verás el resultado justo debajo. Así de simple.
Si lo que quieres es trabajar con bibliotecas externas, como requests
para obtener el contenido de una página web, basta con escribir:
import requests
Y ya puedes empezar a utilizar esa biblioteca sin ningún problema.
¿Por qué deberías usar Google Colab?
La razón principal para usar Google Colab es que te permite ejecutar código Python de manera sencilla y sin complicaciones, sin necesidad de instalar programas adicionales. Además, puedes aprovechar recursos de procesamiento avanzados sin que te cueste nada. Ya sea que estés aprendiendo Python, necesites hacer análisis de datos o quieras trabajar en proyectos de desarrollo más avanzados, Colab te da todas las herramientas que necesitas, y lo mejor es que todo está en la nube, lo que significa que puedes acceder a tus proyectos desde cualquier lugar.
Ahora que ya sabemos un poco de teoría, vamos a lo que le da calidad a la película…
Cómo usar Python y Google Colab para rastrear enlaces salientes
Ahora que ya sabes lo básico sobre Python y Google Colab, es hora de ponernos manos a la obra. Vamos a usar Python para rastrear los enlaces salientes de cualquier página web. Esto te ayudará a mantener el control sobre los enlaces de tu sitio, mejorando la seguridad y el SEO de tu página.
Paso 1: Accede a Google Colab
Lo primero que debes hacer es entrar en Google Colab. Si nunca lo has usado antes, no te preocupes, es muy sencillo. Solo tienes que seguir estos pasos:
- Abre tu navegador y entra en Google Colab.
- Si no has iniciado sesión, hazlo con tu cuenta de Gmail.
Una vez dentro, estarás listo para crear un nuevo cuaderno donde escribirás y ejecutarás el código Python.
Paso 2: Crea un nuevo cuaderno en Google Colab
Cuando ya estés en Google Colab, lo siguiente que harás es crear un nuevo cuaderno donde escribirás el código que vamos a usar para rastrear los enlaces salientes.
- Haz clic en el menú Archivo.
- Selecciona Nuevo cuaderno.
- Verás una nueva página en blanco con una celda donde podrás empezar a escribir tu código.
Esta celda es donde escribiremos el código en Python para analizar los enlaces de una web.
Paso 3: Importa las bibliotecas necesarias
Antes de hacer cualquier cosa, necesitamos importar algunas bibliotecas que nos permitirán obtener y analizar el contenido de las páginas web. Para eso, debes copiar y pegar el siguiente código en la celda:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, urljoin
Este código le dice a Python que vamos a usar la biblioteca requests
para hacer peticiones web y BeautifulSoup
para analizar el contenido HTML de la página.
Paso 4: Define las funciones
Ahora, vamos a definir las funciones que harán el trabajo pesado. Estas funciones se encargarán de obtener los enlaces salientes de cualquier página web que le indiques.
Copia y pega el siguiente código en la siguiente celda de Google Colab:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, urljoin
# Dominio principal
dominio = "apferrer.com" # Solo el dominio sin "https://" para comprobar más fácilmente
visitadas = set()
internos = set()
# Función para obtener todos los enlaces de una URL, excluyendo mailto, tel y #fragmentos
def obtener_enlaces(url):
enlaces = set()
try:
respuesta = requests.get(url)
sopa = BeautifulSoup(respuesta.text, "html.parser")
# Encontrar todas las etiquetas <a> con un href
for enlace in sopa.find_all('a', href=True):
enlace_url = enlace['href']
# Convertir enlaces relativos a absolutos
enlace_absoluto = urljoin(url, enlace_url)
enlace_dominio = urlparse(enlace_absoluto).netloc
# Excluir enlaces con mailto, tel y fragmentos (#), y asegurar que sea interno
if not any(x in enlace_absoluto for x in ['mailto:', 'tel:', '#']) and dominio in enlace_dominio:
internos.add(enlace_absoluto)
enlaces.add(enlace_absoluto)
return enlaces
except Exception as e:
print(f"Error al obtener enlaces de {url}: {e}")
return set()
# Función para rastrear todas las URLs de una web
def rastrear_sitio(url):
if url not in visitadas:
visitadas.add(url)
print(f"Visitando: {url}")
enlaces = obtener_enlaces(url)
for enlace in enlaces:
if enlace not in visitadas:
rastrear_sitio(enlace)
# Rastrear el sitio web a partir del dominio
rastrear_sitio("https://apferrer.com")
# Mostrar resultados
print(f"Total de URLs internas encontradas: {len(internos)}")
print(internos)
En este código, hemos creado dos funciones: obtener_enlaces
y rastrear_sitio
. La primera se encarga de recoger todos los enlaces de la página y la segunda rastrea la web para obtener los enlaces salientes.
Paso 5: Introduce la URL que quieres analizar
Una vez que hayas hecho esto, solo tienes que ejecutar el código y Python se encargará de rastrear todos los enlaces salientes de esa página.
Paso 6: Ejecuta el código en Google Colab
Para ejecutar el código, simplemente tienes que hacer clic en el botón de «play» (▶️) que aparece a la izquierda de cada celda. Cuando lo ejecutes, Google Colab se encargará de procesar la página web que has indicado y te mostrará los enlaces salientes en la pantalla.
Por ejemplo, el resultado podría ser algo así:
Visitando: https://www.ejemplo.com
Enlace saliente encontrado: https://www.otraweb.com
Enlace saliente encontrado: https://www.siteexterno.com
Paso 7: Revisa los resultados
Una vez que se haya ejecutado el código, verás en pantalla todos los enlaces que no pertenecen a tu dominio, es decir, los enlaces salientes. Con esta información, puedes revisar si alguno de estos enlaces es peligroso, está roto o necesita ser actualizado. Mantener un control sobre estos enlaces es importante para mejorar la seguridad de tu sitio web y su SEO.
Conclusiones
¿Ves? Te dije que sería rápido y didáctico…
La combinación de Python y Google Colab te permite realizar esta tarea de forma súper simple y sin necesidad de configuraciones complicadas. Además, puedes repetir el proceso tantas veces como quieras para asegurarte de que los enlaces externos de tu web están en buen estado y que no estás enlazando a sitios que puedan afectar la reputación de tu dominio.
Bibliotecas más importantes de Python
Si te has quedado con ganas de aprender más sobre Python, hay algunas bibliotecas que pueden ser de gran utilidad para otras tareas, además de la que usamos en este artículo. Aquí te dejo una pequeña selección de las más importantes:
- NumPy: Es la biblioteca principal para el cálculo numérico y análisis de datos. Se utiliza para trabajar con grandes matrices y realizar operaciones matemáticas avanzadas.
- Pandas: Ideal para manipular y analizar datos. Si trabajas con hojas de cálculo o grandes conjuntos de datos, Pandas es lo que necesitas.
- Matplotlib: Si necesitas crear gráficos o visualizar datos, esta es la biblioteca perfecta para hacer gráficos de todo tipo, desde simples hasta más complejos.
- Scikit-learn: Esta biblioteca es muy utilizada para el machine learning. Contiene muchas herramientas para construir modelos predictivos y analizar datos.
- TensorFlow: Si estás interesado en la inteligencia artificial y el aprendizaje automático, TensorFlow es una de las bibliotecas más potentes para entrenar redes neuronales.
- Flask y Django: Estas bibliotecas se utilizan para el desarrollo de aplicaciones web. Si alguna vez te interesa crear un sitio web desde cero con Python, estas son las herramientas que necesitarás.
Enlace al cuaderno de Google Colab
Si prefieres no copiar y pegar todo el código, te lo dejo listo en un cuaderno de Google Colab para que puedas ejecutarlo directamente. Solo tienes que hacer clic en el enlace de abajo y empezar a trabajar con él: