Pythonin yksinkertaisuus ja mukautumiskyky ovat auttaneet sitä saavuttamaan suosiota vuosien ajan. Pythonin avulla voit helposti hakea hyödyllisiä tietoja Internetistä. Voit sitten käyttää näitä tietoja käytännön sovellusten ohjaamiseen.

Opi löytämään reaaliaikaisia ​​säätietoja verkkokaappauksen ja sovellusliittymien avulla. Voit käyttää näitä haettuja tietoja yksinkertaisen sääsovelluksen kehittämiseen.

Hanki kaupungin säätiedot verkkokaappauksen avulla

Web-kaappaus on prosessi tietojen ja sisällön poimimiseksi verkkosivustolta. Tietojen automaattinen hakeminen verkosta avaa monia käyttötapauksia. Mutta suurin osa näistä tiedoista on HTML-muodossa, joka sinun on jäsennettävä ja tarkastettava poimiaksesi asiaankuuluvat tiedot.

Voit poimia reaaliaikaisia ​​säätietoja mistä tahansa kaupungista käyttämällä verkkokaappausta. Pythonin BeautifulSoup-kirjasto on kirjasto tietojen poistamiseen HTML- ja XML-tiedostoista. Sinun on asennettava BeautifulSoup Python -kirjasto pipin kautta aloittaaksesi kaavinta. Suorita seuraava komento päätteessä asentaaksesi BeautifulSoup- ja pyyntökirjastot:

instagram viewer
pip Asentaa kaunis keitto4 pyyntöä

Kun olet asentanut tarvittavat kirjastot, aloita tuomalla ne koodissasi:

Tässä projektissa käytetty koodi on saatavilla a GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.

alkaen bs4 tuonti Kaunis keitto
tuonti pyynnöt

Seuraavaksi sinun on annettava otsikon tiedot, jotta asiakas ja palvelin voivat välittää lisätietoja HTTP-pyynnön tai -vastauksen kanssa:

