Enostavnost in prilagodljivost Pythona sta mu skozi leta pomagali pridobiti popularnost. S Pythonom lahko preprosto pridobite uporabne podatke prek interneta. Te podatke lahko nato uporabite za izvajanje praktične aplikacije.

Naučite se najti vremenske podatke v realnem času z uporabo spletnega strganja in API-jev. Te pridobljene podatke lahko uporabite za razvoj preproste vremenske aplikacije.

Pridobite trenutne vremenske podrobnosti mesta z uporabo spletnega strganja

Spletno strganje je postopek pridobivanja podatkov in vsebine s spletne strani. Avtonomno pridobivanje podatkov iz spleta odpira veliko primerov uporabe. Toda večina teh podatkov je v formatu HTML, ki ga morate razčleniti in pregledati, da izvlečete ustrezne podatke.

S spletnim strganjem lahko izvlečete vremenske podatke v živo za katero koli mesto. Pythonova knjižnica BeautifulSoup je najbolj priljubljena knjižnica za pridobivanje podatkov iz datotek HTML in XML. Za začetek postopka strganja morate prek pipa namestiti knjižnico BeautifulSoup Python. Zaženite naslednji ukaz v terminalu, da namestite knjižnice BeautifulSoup in zahteve:

instagram viewer

pip namestite beautifulsoup4 zahteva

Ko namestite zahtevane knjižnice, jih začnite uvoziti v kodo:

Koda, uporabljena v tem projektu, je na voljo v a Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.

od bs4 uvoz BeautifulSoup
uvoz zahteve

Nato morate navesti podrobnosti o glavi, da lahko odjemalec in strežnik posredujeta dodatne informacije z zahtevo ali odgovorom HTTP:

