La simplicidad y adaptabilidad de Python lo han ayudado a ganar popularidad a lo largo de los años. Puede recuperar fácilmente datos útiles a través de Internet con Python. Luego puede usar esos datos para impulsar una aplicación práctica.
Aprenda a encontrar datos meteorológicos en tiempo real mediante web scraping y API. Puede usar estos datos obtenidos para desarrollar una aplicación meteorológica simple.
Obtenga los detalles del clima actual de una ciudad usando Web Scraping
El web scraping es el proceso de extraer datos y contenido de un sitio web.. La obtención autónoma de datos de la web abre muchos casos de uso. Pero la mayoría de estos datos están en formato HTML, que debe analizar e inspeccionar para extraer datos relevantes.
Puede extraer datos meteorológicos en vivo de cualquier ciudad utilizando web scraping. La biblioteca BeautifulSoup de Python es la biblioteca de referencia para extraer datos de archivos HTML y XML. Debe instalar la biblioteca BeautifulSoup Python a través de pip para comenzar el proceso de raspado. Ejecute el siguiente comando en la terminal para instalar BeautifulSoup y solicitar bibliotecas:
pepita instalar sopabonita4 solicitudes
Una vez que haya instalado las bibliotecas requeridas, comience por importarlas en su código:
El código utilizado en este proyecto está disponible en un repositorio GitHub y es gratis para su uso bajo la licencia MIT.
de bs4 importar HermosaSopa
importar peticiones
A continuación, debe proporcionar los detalles del encabezado para que el cliente y el servidor puedan pasar información adicional con una solicitud o respuesta HTTP:
encabezados = {
'Agente de usuario': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
Crear una función, encontrar_tiempo(), para realizar una consulta a Google mediante el solicitudes.get() método. Utilizará una URL de búsqueda para obtener el clima de una ciudad, luego extraerá los datos significativos para obtener la ubicación, la temperatura, la hora y la descripción del clima. Luego, use BeautifulSoup para analizar la respuesta HTML recibida:
definitivamenteencontrar_tiempo(Nombre de la ciudad):
nombre_ciudad = nombre_ciudad.replace("", "+")intentar:
res = solicitudes.obtener(
F'https://www.google.com/search? q={nombre_ciudad}&oq={nombre_ciudad}&aqs=cromo.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=cromo&es decir = UTF-8', encabezados = encabezados)imprimir("Cargando...")
sopa = BeautifulSoup (res.text, 'html.parser')
ubicación = sopa.select('#wob_loc')[0].getText().strip()
tiempo = sopa.seleccionar('#wob_dts')[0].getText().strip()
info = sopa.seleccionar('#wob_dc')[0].getText().strip()
temperatura = sopa.select('#wob_tm')[0].getText().strip()
imprimir("Ubicación: " + ubicación)
imprimir("Temperatura: " + temperatura + "°C")
imprimir("Tiempo: " + tiempo)
imprimir("Descripción del tiempo: " + información)
excepto:
imprimir("Ingrese un nombre de ciudad válido")
Para extraer los ID de elementos, realice una búsqueda en Google e inspeccione la página en su navegador utilizando herramientas web. Debe inspeccionar el elemento para encontrar los ID del elemento HTML para el que desea extraer datos:
A continuación, pase estos ID al seleccionar() método. Este método ejecuta un selector de CSS en el documento analizado y devuelve todos los elementos coincidentes. El obtenerTexto() El método extrae el texto del elemento HTML. El banda() El método elimina cualquier carácter de espacio en blanco inicial y final del texto. Una vez que haya extraído un valor limpio, puede almacenarlo en una variable.
Finalmente, solicite al usuario que ingrese una ciudad y se la pase al encontrar_tiempo función:
nombre_ciudad = entrada("Ingrese el nombre de la ciudad: ")
nombre_ciudad = nombre_ciudad + " clima"
find_weather (nombre_ciudad)
Ahora, cuando ejecute el código, le pedirá que ingrese el nombre de una ciudad. Debe ingresar un nombre de ciudad válido para obtener los resultados o el código generará una excepción.
Obtenga los detalles del clima actual de una ciudad usando la API de OpenWeatherMap
OpenWeatherMap es un servicio en línea propiedad de OpenWeather Ltd. Su API proporciona datos meteorológicos globales, incluido el clima actual, pronósticos y datos anteriores para cualquier ubicación. El nivel gratuito de la API de OpenWeatherMap proporciona datos meteorológicos actuales con un límite de 60 llamadas por minuto. Debe crear una cuenta en OpenWeatherMap para obtener su propia clave API.
No envíe el código con la clave API a un repositorio público, ya que cualquier persona con acceso a sus archivos fuente puede ver y robar su clave. En una aplicación de producción, considere mover los datos de la clave API a un archivo .env para mayor seguridad.
Ir a OpenWeatherMap's sitio web y crear una cuenta gratuita. Después de crear la cuenta, puede encontrar sus claves API en el Mis claves API página. Puede utilizar la clave API predeterminada proporcionada por OpenWeatherMap o generar una propia. OpenWeatherMap brinda soporte para generar tantas claves API como sea necesario para sus proyectos.
Ahora, está listo para recuperar los datos meteorológicos en vivo.
# Importación de bibliotecas
importar peticiones
importar json# Ingrese su clave API OpenWeatherMap aquí
# NO lo empuje a un repositorio público
Clave_API = "Tu_clave_de_API"# Proporcione un nombre de ciudad válido
nombre_ciudad = entrada("Introduzca el nombre de la ciudad: ")# Construyendo la ruta URL de la API
URL = f"http://api.openweathermap.org/data/2.5/weather? q={nombre_ciudad}&appid={API_Clave}"# Realizar una solicitud de obtención a la API
respuesta = solicitudes.get (url)# Convertir la respuesta JSON a un diccionario
res = respuesta.json()# Descomente la siguiente línea para ver todo
# datos que se obtienen de la API
# imprimir (res)# Comprobando si se encuentra la ciudad
# Si el valor de "cod" no es 404,
# eso significa que se encuentra la ciudad
si res["bacalao"] != "404":
datos = res["principal"]# Almacenar los datos de temperatura en vivo
temperatura_viva = datos["temperatura"]# Almacenamiento de los datos de presión en vivo
presión_viva = datos["presión"]
desc = res["clima"]# Almacenamiento de la descripción del clima
descripción_del_tiempo = desc[0]["descripción"]
imprimir("Temperatura (en escala Kelvin): " + str (temperatura_en_vivo))
imprimir("Presión: " + str (presión_viva))
imprimir("Descripción: " + str (descripción_del_tiempo))
demás:
# Si no se encuentra la ciudad,
# este bloque de código será ejecutado
imprimir("Ingrese un nombre de ciudad válido")
Si proporciona una clave de API válida e ingresa el nombre de ciudad correcto, recibirá los datos de la API en formato JSON. A continuación, debe convertir estos datos en formato JSON en un objeto de Python utilizando el json() método para realizar otras operaciones. Si se encuentra la ciudad, deberá resolver el objeto dict (resolución) para extraer la información requerida.
Desarrollar una aplicación meteorológica utilizando los datos meteorológicos en vivo
Ahora que aprendió cómo obtener datos en vivo usando la API de OpenWeatherMap, está listo para desarrollar una aplicación meteorológica simple usándola. La creación de una aplicación meteorológica puede ayudarlo a aplicar lo que sabe y perfeccionar sus habilidades de Python.
Ensuciarse las manos con proyectos prácticos puede convertirlo en un mejor desarrollador. Puede desarrollar algunos otros proyectos de Python, como un sistema de inicio de sesión, una aplicación de prueba o un acortador de URL para solidificar sus habilidades de desarrollo de Python.