La semplicità e l'adattabilità di Python lo hanno aiutato a guadagnare popolarità nel corso degli anni. Puoi facilmente recuperare dati utili su Internet con Python. È quindi possibile utilizzare tali dati per guidare un'applicazione pratica.

Scopri come trovare dati meteorologici in tempo reale utilizzando il web scraping e le API. È possibile utilizzare questi dati recuperati per sviluppare una semplice applicazione meteo.

Ottieni i dettagli del tempo corrente di una città utilizzando il web scraping

Il web scraping è il processo di estrazione di dati e contenuti da un sito web. Il recupero autonomo dei dati dal Web apre molti casi d'uso. Ma la maggior parte di questi dati è in formato HTML, che è necessario analizzare e ispezionare per estrarre i dati rilevanti.

Puoi estrarre i dati meteorologici in tempo reale di qualsiasi città utilizzando il web scraping. La libreria BeautifulSoup di Python è la libreria di riferimento per estrarre dati da file HTML e XML. Devi installare la libreria BeautifulSoup Python tramite pip per iniziare il processo di scraping. Esegui il seguente comando nel terminale per installare BeautifulSoup e richiedere le librerie:

instagram viewer

pippo installare beautifulsoup4 richieste

Dopo aver installato le librerie richieste, inizia importandole nel tuo codice:

Il codice utilizzato in questo progetto è disponibile in a Deposito GitHub ed è gratuito per l'uso con la licenza MIT.

da bs4 importare Zuppa Bella
importare richieste

Successivamente, è necessario fornire i dettagli dell'intestazione in modo che il client e il server possano passare informazioni aggiuntive con una richiesta o una risposta HTTP:

