-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEjercicio4.py
66 lines (52 loc) · 2.57 KB
/
Ejercicio4.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
''''
Este programa solicita al usuario ingresar una dirección IP IPv4.
Luego valida si la dirección IP ingresada cumple con el formato IPv4 válido y si pertenece a alguno de los rangos especificados.
Si es válida, muestra a qué VLAN pertenece.
Si no es válida, muestra un mensaje de error y registra un intento erróneo.
El programa termina cuando el usuario ingresa "fin" y luego muestra la cantidad total de intentos erróneos.
'''
import requests
from bs4 import BeautifulSoup
# Conjunto de etiquetas válidas
etiquetas_validas = {'html', 'body', 'title', 'script', 'head', 'meta', 'span', 'href', 'link', 'div', 'application', 'json'}
def procesar_pagina(url):
# Realizar la solicitud GET a la página web
response = requests.get(url)
# Verificar si la solicitud fue exitosa
if response.status_code == 200:
# Obtener el contenido HTML de la página
html = response.text
# Analizar el contenido HTML utilizando BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
# Inicializar contadores
conteo_etiquetas = {}
etiquetas_invalidas = 0
# Contabilizar etiquetas válidas
for etiqueta in etiquetas_validas:
conteo_etiquetas[etiqueta] = len(soup.find_all(etiqueta))
# Contabilizar etiquetas inválidas
for etiqueta in soup.find_all():
if etiqueta.name not in etiquetas_validas:
etiquetas_invalidas += 1
# Imprimir el reporte completo
print("Reporte completo:")
print("-----------------")
for etiqueta, cantidad in conteo_etiquetas.items():
print(f"{etiqueta}: {cantidad}")
# Imprimir total de etiquetas encontradas
total_etiquetas = sum(conteo_etiquetas.values())
print(f"Total de etiquetas encontradas: {total_etiquetas}")
# Imprimir cantidad máxima de etiquetas
max_etiquetas = max(conteo_etiquetas.values())
print(f"Cantidad máxima de etiquetas encontradas: {max_etiquetas}")
# Imprimir cantidad mínima de etiquetas
min_etiquetas = min(conteo_etiquetas.values())
print(f"Cantidad mínima de etiquetas encontradas: {min_etiquetas}")
# Imprimir cantidad total de etiquetas inválidas
print(f"Total de etiquetas inválidas: {etiquetas_invalidas}")
else:
print("Error: No se pudo acceder a la página web.")
# Ejemplo de uso
if __name__ == "__main__":
url = input("Ingrese la URL de la página web a procesar: ")
procesar_pagina(url)