Simplitatea și adaptabilitatea lui Python l-au ajutat să câștige popularitate de-a lungul anilor. Puteți recupera cu ușurință date utile de pe internet cu Python. Apoi puteți utiliza acele date pentru a conduce o aplicație practică.

Aflați cum să găsiți date meteo în timp real folosind web scraping și API-uri. Puteți utiliza aceste date preluate pentru a dezvolta o aplicație meteo simplă.

Obțineți detalii despre vremea actuală a unui oraș utilizând Web Scraping

Web scraping este procesul de extragere a datelor și a conținutului de pe un site web. Preluarea autonomă a datelor de pe web deschide o mulțime de cazuri de utilizare. Dar majoritatea acestor date sunt în format HTML, pe care trebuie să îl analizați și să îl inspectați pentru a extrage datele relevante.

Puteți extrage date meteo în direct din orice oraș folosind web scraping. Biblioteca BeautifulSoup de la Python este biblioteca de bază pentru a extrage date din fișierele HTML și XML. Trebuie să instalați biblioteca BeautifulSoup Python prin pip pentru a începe procesul de răzuire. Rulați următoarea comandă în terminal pentru a instala BeautifulSoup și cere biblioteci:

instagram viewer

pip instalare beautifulsoup4 cereri

După ce ați instalat bibliotecile necesare, începeți prin a le importa în codul dvs.:

Codul folosit în acest proiect este disponibil în a Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.

din bs4 import Frumoasa Supa
import cereri

Apoi, trebuie să furnizați detaliile antetului, astfel încât clientul și serverul să poată transmite informații suplimentare cu o solicitare sau un răspuns HTTP:

antete = {
'Agent utilizator': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, ca Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Creați o funcție, find_weather(), pentru a face o interogare la Google folosind requests.get() metodă. Veți folosi o adresă URL de căutare pentru a obține vremea unui oraș, apoi veți răzui datele semnificative pentru a obține locația, temperatura, ora și descrierea vremii. Apoi, utilizați BeautifulSoup pentru a analiza răspunsul HTML primit:

defgăsi_vremea(Numele orasului):
city_name = city_name.replace("", "+")

încerca:
res = requests.get(
f'https://www.google.com/search? q={nume_oraș}&oq={city_name}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&adică=UTF-8', headers=headers)

imprimare("Se încarcă...")

supă = BeautifulSoup (res.text, 'html.parser')
locație = soup.select('#wob_loc')[0].getText().strip()
timp = sup.select('#wob_dts')[0].getText().strip()
info = sup.select('#wob_dc')[0].getText().strip()
temperatura = supa.select('#wob_tm')[0].getText().strip()

imprimare("Locație: " + locație)
imprimare("Temperatura: " + temperatura + "°C")
imprimare("Timp: " + timp)
imprimare("Descrierea vremii: " + info)
cu exceptia:
imprimare("Vă rugăm să introduceți un nume de oraș valid")

Pentru a extrage ID-urile elementelor, efectuați o căutare pe Google și inspectați pagina din browser folosind instrumente web. Trebuie să inspectați elementul pentru a găsi ID-urile elementului HTML pentru care doriți să extrageți date:

Apoi, transmiteți aceste ID-uri către Selectați() metodă. Această metodă rulează un selector CSS pe documentul analizat și returnează toate elementele care se potrivesc. The getText() metoda extrage textul din elementul HTML. The bandă() metoda elimină orice caractere de spații albe de început și de sfârșit din text. După ce ați extras o valoare curată, o puteți stoca într-o variabilă.

În cele din urmă, cereți utilizatorului să introducă un oraș și să îl transmită către găsi_vremea funcţie:

city_name = input("Introduceți numele orașului: ")
city_name = city_name + " vreme"
find_weather (nume_oraș)

Acum, când rulați codul, acesta vă va solicita să introduceți un nume de oraș. Trebuie să introduceți un nume de oraș valid pentru a obține rezultate, altfel codul va ridica o excepție.

Obțineți detalii despre vremea actuală a unui oraș folosind API-ul OpenWeatherMap

OpenWeatherMap este un serviciu online, deținut de OpenWeather Ltd. API-ul său oferă date meteo globale, inclusiv vremea actuală, prognozele și date anterioare pentru orice locație. Nivelul gratuit al API-ului OpenWeatherMap oferă date meteo actuale cu o limită de 60 de apeluri/minut. Trebuie să creați un cont pe OpenWeatherMap pentru a obține propria cheie API.

Nu împingeți codul cu cheia API într-un depozit public, deoarece oricine are acces la fișierele sursă vă poate vedea și fura cheia. Într-o aplicație de producție, luați în considerare mutarea datelor cheii API într-un fișier .env pentru securitate sporită.

Mergi la OpenWeatherMap's site-ul web și creați un cont gratuit. După crearea contului, puteți găsi cheile dvs. API pe Cheile mele API pagină. Puteți utiliza cheia API implicită furnizată de OpenWeatherMap sau puteți genera una dintre ele. OpenWeatherMap oferă suport pentru a genera cât mai multe chei API necesare pentru proiectele dvs.

Acum, sunteți gata să preluați datele meteo live.

# Import de biblioteci
import cereri
import json

# Introduceți aici cheia dvs. API OpenWeatherMap
# NU îl împingeți într-un depozit public
API_Key = "Your_API_Key"

# Furnizați un nume de oraș valid
city_name = input("Introduceți numele orașului: ")

# Construirea căii URL API
url = f"http://api.openweathermap.org/data/2.5/weather? q={nume_oraș}&appid={API_Key}"

# Efectuarea unei cereri de obținere către API
răspuns = requests.get (url)

# Convertirea răspunsului JSON într-un dicționar
res = response.json()

# Anulați comentariul la rândul următor pentru a vedea tot
# de date care sunt preluate din API
# print (rez.)

# Verificarea dacă orașul este găsit
# Dacă valoarea „cod” nu este 404,
# asta înseamnă că orașul este găsit
dacă res["cod"] != "404":
date = res["principal"]

# Stocarea datelor de temperatură live
live_temperature = date["temp"]

# Stocarea datelor de presiune live
live_pressure = date["presiune"]
desc = res["vreme"]

# Stocarea descrierii vremii
weather_description = desc[0]["Descriere"]
imprimare("Temperatura (pe scara Kelvin): " + str (temperatură_live))
imprimare("Presiune: " + str (presiune_live))
imprimare("Descriere: " + str (descrierea_metei))

altfel:
# Dacă orașul nu este găsit,
# acest bloc de cod va fi executat
imprimare("Vă rugăm să introduceți un nume de oraș valid")

Dacă furnizați o cheie API validă și introduceți numele corect al orașului, veți primi datele de la API în format JSON. Apoi, trebuie să convertiți aceste date în format JSON într-un obiect Python folosind json() metoda de a efectua operatii ulterioare. Dacă orașul este găsit, va trebui să rezolvați obiectul dict (res) pentru a extrage informațiile necesare.

Dezvoltați aplicația meteo folosind datele meteo live

Acum că ați învățat cum să obțineți date live folosind API-ul OpenWeatherMap, sunteți gata să dezvoltați o aplicație meteo simplă folosind-o. Crearea unei aplicații meteo vă poate ajuta să aplicați ceea ce știți și să vă perfecționați abilitățile Python.

Murdărirea mâinilor cu proiecte practice te poate face un dezvoltator mai bun. Puteți dezvolta alte proiecte Python, cum ar fi un sistem de conectare, o aplicație de chestionare sau un dispozitiv de scurtare a adreselor URL, pentru a vă consolida abilitățile de dezvoltare Python.