intestazioni = {
'Agente utente': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, come Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Crea una funzione, trova_meteo(), per effettuare una query a Google utilizzando il file richieste.get() metodo. Utilizzerai un URL di ricerca per ottenere il meteo di una città, quindi raschierai i dati significativi per ottenere posizione, temperatura, ora e descrizione del tempo. Quindi, usa BeautifulSoup per analizzare la risposta HTML ricevuta:

deftrova_meteo(nome della città):
nome_città = nome_città.replace("", "+")

Tentativo:
res = richieste.get(
F'https://www.google.com/search? q={nome_città}&oq={nome_città}&aqs=cromo.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=cromo&cioè=UTF-8', intestazioni=intestazioni)

stampa("Caricamento...")

soup = BeautifulSoup (res.text, 'html.parser')
posizione = zuppa.select('#wob_loc')[0].getText().strip()
tempo = zuppa.select('#wob_dts')[0].getText().strip()
info = zuppa.select('#wob_dc')[0].getText().strip()
temperatura = zuppa.select('#wob_tm')[0].getText().strip()

stampa("Posizione: " + posizione)
stampa("Temperatura: " + temperatura + "°C")
stampa("Tempo: " + tempo)
stampa("Descrizione meteo: " + informazioni)
tranne:
stampa("Inserisci un nome di città valido")

Per estrarre gli ID degli elementi, eseguire una ricerca su Google e ispezionare la pagina nel browser utilizzando gli strumenti web. È necessario ispezionare l'elemento per trovare gli ID dell'elemento HTML per il quale si desidera estrarre i dati:

Quindi, passa questi ID al file Selezionare() metodo. Questo metodo esegue un selettore CSS sul documento analizzato e restituisce tutti gli elementi corrispondenti. IL getText() Il metodo estrae il testo dall'elemento HTML. IL striscia() Il metodo rimuove tutti i caratteri di spazio bianco iniziali e finali dal testo. Dopo aver estratto un valore pulito, puoi memorizzarlo in una variabile.

Infine, chiedi all'utente di inserire una città e di passarla al trova_meteo funzione:

nome_città = input("Inserisci il nome della città: ")
nome_città = nome_città + " tempo atmosferico"
find_weather (nome_città)

Ora, quando esegui il codice, ti verrà chiesto di inserire il nome di una città. È necessario inserire un nome di città valido per ottenere i risultati o il codice solleverà un'eccezione.

Ottieni i dettagli meteo attuali di una città utilizzando l'API OpenWeatherMap

OpenWeatherMap è un servizio online, di proprietà di OpenWeather Ltd. La sua API fornisce dati meteorologici globali tra cui meteo attuale, previsioni e dati passati per qualsiasi località. Il livello gratuito dell'API OpenWeatherMap fornisce dati meteo attuali con un limite di 60 chiamate/minuto. Devi creare un account su OpenWeatherMap per ottenere la tua chiave API.

Non inviare il codice con la chiave API a un repository pubblico poiché chiunque abbia accesso ai tuoi file di origine può vedere e rubare la tua chiave. In un'app di produzione, considera spostando i dati della chiave API in un file .env per una maggiore sicurezza.

Vai a OpenWeatherMap sito web e creare un account gratuito. Dopo aver creato l'account, puoi trovare le tue chiavi API sul file Le mie chiavi API pagina. Puoi utilizzare la chiave API predefinita fornita da OpenWeatherMap o generarne una tua. OpenWeatherMap fornisce il supporto per generare tutte le chiavi API necessarie per i tuoi progetti.

Ora sei pronto per recuperare i dati meteo in tempo reale.

# Importazione di librerie
importare richieste
importare json

# Inserisci qui la tua chiave API OpenWeatherMap
# NON inviarlo a un repository pubblico
Chiave_API = "La tua_chiave_API"

# Fornisci un nome di città valido
nome_città = input("Inserisci il nome della città: ")

# Costruzione del percorso dell'URL dell'API
URL = f"http://api.openweathermap.org/data/2.5/weather? q={nome_città}&idapp={Chiave_API}"

# Esecuzione di una richiesta get all'API
risposta = richieste.get (url)

# Conversione della risposta JSON in un dizionario
res = risposta.json()

# Decommenta la riga successiva per vedere tutto
# dati recuperati dall'API
# stampa (ris)

# Verifica se la città è stata trovata
# Se il valore di "cod" non è 404,
# significa che la città è stata trovata
se ris["merluzzo"] != "404":
dati = ris["principale"]

# Memorizzazione dei dati di temperatura in tempo reale
live_temperatura = dati["temp"]

# Memorizzazione dei dati di pressione in tempo reale
live_pressione = dati["pressione"]
desc = ris["tempo atmosferico"]

# Memorizzazione della descrizione del tempo
descrizione_meteo = descrizione[0]["descrizione"]
stampa("Temperatura (in scala Kelvin): " + str (temperatura_live))
stampa("Pressione: " + str (pressione_live))
stampa("Descrizione: " + str (descrizione_meteo))

altro:
# Se la città non viene trovata,
# questo blocco di codice verrà eseguito
stampa("Inserisci un nome di città valido")

Se fornisci una chiave API valida e inserisci il nome della città corretto, riceverai i dati dall'API in formato JSON. Successivamente, è necessario convertire questi dati in formato JSON in un oggetto Python utilizzando il file json() metodo per eseguire ulteriori operazioni. Se la città viene trovata, dovrai risolvere l'oggetto dict (ris) per estrarre le informazioni richieste.

Sviluppa l'applicazione meteo utilizzando i dati meteorologici in tempo reale

Ora che hai imparato a recuperare i dati in tempo reale utilizzando l'API OpenWeatherMap, sei pronto per sviluppare una semplice applicazione meteo utilizzandola. La creazione di un'applicazione meteo può aiutarti ad applicare ciò che sai e ad affinare le tue abilità in Python.

Sporcarsi le mani su progetti pratici può renderti uno sviluppatore migliore. Puoi sviluppare altri progetti Python come un sistema di accesso, un'app per quiz o un accorciatore di URL per consolidare le tue capacità di sviluppo di Python.