Jednoduchosť a prispôsobivosť Pythonu mu pomohli získať popularitu v priebehu rokov. Pomocou Pythonu môžete jednoducho získať užitočné údaje cez internet. Tieto údaje potom môžete použiť na riadenie praktickej aplikácie.

Zistite, ako nájsť údaje o počasí v reálnom čase pomocou webového zoškrabovania a rozhraní API. Tieto načítané údaje môžete použiť na vývoj jednoduchej aplikácie počasia.

Získajte aktuálne informácie o počasí v meste pomocou zoškrabovania webu

Web scraping je proces extrakcie údajov a obsahu z webovej stránky. Autonómne získavanie údajov z webu otvára množstvo prípadov použitia. Väčšina týchto údajov je však vo formáte HTML, ktorý musíte analyzovať a skontrolovať, aby ste získali relevantné údaje.

Pomocou webového zoškrabovania môžete extrahovať aktuálne údaje o počasí z akéhokoľvek mesta. Knižnica BeautifulSoup v Pythone je najpopulárnejšia knižnica na vytiahnutie údajov zo súborov HTML a XML. Ak chcete začať proces zoškrabovania, musíte si nainštalovať knižnicu BeautifulSoup Python cez pip. Spustite nasledujúci príkaz v termináli a nainštalujte knižnice BeautifulSoup a požiadaviek:

instagram viewer

pip Inštalácia krásnepolievka4 žiadosti

Po nainštalovaní požadovaných knižníc začnite ich importovaním do kódu:

Kód použitý v tomto projekte je dostupný v a úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

od bs4 importovať Krásna Polievka
importovať žiadosti

Ďalej musíte zadať podrobnosti hlavičky, aby klient a server mohli odovzdať dodatočné informácie s požiadavkou alebo odpoveďou HTTP:

hlavičky = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, ako Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Vytvorte funkciu, nájsť_počasie(), na zadanie dopytu do Google pomocou request.get() metóda. Pomocou webovej adresy vyhľadávania získate počasie v meste a potom zoškrabaním zmysluplných údajov získate polohu, teplotu, čas a popis počasia. Potom použite BeautifulSoup na analýzu prijatej odpovede HTML:

defnájsť_počasie(názov mesta):
city_name = city_name.replace("", "+")

skúste:
res = requesty.get(
f'https://www.google.com/search? q={city_name}&oq={city_name}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&tj = UTF-8', hlavičky=hlavičky)

vytlačiť ("Načítava...")

