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:
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.