1
+ """* EJERCICIO:
2
+ * Utilizando un mecanismo de peticiones HTTP de tu lenguaje, realiza
3
+ * una petición a la web que tú quieras, verifica que dicha petición
4
+ * fue exitosa y muestra por consola el contenido de la web.
5
+ *
6
+ * DIFICULTAD EXTRA (opcional):
7
+ * Utilizando la PokéAPI (https://pokeapi.co), crea un programa por
8
+ * terminal al que le puedas solicitar información de un Pokémon concreto
9
+ * utilizando su nombre o número.
10
+ * - Muestra el nombre, id, peso, altura y tipo(s) del Pokémon
11
+ * - Muestra el nombre de su cadena de evoluciones
12
+ * - Muestra los juegos en los que aparece
13
+ * - Controla posibles errores"""
14
+ import requests
15
+
16
+ url = 'https://pokeapi.co'
17
+
18
+ respuesta = requests .get (url )
19
+ if respuesta .status_code == 200 :
20
+ print (respuesta .text )
21
+ elif respuesta .status_code == 404 :
22
+ print ("La petición no es válida" )
23
+ elif respuesta .status_code == 500 :
24
+ print ("Error interno del servidor" )
25
+
26
+ # EXTRA
27
+ while True :
28
+ nombre_pokemon = input ("Introduce el nombre o el número del Pokémon, S/s para salir: " )
29
+ if nombre_pokemon == 'S' or nombre_pokemon == 's' :
30
+ break
31
+ else :
32
+ # Datos generales del Pokémon
33
+ url_pokemon = f'https://pokeapi.co/api/v2/pokemon/{ nombre_pokemon } '
34
+ respuesta = requests .get (url_pokemon )
35
+ if respuesta .status_code == 200 :
36
+ datos = respuesta .json ()
37
+ print (f'Id->{ datos ['id' ]} , Nombre-> { datos ['name' ]} , peso-> { datos ['weight' ]} , altura-> { datos ['height' ]} ' )
38
+ print ('Tipo(s):' )
39
+ for type in datos ['types' ]:
40
+ print (f'Tipo-> { type ["type" ]["name" ]} ' )
41
+
42
+ # Cadena de evoluciones
43
+ url_evoluciones = f'https://pokeapi.co/api/v2/pokemon-species/{ nombre_pokemon } '
44
+ respuesta = requests .get (url_evoluciones )
45
+ if respuesta .status_code == 200 :
46
+ url = respuesta .json ()['evolution_chain' ]['url' ]
47
+ respuesta = requests .get (url )
48
+ if respuesta .status_code == 200 :
49
+ datos = respuesta .json ()
50
+ print ('EVOLUCIÓN DEL POKEMON' )
51
+
52
+ def evolucion (datos ):
53
+ print (datos ['species' ]['name' ])
54
+ if 'evolves_to' in datos :
55
+ for evo in datos ['evolves_to' ]:
56
+ evolucion (evo )
57
+
58
+ evolucion (datos ['chain' ])
59
+
60
+ elif respuesta .status_code == 400 :
61
+ print ("El nombre o el número del Pokémon no es válido" )
62
+ elif respuesta .status_code == 500 :
63
+ print ("Error interno del servidor" )
64
+
65
+ # Juegos
66
+ respuesta = requests .get (url_pokemon )
67
+ if respuesta .status_code == 200 :
68
+ datos = respuesta .json ()
69
+ print ('JUEGOS: ' )
70
+ for juego in datos ['game_indices' ]:
71
+ print (f'Número-> { juego ['game_index' ]} - versión-> { juego ["version" ]["name" ]} - URL-> { juego ["version" ]["url" ]} ' )
72
+ elif respuesta .status_code == 400 :
73
+ print ("El nombre o el número del Pokémon no es válido" )
74
+ elif respuesta .status_code == 500 :
75
+ print ("Error interno del servidor" )
76
+
77
+ elif respuesta .status_code == 400 :
78
+ print ("El nombre o el número del Pokémon no es válido" )
79
+ elif respuesta .status_code == 500 :
80
+ print ("Error interno del servidor" )
81
+
82
+ elif respuesta .status_code == 400 :
83
+ print ("El nombre o el número del Pokémon no es válido" )
84
+ elif respuesta .status_code == 500 :
85
+ print ("Error interno del servidor" )
0 commit comments