polievka = BeautifulSoup (res.text, 'html.parser')
umiestnenie = soup.select('#wob_loc')[0].getText().strip()
čas = polievka.vyber('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
teplota = polievka.vyberte('#wob_tm')[0].getText().strip()

vytlačiť ("miesto: " + umiestnenie)
vytlačiť ("teplota: " + teplota + "°C")
vytlačiť ("čas: " + čas)
vytlačiť ("Popis počasia: " + info)
okrem:
vytlačiť ("Zadajte platný názov mesta")

Ak chcete extrahovať ID prvkov, vykonajte vyhľadávanie Google a skontrolujte stránku vo svojom prehliadači pomocou webových nástrojov. Musíte skontrolovať prvok, aby ste našli ID prvku HTML, pre ktorý chcete extrahovať údaje:

Ďalej odovzdajte tieto ID spoločnosti vybrať () metóda. Táto metóda spustí selektor CSS oproti analyzovanému dokumentu a vráti všetky zodpovedajúce prvky. The getText() metóda extrahuje text z prvku HTML. The pás() metóda odstráni z textu všetky úvodné a koncové medzery. Po extrahovaní čistej hodnoty ju môžete uložiť do premennej.

Nakoniec požiadajte používateľa, aby zadal mesto a odovzdal ho nájsť_počasie funkcia:

meno_mesta = vstup("Zadajte názov mesta: ")
meno_mesta = meno_mesta + " počasie"
nájsť_počasie (mesto_name)

Teraz, keď spustíte kód, zobrazí sa výzva na zadanie názvu mesta. Ak chcete získať výsledky, musíte zadať platný názov mesta, inak kód vyvolá výnimku.

Získajte aktuálne informácie o počasí v meste pomocou OpenWeatherMap API

OpenWeatherMap je online služba, ktorú vlastní OpenWeather Ltd. Jeho API poskytuje globálne údaje o počasí vrátane aktuálneho počasia, predpovedí a minulých údajov pre akékoľvek miesto. Bezplatná úroveň rozhrania OpenWeatherMap API poskytuje aktuálne údaje o počasí s limitom 60 hovorov/minútu. Ak chcete získať vlastný kľúč API, musíte si vytvoriť účet na OpenWeatherMap.

Neumiestňujte kód s kľúčom API do verejného úložiska, pretože ktokoľvek s prístupom k vašim zdrojovým súborom môže váš kľúč vidieť a ukradnúť. V produkčnej aplikácii zvážte presun údajov kľúča API do súboru .env pre zvýšenú bezpečnosť.

Ísť do OpenWeatherMap a vytvorte si bezplatný účet. Po vytvorení účtu nájdete svoje kľúče API na stránke Moje kľúče API stránku. Môžete použiť predvolený kľúč API, ktorý poskytuje OpenWeatherMap, alebo si vygenerovať svoj vlastný. OpenWeatherMap poskytuje podporu na generovanie toľko API kľúčov, koľko je potrebné pre vaše projekty.

Teraz ste pripravení načítať aktuálne údaje o počasí.

# Importovanie knižníc
importovať žiadosti
importovať json

# Tu zadajte svoj kľúč OpenWeatherMap API
# NEPOSÚVAJTE ho do verejného úložiska
API_Key = "Your_API_Key"

# Zadajte platný názov mesta
meno_mesta = vstup("Zadajte názov mesta: ")

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

# Vytvorenie žiadosti o získanie rozhrania API
odpoveď = requests.get (url)

# Konverzia odpovede JSON do slovníka
res = response.json()

# Ak chcete zobraziť všetko, odkomentujte nasledujúci riadok
# údaje, ktoré sa získavajú z rozhrania API
# print (res)

# Kontrola, či je mesto nájdené
# Ak hodnota „cod“ nie je 404,
# to znamená, že mesto je nájdené
ak res["treska"] != "404":
údaje = res["Hlavná"]

# Ukladanie aktuálnych údajov o teplote
live_temperature = údaje["tepl"]

# Ukladanie aktuálnych údajov o tlaku
live_pressure = údaje["tlak"]
desc = res["počasie"]

# Uloženie popisu počasia
weather_description = popis[0]["popis"]
vytlačiť ("Teplota (v Kelvinovej stupnici): " + str (živá_teplota))
vytlačiť ("tlak: " + str (live_pressure))
vytlačiť ("Popis: " + str (popis_pocasia))

inak:
# Ak sa mesto nenájde,
# tento blok kódu bude vykonaný
vytlačiť ("Zadajte platný názov mesta")

Ak poskytnete platný kľúč API a zadáte správny názov mesta, údaje z rozhrania API dostanete vo formáte JSON. Ďalej musíte previesť tieto údaje formátu JSON na objekt Python pomocou json() spôsob vykonania ďalších operácií. Ak sa nájde mesto, budete musieť vyriešiť diktát (res), aby ste získali požadované informácie.

Vyvíjajte aplikáciu počasia pomocou aktuálnych údajov o počasí

Teraz, keď ste sa naučili, ako získavať živé údaje pomocou API OpenWeatherMap, ste pripravení vytvoriť jednoduchú aplikáciu počasia, ktorá ho používa. Vytvorenie aplikácie počasia vám môže pomôcť uplatniť to, čo viete, a zdokonaliť svoje zručnosti v jazyku Python.

Zašpinenie rúk pri praktických projektoch z vás môže urobiť lepšieho vývojára. Môžete vyvinúť niektoré ďalšie projekty Pythonu, ako je prihlasovací systém, kvízová aplikácia alebo skracovač URL, aby ste upevnili svoje zručnosti v oblasti vývoja Pythonu.