otsikot = {
'Käyttäjä agentti': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Luo funktio, find_weather(), tehdäksesi kyselyn Googlelle käyttämällä requests.get() menetelmä. Käytät haku-URL-osoitetta saadaksesi kaupungin sään ja raaputat sitten merkityksellisiä tietoja saadaksesi sijainnin, lämpötilan, ajan ja sääkuvauksen. Käytä sitten BeautifulSoupia jäsentämään vastaanotettu HTML-vastaus:

deffind_weather(kaupungin nimi):
kaupungin_nimi = kaupungin_nimi.korvaa("", "+")

yrittää:
res = requests.get(
f'https://www.google.com/search? q={city_name}&oq={city_name}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&eli=UTF-8', headers=headers)

Tulosta("Ladataan...")

keitto = BeautifulSoup (res.text, 'html.parser')
location = soup.select('#wob_loc')[0].getText().strip()
aika = soup.select('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
lämpötila = soup.select('#wob_tm')[0].getText().strip()

Tulosta("Sijainti: " + sijainti)
Tulosta("Lämpötila: " + lämpötila + "°C")
Tulosta("Aika: " + aika)
Tulosta("Sääkuvaus: " + info)
paitsi:
Tulosta("Anna kelvollinen kaupungin nimi")

Poimi elementtitunnukset suorittamalla Google-haun ja tarkistamalla sivun selaimessasi verkkotyökalujen avulla. Sinun on tarkastettava elementti löytääksesi sen HTML-elementin tunnukset, josta haluat poimia tietoja:

Välitä seuraavaksi nämä tunnukset valitse() menetelmä. Tämä menetelmä suorittaa CSS-valitsimen jäsennettyä asiakirjaa vastaan ​​ja palauttaa kaikki vastaavat elementit. The getText() menetelmä poimii tekstin HTML-elementistä. The strip() menetelmä poistaa tekstistä kaikki alussa ja lopussa olevat välilyönnit. Kun olet purkanut puhtaan arvon, voit tallentaa sen muuttujaan.

Pyydä lopuksi käyttäjää syöttämään kaupunki ja välittämään se find_weather toiminto:

kaupungin_nimi = input("Anna kaupungin nimi: ")
kaupungin_nimi = kaupungin_nimi + " sää"
löydä_sää (kaupungin_nimi)

Nyt, kun suoritat koodin, se pyytää sinua antamaan kaupungin nimen. Sinun on syötettävä kelvollinen kaupungin nimi saadaksesi tulokset, tai koodi aiheuttaa poikkeuksen.

Hanki kaupungin nykyiset säätiedot OpenWeatherMap API: n avulla

OpenWeatherMap on verkkopalvelu, jonka omistaa OpenWeather Ltd. Sen API tarjoaa maailmanlaajuisia säätietoja, mukaan lukien nykyiset säätiedot, ennusteet ja aiemmat tiedot mistä tahansa sijainnista. OpenWeatherMap API: n ilmainen taso tarjoaa nykyiset säätiedot rajoituksella 60 puhelua minuutissa. Sinun on luotava tili OpenWeatherMapiin saadaksesi oman API-avaimen.

Älä työnnä koodia API-avaimella julkiseen arkistoon, koska kuka tahansa, jolla on pääsy lähdetiedostoihisi, voi nähdä ja varastaa avaimesi. Harkitse tuotantosovelluksessa API-avaintietojen siirtäminen .env-tiedostoon turvallisuuden parantamiseksi.

Mene OpenWeatherMap's verkkosivuilla ja luo ilmainen tili. Kun olet luonut tilin, löydät API-avaimesi Omat API-avaimet sivu. Voit käyttää OpenWeatherMapin tarjoamaa oletussovellusliittymäavainta tai luoda oman. OpenWeatherMap tarjoaa tuen luoda niin monta API-avainta kuin tarvitaan projekteihisi.

Nyt olet valmis hakemaan reaaliaikaiset säätiedot.

# Kirjastojen tuonti
tuonti pyynnöt
tuonti json

# Kirjoita OpenWeatherMap API -avain tähän
# ÄLÄ työnnä sitä julkiseen arkistoon
API_Key = "Your_API_Key"

# Anna kelvollinen kaupungin nimi
kaupungin_nimi = input("Anna kaupungin nimi: ")

# API URL-polun luominen
url = f"http://api.openweathermap.org/data/2.5/weather? q={city_name}&appid={API_Key}"

# Hakupyynnön tekeminen API: lle
vastaus = requests.get (url)

# Muunnetaan JSON-vastausta sanakirjaksi
res = vastaus.json()

# Poista seuraavan rivin kommentit nähdäksesi kaikki
# dataa, jotka haetaan API: sta
# tulostus (res)

# Tarkistaa, löytyykö kaupunki
# Jos "turskan" arvo ei ole 404,
# eli kaupunki on löydetty
jos res["turska"] != "404":
data = res["pää"]

# Elävien lämpötilatietojen tallentaminen
elävä_lämpötila = data["temp"]

# Livepainetietojen tallentaminen
live_paine = data["paine"]
desc = res["sää"]

# Sääkuvauksen tallentaminen
sää_kuvaus = desc[0]["kuvaus"]
Tulosta("Lämpötila (Kelvinin asteikolla): " + str (elävä_lämpötila))
Tulosta("Paine: " + str (live_paine))
Tulosta("Kuvaus: " + str (sään_kuvaus))

muu:
# Jos kaupunkia ei löydy,
# tämä koodilohko suoritetaan
Tulosta("Anna kelvollinen kaupungin nimi")

Jos annat kelvollisen API-avaimen ja annat oikean kaupungin nimen, saat tiedot API: lta JSON-muodossa. Seuraavaksi sinun on muutettava nämä JSON-muotoiset tiedot Python-objektiksi käyttämällä json() tapa suorittaa muita toimintoja. Jos kaupunki löytyy, sinun on ratkaistava saneluobjekti (res) poimimaan vaaditut tiedot.

Kehitä sääsovellusta reaaliaikaisten säätietojen avulla

Nyt kun olet oppinut hakemaan live-tietoja OpenWeatherMap API: n avulla, olet valmis kehittämään yksinkertaisen sääsovelluksen sen avulla. Sääsovelluksen rakentaminen voi auttaa sinua soveltamaan osaamistasi ja hiomaan Python-taitojasi.

Kätesi likaantuminen käytännön projekteihin voi tehdä sinusta paremman kehittäjän. Voit kehittää muita Python-projekteja, kuten kirjautumisjärjestelmää, tietokilpailusovellusta tai URL-lyhennystä vahvistaaksesi Python-kehitystaitojasi.