Este código en Python utiliza las bibliotecas requests
y BeautifulSoup
para extraer enlaces externos de una página web dada. Aquí está el funcionamiento del código paso a paso:
- Importación de bibliotecas:
from bs4 import BeautifulSoup
: Importa la claseBeautifulSoup
de la biblioteca BeautifulSoup, que se utiliza para analizar el HTML de una página web.import requests
: Importa la bibliotecarequests
, que se utiliza para realizar solicitudes HTTP.
- Definición de la función
extraer_enlaces_externos(url)
: Esta función toma una URL como entrada y devuelve una lista de enlaces externos encontrados en esa página. - Bloque
try-except
: El código está contenido dentro de un bloquetry-except
para manejar posibles errores que puedan ocurrir durante la ejecución del código. - Realización de la solicitud HTTP: Se utiliza la función
requests.get(url)
para realizar una solicitud HTTP GET a la URL proporcionada. - Verificación del estado de la respuesta: Se verifica si la respuesta es exitosa (código de estado 200) utilizando
response.status_code == 200
. - Creación del objeto
BeautifulSoup
: Si la respuesta es exitosa, se crea un objetoBeautifulSoup
llamadosoup
a partir del texto de la respuesta utilizandoBeautifulSoup(response.text, 'html.parser')
. Esto permite analizar el HTML de la página. - Extracción de enlaces externos: Se inicializa una lista llamada
enlaces_externos
. Luego, se recorren todos los elementos<a>
(enlaces) encontrados en el HTML utilizandosoup.find_all('a')
. - Filtrado de enlaces externos: Para cada enlace encontrado, se obtiene el atributo
href
que contiene la URL del enlace utilizandoenlace.get('href')
. Se verifica si el enlace es externo (comienza con “http”) y si no pertenece al mismo dominio que la URL de la página original. Si cumple con estas condiciones, se agrega a la listaenlaces_externos
. - Impresión de enlaces externos: Finalmente, se imprime la lista de enlaces externos encontrados.
- Manejo de errores: En caso de que ocurra algún error durante el proceso, se imprime un mensaje de error.
- Ejemplo de uso: Se proporciona un ejemplo de cómo usar la función, donde se pasa una URL de ejemplo (
"https://www.ejemplo.com"
) a la funciónextraer_enlaces_externos
.
En resumen, este código permite extraer y mostrar enlaces externos de una página web dada.
from bs4 import BeautifulSoup
import requests
def extraer_enlaces_externos(url):
try:
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
enlaces_externos = []
for enlace in soup.find_all('a'):
href = enlace.get('href')
if href and 'http' in href and not url in href:
enlaces_externos.append(href)
print("Enlaces Externos:", enlaces_externos)
else:
print("Error: No se pudo acceder a la página.")
except Exception as e:
print("Error:", e)
# Ejemplo de uso
url_pagina = "https://www.ejemplo.com"
extraer_enlaces_externos(url_pagina)