Pythonova jednostavnost i prilagodljivost pomogle su mu da stekne popularnost tijekom godina. Pomoću Pythona možete jednostavno dohvatiti korisne podatke putem interneta. Zatim možete koristiti te podatke za pokretanje praktične primjene.

Naučite kako pronaći vremenske podatke u stvarnom vremenu pomoću web skrapinga i API-ja. Možete koristiti ove dohvaćene podatke za razvoj jednostavne vremenske aplikacije.

Dobijte trenutne pojedinosti o vremenu u gradu koristeći Web Scraping

Web scraping je postupak izdvajanja podataka i sadržaja s web stranice. Autonomno dohvaćanje podataka s weba otvara mnogo slučajeva upotrebe. Ali većina tih podataka je u HTML formatu, koji morate raščlaniti i pregledati da biste izdvojili relevantne podatke.

Možete izvući vremenske podatke uživo za bilo koji grad koristeći web scraping. Pythonova knjižnica BeautifulSoup je knjižnica koja se najčešće koristi za izvlačenje podataka iz HTML i XML datoteka. Morate instalirati biblioteku BeautifulSoup Python putem pipa da biste započeli proces struganja. Pokrenite sljedeću naredbu u terminalu da biste instalirali biblioteke BeautifulSoup i zahtjeva:

instagram viewer

pip instalirati beautifulsoup4 zahtjeva

Nakon što ste instalirali potrebne biblioteke, počnite ih uvoziti u svoj kod:

Kod korišten u ovom projektu dostupan je u a GitHub spremište i besplatan je za korištenje pod MIT licencom.

iz bs4 uvoz Lijepa juha
uvoz zahtjevi

Zatim trebate navesti detalje zaglavlja kako bi klijent i poslužitelj mogli proslijediti dodatne informacije s HTTP zahtjevom ili odgovorom:

zaglavlja = {
'Korisnički agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, poput Gecka) Chrome/58.0.3029.110 Safari/537.3'
}

Stvorite funkciju, pronađi_vrijeme(), za postavljanje upita Googleu pomoću requests.get() metoda. Upotrijebit ćete URL za pretraživanje da biste dobili vremensku prognozu grada, a zatim izgrebati značajne podatke da biste dobili lokaciju, temperaturu, vrijeme i opis vremena. Zatim upotrijebite BeautifulSoup za analizu primljenog HTML odgovora:

defpronaći_vrijeme(Ime grada):
naziv_grada = naziv_grada.zamijeni("", "+")

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

ispis("Učitavam...")