glave = {
'Uporabniški agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kot Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Ustvarite funkcijo, find_weather(), da izvedete poizvedbo Googlu z uporabo requests.get() metoda. Uporabili boste iskalni URL, da dobite vreme za mesto, nato pa postrgate pomembne podatke, da dobite lokacijo, temperaturo, uro in opis vremena. Nato uporabite BeautifulSoup za razčlenitev prejetega odgovora HTML:

defnajdi_vreme(ime_mesta):
ime_mesta = ime_mesta.zamenjaj("", "+")

poskusi:
res = requests.get(
f'https://www.google.com/search? q={ime_mesta}&oq={ime_mesta}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&ie=UTF-8', glave=glave)

natisni("Nalaganje...")

juha = BeautifulSoup (res.text, 'html.parser')
lokacija = soup.select('#wob_loc')[0].getText().strip()
čas = soup.select('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
temperatura = soup.select('#wob_tm')[0].getText().strip()

natisni("Lokacija: " + lokacija)
natisni("Temperatura: " + temperatura + "°C")
natisni("Čas: " + čas)
natisni("Opis vremena: " + informacije)
razen:
natisni("Vnesite veljavno ime mesta")

Če želite pridobiti ID-je elementov, izvedite iskanje v Googlu in s spletnimi orodji preglejte stran v brskalniku. Element morate pregledati, da poiščete ID-je elementa HTML, za katerega želite izvleči podatke:

Nato posredujte te ID-je v izberite () metoda. Ta metoda zažene izbirnik CSS proti razčlenjenemu dokumentu in vrne vse ujemajoče se elemente. The getText() metoda izvleče besedilo iz elementa HTML. The trak() metoda odstrani vse presledke na začetku in na koncu iz besedila. Ko ekstrahirate čisto vrednost, jo lahko shranite v spremenljivko.

Na koncu prosite uporabnika, da vnese mesto in ga posreduje najdi_vreme funkcija:

ime_mesta = vnos("Vnesite ime mesta: ")
ime_mesta = ime_mesta + " vreme"
find_weather (ime_mesta)

Zdaj, ko zaženete kodo, vas bo pozvala, da vnesete ime mesta. Če želite dobiti rezultate, morate vnesti veljavno ime mesta, sicer bo koda povzročila izjemo.

Pridobite trenutne vremenske podrobnosti mesta z API-jem OpenWeatherMap

OpenWeatherMap je spletna storitev v lasti OpenWeather Ltd. Njegov API zagotavlja globalne vremenske podatke, vključno s trenutnim vremenom, napovedmi in preteklimi podatki za katero koli lokacijo. Brezplačna raven API-ja OpenWeatherMap zagotavlja trenutne vremenske podatke z omejitvijo 60 klicev/minuto. Za pridobitev lastnega ključa API morate ustvariti račun na OpenWeatherMap.

Ne potiskajte kode s ključem API v javno skladišče, saj lahko kdorkoli z dostopom do vaših izvornih datotek vidi in ukrade vaš ključ. Razmislite o produkcijski aplikaciji premik podatkov ključa API v datoteko .env za večjo varnost.

Pojdi do OpenWeatherMap's spletno mesto in ustvarite brezplačen račun. Ko ustvarite račun, lahko svoje ključe API najdete na Moji API ključi strani. Uporabite lahko privzeti ključ API-ja, ki ga ponuja OpenWeatherMap, ali ustvarite svojega. OpenWeatherMap nudi podporo za ustvarjanje toliko ključev API, kot jih potrebujete za svoje projekte.

Zdaj ste pripravljeni na pridobivanje vremenskih podatkov v živo.

# Uvažanje knjižnic
uvoz zahteve
uvoz json

# Tukaj vnesite ključ OpenWeatherMap API
# NE potisnite ga v javno skladišče
API_Key = "Vaš_API_Key"

# Navedite veljavno ime mesta
ime_mesta = vnos("Vnesite ime mesta: ")

# Izdelava poti URL API-ja
url = f"http://api.openweathermap.org/data/2.5/weather? q={ime_mesta}&appid={API_Key}"

# Izdelava zahteve za pridobitev API-ju
odgovor = requests.get (url)

# Pretvarjanje odziva JSON v slovar
res = response.json()

# Odkomentirajte naslednjo vrstico, da vidite vse
# podatki, pridobljeni iz API-ja
# natis (res)

# Preverjanje, ali je mesto najdeno
# Če vrednost "cod" ni 404,
# to pomeni, da je mesto najdeno
če res ["trska"] != "404":
podatki = res["glavni"]

# Shranjevanje podatkov o temperaturi v živo
živa_temperatura = podatki["temp"]

# Shranjevanje podatkov o tlaku v živo
live_pressure = podatki ["pritisk"]
desc = res["vreme"]

# Shranjevanje opisa vremena
opis_vremena = desc[0]["opis"]
natisni("Temperatura (v Kelvinovi lestvici): " + str (živa_temperatura))
natisni("Pritisk: " + str (live_pressure))
natisni("Opis: " + str (opis_vremena))

drugače:
# Če mesta ni mogoče najti,
# ta blok kode bo izveden
natisni("Vnesite veljavno ime mesta")

Če posredujete veljaven ključ API-ja in vnesete pravilno ime mesta, boste prejeli podatke iz API-ja v formatu JSON. Nato morate te podatke formata JSON pretvoriti v objekt Python z uporabo json() način za izvajanje nadaljnjih operacij. Če je mesto najdeno, boste morali razrešiti objekt dict (res), da izvlečete zahtevane informacije.

Razvijte vremensko aplikacijo z uporabo vremenskih podatkov v živo

Zdaj, ko ste se naučili pridobiti podatke v živo z API-jem OpenWeatherMap, ste pripravljeni razviti preprosto vremensko aplikacijo z njegovo uporabo. Izdelava vremenske aplikacije vam lahko pomaga, da uporabite svoje znanje in izpopolnite svoje znanje Pythona.

Če si umažete roke pri praktičnih projektih, lahko postanete boljši razvijalec. Lahko razvijete nekaj drugih projektov Python, kot je sistem za prijavo, aplikacija za kviz ali skrajševalec URL-jev, da utrdite svoje sposobnosti razvijanja Pythona.