Python paprastumas ir pritaikomumas padėjo jam išpopuliarėti daugelį metų. Naudodami Python galite lengvai gauti naudingus duomenis internetu. Tada galite naudoti šiuos duomenis praktiniam naudojimui.

Sužinokite, kaip rasti orų duomenis realiuoju laiku naudojant žiniatinklio duomenų rinkimą ir API. Galite naudoti šiuos gautus duomenis kurdami paprastą orų programą.

Gaukite informaciją apie miesto dabartinį orą naudodami žiniatinklį

Žiniatinklio rinkimas yra duomenų ir turinio ištraukimas iš svetainės. Savarankiškas duomenų gavimas iš žiniatinklio atveria daugybę naudojimo atvejų. Tačiau dauguma šių duomenų yra HTML formatu, kurį turite išanalizuoti ir patikrinti, kad išgautumėte atitinkamus duomenis.

Galite išgauti bet kurio miesto tiesioginius orų duomenis naudodami žiniatinklio grandinę. Python's BeautifulSoup biblioteka yra pagrindinė biblioteka norėdami išimti duomenis iš HTML ir XML failų. Norėdami pradėti grandymo procesą, per pip turite įdiegti BeautifulSoup Python biblioteką. Paleiskite šią komandą terminale, kad įdiegtumėte BeautifulSoup ir užklausų bibliotekas:

instagram viewer
pip diegti graži sriuba4 prašymai

Įdiegę reikiamas bibliotekas, pradėkite importuodami jas į savo kodą:

Šiame projekte naudojamas kodas yra prieinamas a GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.

 bs4 importuoti Graži sriuba
importuoti prašymus

Tada turite pateikti išsamią antraštės informaciją, kad klientas ir serveris galėtų perduoti papildomą informaciją su HTTP užklausa arba atsakymu:

