A Python egyszerűsége és alkalmazkodóképessége hozzájárult a népszerűséghez az évek során. A Python segítségével könnyen lekérhet hasznos adatokat az interneten keresztül. Ezután felhasználhatja ezeket az adatokat egy gyakorlati alkalmazás végrehajtására.
Tanulja meg, hogyan találhat valós idejű időjárási adatokat webes kaparás és API-k segítségével. Ezeket a lekért adatokat egy egyszerű időjárási alkalmazás fejlesztésére használhatja.
Szerezze meg a város aktuális időjárási adatait a webkaparás segítségével
A webkaparás az adatok és tartalom kinyerésének folyamata egy webhelyről. Az adatok autonóm lekérése az internetről számos felhasználási esetet nyit meg. De ezeknek az adatoknak a többsége HTML formátumú, amelyet elemezni és ellenőriznie kell a releváns adatok kinyeréséhez.
Bármely város élő időjárási adatait kinyerheti webes lekaparással. A Python BeautifulSoup könyvtára a fő könyvtár adatok kihúzásához HTML és XML fájlokból. A kaparási folyamat megkezdéséhez telepítenie kell a BeautifulSoup Python könyvtárat a pip segítségével. Futtassa a következő parancsot a terminálban a BeautifulSoup és kérések könyvtárak telepítéséhez:
csipog telepítés gyönyörű leves4 kérések
Miután telepítette a szükséges könyvtárakat, először importálja azokat a kódjába:
A projektben használt kód elérhető a GitHub adattár és az MIT licence alapján ingyenesen használható.
tól től bs4 import Gyönyörű leves
import kéréseket
Ezután meg kell adnia a fejléc részleteit, hogy a kliens és a kiszolgáló további információkat tudjon átadni HTTP-kéréssel vagy válasszal:
fejlécek = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, mint a Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
Hozzon létre egy függvényt, find_weather(), hogy lekérdezzen a Google-nak a segítségével requests.get() módszer. Egy keresési URL-t használ a város időjárásának meghatározásához, majd a hely, a hőmérséklet, az idő és az időjárás leírásához lekéri az értelmes adatokat. Ezután használja a BeautifulSoup-ot a kapott HTML-válasz elemzéséhez:
deffind_weather(Város Név):
város_neve = város_neve.csere("", "+")próbáld ki:
res = requests.get(
f'https://www.google.com/search? q={városnév}&oq={városnév}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&ie=UTF-8', headers=headers)nyomtatás("Betöltés...")
leves = BeautifulSoup (res.text, 'html.parser')
hely = soup.select('#wob_loc')[0].getText().strip()
time = soup.select('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
hőmérséklet = soup.select('#wob_tm')[0].getText().strip()
nyomtatás("Elhelyezkedés: " + hely)
nyomtatás("Hőfok: " + hőmérséklet + "°C")
nyomtatás("Idő: " + idő)
nyomtatás("Időjárás leírása: " + info)
kivéve:
nyomtatás("Adjon meg egy érvényes városnevet")
Az elemazonosítók kinyeréséhez végezzen Google keresést, és webes eszközök segítségével ellenőrizze az oldalt a böngészőjében. Meg kell vizsgálnia az elemet, hogy megtalálja annak a HTML-elemnek az azonosítóit, amelyhez adatokat szeretne kinyerni:
Ezután adja át ezeket az azonosítókat a select() módszer. Ez a módszer egy CSS-választót futtat az elemzett dokumentumon, és visszaadja az összes egyező elemet. A getText() metódus kivonja a szöveget a HTML elemből. A szalag() metódus eltávolítja a bevezető és a záró szóköz karaktereket a szövegből. Miután kivont egy tiszta értéket, eltárolhatja azt egy változóban.
Végül kérje meg a felhasználót, hogy adjon meg egy várost, és adja át a find_weather funkció:
város_neve = input("Írja be a város nevét: ")
városnév = városnév + " időjárás"
Időjárás keresése (városnév)
Most, amikor lefuttatja a kódot, a rendszer kérni fogja a város nevének megadását. Az eredmények megtekintéséhez érvényes városnevet kell megadnia, különben a kód kivételt jelent.
Szerezze meg a város aktuális időjárási adatait az OpenWeatherMap API segítségével
Az OpenWeatherMap egy online szolgáltatás, amely az OpenWeather Ltd. tulajdonában van. Az API globális időjárási adatokat biztosít, beleértve az aktuális időjárást, előrejelzéseket és múltbeli adatokat bármely helyről. Az OpenWeatherMap API ingyenes szintje 60 hívás/perc korláttal biztosítja az aktuális időjárási adatokat. A saját API-kulcs megszerzéséhez létre kell hoznia egy fiókot az OpenWeatherMap-on.
Ne nyomja be az API-kulccsal ellátott kódot egy nyilvános tárolóba, mivel bárki, aki hozzáfér a forrásfájljaihoz, láthatja és ellophatja a kulcsát. Egy éles alkalmazásban fontolja meg az API kulcs adatainak áthelyezése egy .env fájlba a fokozott biztonság érdekében.
Menj OpenWeatherMap webhelyet, és hozzon létre egy ingyenes fiókot. A fiók létrehozása után megtalálhatja az API-kulcsokat a Saját API kulcsok oldalon. Használhatja az OpenWeatherMap által biztosított alapértelmezett API-kulcsot, vagy létrehozhat egyet saját. Az OpenWeatherMap támogatást nyújt ahhoz, hogy annyi API-kulcsot generáljon, amennyi szükséges a projektjeihez.
Most készen áll az élő időjárási adatok lekérésére.
# Könyvtárak importálása
import kéréseket
import json# Ide írja be az OpenWeatherMap API kulcsát
# NE tolja nyilvános tárolóba
API_Key = "Your_API_Key"# Adjon meg egy érvényes városnevet
város_neve = input("Írja be a város nevét: ")# Az API URL elérési út létrehozása
url = f"http://api.openweathermap.org/data/2.5/weather? q={városnév}&appid={API_Key}"# Get kérés benyújtása az API-hoz
válasz = requests.get (url)# JSON-válasz konvertálása szótárba
res = válasz.json()# Az összes megtekintéséhez törölje a következő sor megjegyzését
# adat az API-ból
# nyomtatás (felbontás)# Ellenőrizze, hogy a város megtalálható-e
# Ha a "cod" értéke nem 404,
# ez azt jelenti, hogy a város megtalálható
if res["tőkehal"] != "404":
adat = res["fő-"]# Az élő hőmérsékleti adatok tárolása
élő_hőmérséklet = adat["hőm"]# Az élő nyomásadatok tárolása
élő_nyomás = adat["nyomás"]
desc = res["időjárás"]# Az időjárás leírás tárolása
weather_description = leírás[0]["leírás"]
nyomtatás("Hőmérséklet (Kelvin-skálában): " + str (élő_hőmérséklet))
nyomtatás("Nyomás: " + str (élő_nyomás))
nyomtatás("Leírás: " + str (időjárás leírása))
más:
# Ha a várost nem találják,
# ez a kódblokk végrehajtásra kerül
nyomtatás("Adjon meg egy érvényes városnevet")
Ha megad egy érvényes API-kulcsot, és megadja a helyes városnevet, akkor az API-tól származó adatokat JSON-formátumban kapja meg. Ezután a JSON formátumú adatokat Python objektummá kell konvertálnia a json() módszer a további műveletek elvégzésére. Ha megtalálják a várost, meg kell oldanod a diktatúrát (res) a szükséges információk kinyeréséhez.
Időjárás alkalmazás fejlesztése az élő időjárási adatok segítségével
Most, hogy megtanulta, hogyan kérhet le élő adatokat az OpenWeatherMap API-val, készen áll egy egyszerű időjárás-alkalmazás fejlesztésére. Az időjárás-alkalmazás készítése segíthet abban, hogy alkalmazza tudását, és csiszolja Python-készségeit.
Ha bemocskolja a kezét a gyakorlati projektekre, jobb fejlesztő lehet. Kifejleszthet néhány más Python-projektet, például bejelentkezési rendszert, kvízalkalmazást vagy URL-rövidítőt, hogy megszilárdítsa Python-fejlesztési készségeit.