APFerrer
Volver al blog
Trucos rápidosTrucos rápidos

Trucos rápidos - Rastreo de URL

APFerrer20 de octubre de 202415 min
Entradilla

Hoy: Ver los enlaces salientes de una URL usando Python y Google Colab

Trucos rápidos: Rastreo de URL

Hoy: Ver los enlaces salientes de una URL usando Python y Google Colab

Importancia del análisis:

  • Seguridad: detectar inyecciones (PHP) que redirijan a sitios fraudulentos.
  • SEO: evitar enlaces rotos y a sitios de mala reputación.
  • Control: mantener el dominio seguro.

Existe una forma de hackeo que consiste en inyectar un archivo malicioso (generalmente un PHP) en la raíz de tu web.

¿Qué es Python?

Lenguaje creado en 1991 por Guido van Rossum. Accesible, versátil. Tres elementos clave:

  1. Bibliotecas: colecciones de herramientas preescritas.
  2. Funciones: bloques de código.
  3. Variables: datos reutilizables.

Ejemplo básico

import requests

def obtener_pagina(url):
    respuesta = requests.get(url)
    return respuesta.text

contenido = obtener_pagina("https://www.ejemplo.com")
print(contenido)

¿Qué es Google Colab?

Herramienta gratuita de Google para ejecutar Python en navegador.

Ventajas:

  • Sin instalaciones locales
  • CPU/GPU gratis
  • Colaboración en tiempo real
  • Guarda en Drive
  • Bibliotecas preinstaladas (Pandas, NumPy, TensorFlow)

No necesitas instalar nada en tu ordenador, y lo único que necesitas para usarlo es una cuenta de Google.

Cómo usar: rastrear enlaces internos

Pasos:

  1. Abrir colab.research.google.com
  2. Iniciar sesión Gmail
  3. Archivo → Nuevo cuaderno
  4. Importar bibliotecas
  5. Definir funciones de rastreo

Código completo

import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, urljoin

dominio = "apferrer.com"
visitadas = set()
internos = set()

def obtener_enlaces(url):
    enlaces = set()
    try:
        respuesta = requests.get(url)
        sopa = BeautifulSoup(respuesta.text, "html.parser")
        for enlace in sopa.find_all('a', href=True):
            enlace_url = enlace['href']
            enlace_absoluto = urljoin(url, enlace_url)
            enlace_dominio = urlparse(enlace_absoluto).netloc
            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()

def rastrear_sitio(url):
    if url not in visitadas:
        visitadas.add(url)
        enlaces = obtener_enlaces(url)
        for enlace in enlaces:
            if enlace not in visitadas:
                rastrear_sitio(enlace)

rastrear_sitio("https://apferrer.com")
print(f"Total internas: {len(internos)}")
print(internos)

Conclusión

Te dije que sería rápido y didáctico…

Bibliotecas Python importantes

  1. NumPy - cálculos numéricos.
  2. Pandas - manipulación de datos.
  3. Matplotlib - gráficos.
  4. Scikit-learn - ML.
  5. TensorFlow - IA / redes neuronales.
  6. Flask / Django - web.

Recursos

CTAs

  • Formulario "¿Comenzamos?"
  • "Reservar mi cita"
AF
APFerrer
APFerrer · Consultora en datos y procesos
Nota de la autora

¿Aplica a tu empresa? Cuéntamelo en 30 minutos y vemos qué encaja.

Reservar 30 min