antraštės = {
'Vartotojo atstovas': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kaip Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Sukurti funkciją, rasti_oras(), norėdami pateikti užklausą „Google“ naudodami requests.get() metodas. Naudosite paieškos URL, kad gautumėte miesto orus, tada nubraukite reikšmingus duomenis, kad gautumėte vietą, temperatūrą, laiką ir orų aprašymą. Tada naudokite „BeautifulSoup“, kad išanalizuoti gautą HTML atsakymą:

defrasti_orą(miesto pavadinimas):
miesto_vardas = miesto_vardas.pakeisti("", "+")

bandyti:
res = requests.get(
f'https://www.google.com/search? q={miesto_vardas}&oq={miesto_vardas}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&ie=UTF-8', antraštės=antraštės)

spausdinti ("Įkeliama...")

sriuba = BeautifulSoup (res.text, 'html.parser')
vieta = soup.select('#wob_loc')[0].getText().strip()
laikas = sriuba.select('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
temperatūra = sriuba.select('#wob_tm')[0].getText().strip()

spausdinti ("Vieta: " + vieta)
spausdinti ("Temperatūra: " + temperatūra + "°C")
spausdinti ("Laikas: " + laikas)
spausdinti ("Orų aprašymas: " + info)
išskyrus:
spausdinti ("Įveskite galiojantį miesto pavadinimą")

Norėdami išgauti elementų ID, atlikite „Google“ paiešką ir patikrinkite puslapį savo naršyklėje naudodami žiniatinklio įrankius. Turite patikrinti elementą, kad surastumėte HTML elemento, kurio duomenis norite išgauti, ID:

Tada perduokite šiuos ID pasirinkti () metodas. Šis metodas paleidžia CSS parinkiklį prieš išnagrinėtą dokumentą ir grąžina visus atitinkančius elementus. The getText () metodas ištraukia tekstą iš HTML elemento. The juostelė () metodas pašalina visus pirmuosius ir galinius tarpo simbolius iš teksto. Išskleidę švarią vertę, galite ją išsaugoti kintamajame.

Galiausiai paprašykite vartotojo įvesti miestą ir perduoti jį rasti_orą funkcija:

miesto_vardas = input("Įveskite miesto pavadinimą: ")
miesto_pavadinimas = miesto_vardas + " oras"
rasti_orą (miesto_pavadinimas)

Dabar, kai paleisite kodą, jis paragins įvesti miesto pavadinimą. Turite įvesti galiojantį miesto pavadinimą, kad gautumėte rezultatus, kitaip kodas sukels išimtį.

Gaukite miesto dabartinių orų informaciją naudodami OpenWeatherMap API

OpenWeatherMap yra internetinė paslauga, priklausanti OpenWeather Ltd. Jo API teikia pasaulinius orų duomenis, įskaitant dabartinius orus, prognozes ir ankstesnius bet kurios vietos duomenis. Nemokama OpenWeatherMap API pakopa pateikia dabartinius orų duomenis su 60 skambučių per minutę limitu. Turite sukurti paskyrą OpenWeatherMap, kad gautumėte savo API raktą.

Nestumkite kodo su API raktu į viešą saugyklą, nes bet kas, turintis prieigą prie šaltinio failų, gali pamatyti ir pavogti jūsų raktą. Gamybos programoje apsvarstykite API rakto duomenų perkėlimas į .env failą didesniam saugumui.

Eiti į OpenWeatherMap svetainę ir susikurkite nemokamą paskyrą. Sukūrę paskyrą, API raktus galite rasti Mano API raktai puslapį. Galite naudoti numatytąjį API raktą, pateiktą OpenWeatherMap, arba sukurti vieną iš savo. „OpenWeatherMap“ teikia palaikymą, kad būtų galima sugeneruoti tiek API raktų, kiek reikia jūsų projektams.

Dabar esate pasirengę gauti tiesioginius orų duomenis.

# Importuojamos bibliotekos
importuoti prašymus
importuoti json

# Įveskite savo OpenWeatherMap API raktą čia
# NENAUDOKITE jo į viešą saugyklą
API_Key = "Jūsų_API_Key"

# Pateikite galiojantį miesto pavadinimą
miesto_vardas = input("Įveskite miesto pavadinimą: ")

# API URL kelio kūrimas
url = f"http://api.openweathermap.org/data/2.5/weather? q={miesto_vardas}&appid={API_Key}"

# Pateikite užklausą gauti API
atsakymas = requests.get (url)

# JSON atsakymas konvertuojamas į žodyną
res = atsakymas.json()

# Atšaukite kitos eilutės komentarą, kad pamatytumėte viską
# duomenys, gauti iš API
# spausdinimas (res.)

# Tikrinama, ar miestas rastas
# Jei "cod" reikšmė nėra 404,
# tai reiškia, kad miestas rastas
jei res["menkė"] != "404":
duomenys = res["pagrindinis"]

# Tiesioginės temperatūros duomenų saugojimas
gyvoji_temperatūra = duomenys["temp"]

# Tiesioginio slėgio duomenų saugojimas
gyvas_slėgis = duomenys["spaudimas"]
desc = res["oras"]

# Orų aprašymo saugojimas
weather_description = aprašymas[0]["apibūdinimas"]
spausdinti ("Temperatūra (Kelvino skalėje): " + str (gyva_temperatūra))
spausdinti ("Slėgis: " + str (tiesinis_slėgis))
spausdinti ("Apibūdinimas: " + str (orų_aprašymas))

Kitas:
# Jei miesto nerasta,
# šis kodo blokas bus vykdomas
spausdinti ("Įveskite galiojantį miesto pavadinimą")

Jei pateiksite galiojantį API raktą ir įvesite teisingą miesto pavadinimą, duomenis iš API gausite JSON formatu. Tada turite konvertuoti šiuos JSON formato duomenis į Python objektą naudodami json () būdas atlikti tolesnes operacijas. Jei miestas bus rastas, turėsite išspręsti dikto objektą (res), kad gautumėte reikiamą informaciją.

Sukurkite orų programą naudodami tiesioginius orų duomenis

Dabar, kai išmokote gauti tiesioginius duomenis naudodami OpenWeatherMap API, esate pasirengę sukurti paprastą orų programą naudodami ją. Orų programos kūrimas gali padėti pritaikyti tai, ką žinote, ir patobulinti savo Python įgūdžius.

Susitepę rankas su praktiniais projektais galite tapti geresniu kūrėju. Galite sukurti kai kuriuos kitus Python projektus, pvz., prisijungimo sistemą, viktorinos programą ar URL sutrumpinimą, kad sustiprintumėte savo Python kūrimo įgūdžius.