Jednoduchost a přizpůsobivost Pythonu mu pomohla získat popularitu v průběhu let. Pomocí Pythonu můžete snadno získat užitečná data přes internet. Tato data pak můžete použít k řízení praktické aplikace.

Naučte se, jak najít data o počasí v reálném čase pomocí webového scrapingu a rozhraní API. Tato načtená data můžete použít k vývoji jednoduché aplikace počasí.

Získejte aktuální informace o počasí ve městě pomocí Web Scraping

Web scraping je proces extrahování dat a obsahu z webové stránky. Autonomní načítání dat z webu otevírá mnoho případů použití. Většina těchto dat je však ve formátu HTML, který musíte analyzovat a zkontrolovat, abyste získali relevantní data.

Pomocí webového škrábání můžete extrahovat živá data o počasí jakéhokoli města. Knihovna BeautifulSoup v Pythonu je hlavní knihovnou k vytažení dat ze souborů HTML a XML. Chcete-li zahájit proces škrábání, musíte nainstalovat knihovnu BeautifulSoup Python přes pip. Spusťte v terminálu následující příkaz a nainstalujte knihovny BeautifulSoup a požadavků:

instagram viewer
pip Nainstalujte žádosti o krásnou polévku4

Po instalaci požadovaných knihoven začněte jejich importem do kódu:

Kód použitý v tomto projektu je k dispozici v a úložiště GitHub a můžete jej používat zdarma pod licencí MIT.

z bs4 import Krásná polévka
import žádosti

Dále musíte zadat podrobnosti záhlaví, aby klient a server mohli předat další informace s požadavkem nebo odpovědí HTTP:

záhlaví = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Vytvořte funkci, najít_počasí(), k zadání dotazu na Google pomocí request.get() metoda. Pomocí vyhledávací adresy URL získáte počasí ve městě a poté seškrábnete smysluplná data, abyste získali polohu, teplotu, čas a popis počasí. Poté pomocí BeautifulSoup analyzujte přijatou HTML odpověď:

defnajít_počasí(jméno města):
city_name = city_name.replace("", "+")

Snaž se:
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', headers=headers)

tisk("Načítání...")

polévka = BeautifulSoup (res.text, 'html.parser')
umístění = soup.select('#wob_loc')[0].getText().strip()
čas = polévka.vyberte('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
teplota = polévka.vyberte('#wob_tm')[0].getText().strip()

tisk("Umístění: " + umístění)
tisk("Teplota: " + teplota + "°C")
tisk("Čas: " + čas)
tisk("Popis počasí: " + info)
až na:
tisk("Zadejte prosím platný název města")

Chcete-li extrahovat ID prvků, proveďte vyhledávání Google a prohlédněte si stránku ve svém prohlížeči pomocí webových nástrojů. Musíte zkontrolovat prvek, abyste našli ID prvku HTML, pro který chcete extrahovat data:

Dále předejte tato ID do vybrat() metoda. Tato metoda spustí selektor CSS proti analyzovanému dokumentu a vrátí všechny odpovídající prvky. The getText() metoda extrahuje text z prvku HTML. The pás() metoda odstraní z textu všechny úvodní a koncové mezery. Jakmile extrahujete čistou hodnotu, můžete ji uložit do proměnné.

Nakonec požádejte uživatele, aby zadal město a předal jej najít_počasí funkce:

jméno_města = input("Zadejte název města: ")
city_name = jméno_města + " počasí"
najít_počasí (název_města)

Nyní, když kód spustíte, vyzve vás k zadání názvu města. Chcete-li získat výsledky, musíte zadat platný název města, jinak kód vyvolá výjimku.

Získejte aktuální informace o počasí ve městě pomocí OpenWeatherMap API

OpenWeatherMap je online služba, kterou vlastní OpenWeather Ltd. Jeho API poskytuje globální data o počasí včetně aktuálního počasí, předpovědí a minulých dat pro jakékoli místo. Bezplatná vrstva OpenWeatherMap API poskytuje aktuální data o počasí s limitem 60 hovorů/minutu. Abyste získali svůj vlastní klíč API, musíte si vytvořit účet na OpenWeatherMap.

Neposílejte kód s klíčem API do veřejného úložiště, protože kdokoli s přístupem k vašim zdrojovým souborům může váš klíč vidět a ukrást. V produkční aplikaci zvažte přesunutí dat klíče API do souboru .env pro zvýšenou bezpečnost.

Jít do OpenWeatherMap webové stránky a vytvořte si bezplatný účet. Po vytvoření účtu můžete najít své klíče API na Moje klíče API strana. Můžete použít výchozí klíč API, který poskytuje OpenWeatherMap, nebo si vygenerovat svůj vlastní. OpenWeatherMap poskytuje podporu pro generování tolika API klíčů, kolik je potřeba pro vaše projekty.

Nyní jste připraveni načíst aktuální data o počasí.

# Import knihoven
import žádosti
import json

# Zde zadejte svůj klíč API OpenWeatherMap
# NEPOSÍLEJTE jej do veřejného úložiště
API_Key = "Váš_klíč_API"

# Zadejte platný název města
jméno_města = input("Zadejte název města: ")

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

# Odeslání požadavku na rozhraní API
odpověď = request.get (url)

# Převod odpovědi JSON do slovníku
res = response.json()

# Chcete-li zobrazit vše, odkomentujte další řádek
# dat, která jsou načtena z API
# tisk (res)

# Kontrola, zda je město nalezeno
# Pokud hodnota "cod" není 404,
# to znamená, že město je nalezeno
pokud res["treska"] != "404":
data = res["hlavní"]

# Ukládání aktuálních údajů o teplotě
live_temperature = data["tepl"]

# Ukládání aktuálních údajů o tlaku
live_pressure = data["tlak"]
desc = res["počasí"]

# Uložení popisu počasí
weather_description = popis[0]["popis"]
tisk("Teplota (v Kelvinově stupnici): " + str (živá_teplota))
tisk("Tlak: " + str (živý_tlak))
tisk("Popis: " + str (popis počasí))

jiný:
# Pokud není město nalezeno,
# tento blok kódu bude proveden
tisk("Zadejte prosím platný název města")

Pokud poskytnete platný klíč API a zadáte správný název města, obdržíte data z rozhraní API ve formátu JSON. Dále musíte tato data formátu JSON převést na objekt Pythonu pomocí json() způsob provádění dalších operací. Pokud je město nalezeno, budete muset vyřešit objekt diktátu (res), abyste získali požadované informace.

Vyvíjejte aplikaci počasí pomocí aktuálních dat o počasí

Nyní, když jste se naučili, jak načítat živá data pomocí OpenWeatherMap API, jste připraveni vyvinout jednoduchou aplikaci pro počasí, která jej bude využívat. Vytvoření aplikace počasí vám může pomoci uplatnit to, co znáte, a zdokonalit své dovednosti v Pythonu.

Když si ušpiníte ruce od praktických projektů, můžete se stát lepším vývojářem. Můžete vyvinout některé další projekty Pythonu, jako je přihlašovací systém, kvízová aplikace nebo zkracovač adres URL, abyste upevnili své vývojové dovednosti v Pythonu.