TheOpenWeatherMapa es un servicio que proporciona datos meteorológicos, incluidos datos meteorológicos actuales, pronósticos y datos históricos a los desarrolladores de servicios web y aplicaciones móviles.
Proporciona una API con extremos JSON, XML y HTML y un nivel de uso gratuito limitado. Hacer más de 60 llamadas por minuto requiere una suscripción paga desde USD 40 por mes. El acceso a los datos históricos requiere una suscripción a partir de 150 USD al mes. Los usuarios pueden solicitar información meteorológica actual, pronósticos extendidos y mapas gráficos (que muestran la cobertura de nubes, la velocidad del viento, la presión y la precipitación).
Para usar esta API de datos meteorológicos actuales, se debe necesitar la clave API, que se puede obtener desde aquí .
Nota: el usuario debe crear una cuenta en openweathermap.org y luego solo puede usar las API.
Módulos necesarios:
requests json
A continuación se muestra la implementación:
Python3
# Python program to find current # weather details of any city # using openweathermap api # import required modules import requests, json # Enter your API key here api_key = "Your_API_Key" # base_url variable to store url base_url = "http://api.openweathermap.org/data/2.5/weather?" # Give city name city_name = input("Enter city name : ") # complete_url variable to store # complete url address complete_url = base_url + "appid=" + api_key + "&q=" + city_name # get method of requests module # return response object response = requests.get(complete_url) # json method of response object # convert json format data into # python format data x = response.json() # Now x contains list of nested dictionaries # Check the value of "cod" key is equal to # "404", means city is found otherwise, # city is not found if x["cod"] != "404": # store the value of "main" # key in variable y y = x["main"] # store the value corresponding # to the "temp" key of y current_temperature = y["temp"] # store the value corresponding # to the "pressure" key of y current_pressure = y["pressure"] # store the value corresponding # to the "humidity" key of y current_humidity = y["humidity"] # store the value of "weather" # key in variable z z = x["weather"] # store the value corresponding # to the "description" key at # the 0th index of z weather_description = z[0]["description"] # print following values print(" Temperature (in kelvin unit) = " + str(current_temperature) + "\n atmospheric pressure (in hPa unit) = " + str(current_pressure) + "\n humidity (in percentage) = " + str(current_humidity) + "\n description = " + str(weather_description)) else: print(" City Not Found ")
Producción :
Enter city name : Delhi Temperature (in kelvin unit) = 312.15 atmospheric pressure (in hPa unit) = 996 humidity (in percentage) = 40 description = haze
Enfoque 2:
Aquí, en el segundo enfoque, utilizaremos algunos de los siguientes módulos y funciones que se enumeran a continuación:
1. BeautifulSoup: es una biblioteca en python utilizada para extraer datos de archivos HTML y XML, es decir, con fines de web scraping. Genera un árbol de análisis a partir del código fuente de la página, que se puede utilizar para extraer datos de una manera más legible y jerárquica. Para instalar una hermosa biblioteca de sopas en el sistema, use el siguiente código en la terminal:
-->> pip install beautifulsoup
2. Requests: aquí usaremos el módulo de requests de Python para realizar requests HTTP. Para instalar, use el código a continuación en la terminal.
-->> pip install requests
3. Aquí estamos usando encabezados porque los encabezados contienen información específica del protocolo que se coloca antes del mensaje sin procesar, es decir, se recupera del sitio web.
4. Después de eso, usaremos la función get() y pasaremos la búsqueda de Google junto con el nombre de la ciudad para recuperar los datos de Google.
Luego usaremos beautifulsoup y analizaremos los datos HTML que se requieren del sitio web.
5. Luego, usaremos la función select() para recuperar la información particular, como hora, información, ubicación, almacenarlos en alguna variable y almacenarlos aún más.
Después de todo esto, finalmente imprimiremos los datos, es decir, almacenados en las variables.
Python3
from bs4 import BeautifulSoup import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} def weather(city): city = city.replace(" ", "+") res = requests.get( f'https://www.google.com/search?q={city}&oq={city}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&ie=UTF-8', headers=headers) print("Searching...\n") soup = BeautifulSoup(res.text, 'html.parser') location = soup.select('#wob_loc')[0].getText().strip() time = soup.select('#wob_dts')[0].getText().strip() info = soup.select('#wob_dc')[0].getText().strip() weather = soup.select('#wob_tm')[0].getText().strip() print(location) print(time) print(info) print(weather+"°C") city = input("Enter the Name of City -> ") city = city+" weather" weather(city) print("Have a Nice Day:)") # This code is contributed by adityatri
Entrada de muestra:
Mahoba
Salida de muestra:
Enter the Name of City -> Mahoba Searching... Mahoba, Uttar Pradesh Monday, 12:00 am Cloudy 27°C Have a Nice Day:)