7 usuarios conectados

Encontrar URL. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada encontrar_url que tome una cadena de texto como entrada y devuelva una lista de todas las URLs encontradas en el texto. Considera URLs que comiencen con http:// o https:// y que contengan caracteres alfanuméricos, puntos, guiones y barras inclinadas.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Encontrar URL

📋 Copiar código


import re

def encontrar_url(texto):
  """
  Encuentra todas las URLs que comienzan con http:// o https:// en un texto.

  Args:
    texto: La cadena de texto de entrada.

  Returns:
    Una lista de todas las URLs encontradas.
  """
  urls = re.findall(r"https?://[\w\d./-]+", texto)
  return urls

# Ejemplos de uso
texto1 = "Visita mi sitio web en http://www.example.com o https://subdominio.example.org/pagina."
resultado1 = encontrar_url(texto1)
print(f"URLs en '{texto1}': {resultado1}")

texto2 = "Este texto no contiene URLs."
resultado2 = encontrar_url(texto2)
print(f"URLs en '{texto2}': {resultado2}")

texto3 = "También puedes mirar http://blog.example.net."
resultado3 = encontrar_url(texto3)
print(f"URLs en '{texto3}': {resultado3}")

texto4 = "URL con puerto: http://localhost:8080."
resultado4 = encontrar_url(texto4)
print(f"URLs en '{texto4}': {resultado4}")

texto5 = "URL con parámetros: https://example.com/index.php?id=123."
resultado5 = encontrar_url(texto5)
print(f"URLs en '{texto5}': {resultado5}")

texto6 = "ftp://algo.com no es una URL válida para esta función."
resultado6 = encontrar_url(texto6)
print(f"URLs en '{texto6}': {resultado6}")

texto7 = ""
resultado7 = encontrar_url(texto7)
print(f"URLs en '': {resultado7}")

 

Explicación del Código:

  1. Importa el módulo re: Se utiliza para trabajar con expresiones regulares.

  2. Función encontrar_url(texto):

    • Utiliza la función re.findall(patrón, cadena) para encontrar todas las coincidencias del patrón en la cadena de texto.
    • El patrón de la expresión regular r"https?://[\w\d./-]+" se define de la siguiente manera:
      • https?://: Coincide con "http://" o "https://". El ? hace que la 's' sea opcional.
      • [\w\d./-]+: Coincide con uno o más (+) caracteres que son:
        • \w: Caracteres de palabra (letras, números, guion bajo).
        • \d: Dígitos (0-9).
        • ./-: Los caracteres punto, barra inclinada y guion literalmente.
    • La función re.findall() devuelve una lista de todas las subcadenas que coinciden con el patrón (en este caso, todas las URLs encontradas que cumplen con el criterio).

Ejemplos de Uso:

Los ejemplos muestran cómo la función extrae las URLs que comienzan con http:// o https:// de diferentes cadenas de texto. Se incluyen casos con múltiples URLs, URLs con subdominios, puertos y parámetros, así como casos sin URLs o con URLs que utilizan otros protocolos como ftp://.