juha = Lijepa juha (rez.tekst, 'html.parser')
lokacija = soup.select('#wob_loc')[0].getText().strip()
vrijeme = juha.odaberi('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
temperatura = juha.odaberi('#wob_tm')[0].getText().strip()

ispis("Mjesto: " + lokacija)
ispis("Temperatura: " + temperatura + "°C")
ispis("Vrijeme: " + vrijeme)
ispis("Opis vremena: " + info)
osim:
ispis("Unesite važeći naziv grada")

Da biste izdvojili ID-ove elemenata, pretražite Google i pregledajte stranicu u svom pregledniku pomoću web-alata. Morate pregledati element kako biste pronašli ID-ove HTML elementa za koje želite izdvojiti podatke:

Zatim proslijedite ove ID-ove na Izaberi() metoda. Ova metoda pokreće CSS selektor prema analiziranom dokumentu i vraća sve podudarne elemente. The getText() metoda izvlači tekst iz HTML elementa. The traka() metoda uklanja sve znakove razmaka na početku i na kraju iz teksta. Nakon što izdvojite čistu vrijednost, možete je pohraniti u varijablu.

Na kraju, zamolite korisnika da unese grad i proslijedi ga u pronaći_vrijeme funkcija:

ime_grada = unos("Unesite naziv grada: ")
ime_grada = ime_grada + " vrijeme"
pronađi_vrijeme (ime_grada)

Sada, kada pokrenete kod, od vas će se tražiti da unesete naziv grada. Morate unijeti važeći naziv grada da biste dobili rezultate ili će kod pokrenuti iznimku.

Dobijte trenutne pojedinosti o vremenu u gradu koristeći OpenWeatherMap API

OpenWeatherMap je online servis u vlasništvu tvrtke OpenWeather Ltd. Njegov API pruža globalne vremenske podatke uključujući trenutno vrijeme, prognoze i prošle podatke za bilo koju lokaciju. Besplatna razina OpenWeatherMap API-ja pruža trenutne vremenske podatke s ograničenjem od 60 poziva po minuti. Morate kreirati račun na OpenWeatherMap da biste dobili svoj API ključ.

Nemojte gurati kod s API ključem u javno spremište jer bilo tko s pristupom vašim izvornim datotekama može vidjeti i ukrasti vaš ključ. Razmislite o proizvodnoj aplikaciji premještanje podataka API ključa u .env datoteku za povećanu sigurnost.

Ići OpenWeatherMap's web mjesto i otvorite besplatni račun. Nakon kreiranja računa, svoje API ključeve možete pronaći na Moji API ključevi stranica. Možete upotrijebiti zadani API ključ koji nudi OpenWeatherMap ili generirati vlastiti. OpenWeatherMap pruža podršku za generiranje onoliko API ključeva koliko je potrebno za vaše projekte.

Sada ste spremni za preuzimanje vremenskih podataka uživo.

# Uvoz knjižnica
uvoz zahtjevi
uvoz json

# Ovdje unesite svoj OpenWeatherMap API ključ
# NE gurajte ga u javno spremište
API_Key = "Vaš_API_ključ"

# Navedite važeći naziv grada
ime_grada = unos("Unesite naziv grada: ")

# Izrada API URL staze
url = f"http://api.openweathermap.org/data/2.5/weather? q={ime_grada}&appid={API_Key}"

# Izrada zahtjeva za dobivanje API-ju
odgovor = requests.get (url)

# Pretvaranje JSON odgovora u rječnik
res = response.json()

# Odkomentirajte sljedeći redak da vidite sve
# podataka koji se dohvaćaju iz API-ja
# ispis (res)

# Provjera je li grad pronađen
# Ako vrijednost "cod" nije 404,
# to znači da je grad pronađen
ako res["bakalar"] != "404":
podaci = rez["glavni"]

# Pohranjivanje podataka o temperaturi uživo
živa_temperatura = podaci["temp"]

# Pohranjivanje podataka o tlaku uživo
živi_tlak = podaci["pritisak"]
desc = res["vrijeme"]

# Pohranjivanje opisa vremena
opis_vremena = desc[0]["opis"]
ispis("Temperatura (u Kelvinovim skalama): " + str (živa_temperatura))
ispis("Pritisak: " + str (živi_tlak))
ispis("Opis: " + str (opis_vremena))

drugo:
# Ako grad nije pronađen,
# ovaj blok koda će se izvršiti
ispis("Unesite važeći naziv grada")

Ako date važeći API ključ i unesete točan naziv grada, primit ćete podatke iz API-ja u JSON formatu. Zatim trebate pretvoriti ove podatke JSON formata u Python objekt pomoću json() način za izvođenje daljnjih operacija. Ako je grad pronađen, morat ćete riješiti objekt dict (res) za izdvajanje potrebnih informacija.

Razvijte aplikaciju za vremensku prognozu pomoću podataka o vremenskoj prognozi uživo

Sada kada ste naučili kako dohvaćati podatke uživo pomoću API-ja OpenWeatherMap, spremni ste za razvoj jednostavne vremenske aplikacije pomoću njega. Izrada vremenske aplikacije može vam pomoći da primijenite ono što znate i usavršite svoje vještine Pythona.

Prljanje ruku na praktičnim projektima može vas učiniti boljim programerom. Možete razviti neke druge Python projekte kao što su sustav za prijavu, aplikacija za kviz ili skraćivač URL-ova kako biste učvrstili svoje vještine razvoja Pythona.