Prostota i możliwości adaptacyjne Pythona pomogły mu zyskać popularność na przestrzeni lat. Możesz łatwo pobierać przydatne dane przez Internet za pomocą Pythona. Następnie możesz użyć tych danych do prowadzenia praktycznej aplikacji.

Dowiedz się, jak wyszukiwać dane pogodowe w czasie rzeczywistym za pomocą funkcji Web Scraping i interfejsów API. Możesz użyć tych pobranych danych do opracowania prostej aplikacji pogodowej.

Uzyskaj aktualne informacje o pogodzie w mieście za pomocą funkcji Web Scraping

Web scraping to proces wydobywania danych i treści ze strony internetowej. Autonomiczne pobieranie danych z sieci otwiera wiele przypadków użycia. Jednak większość tych danych jest w formacie HTML, który należy przeanalizować i sprawdzić, aby wyodrębnić odpowiednie dane.

Możesz wyodrębnić dane pogodowe na żywo z dowolnego miasta za pomocą skrobania sieci. Biblioteka BeautifulSoup Pythona jest biblioteką typu „go-to”. wyciągać dane z plików HTML i XML. Musisz zainstalować bibliotekę BeautifulSoup Python za pomocą pip, aby rozpocząć proces skrobania. Uruchom następujące polecenie w terminalu, aby zainstalować biblioteki BeautifulSoup i żądania:

pypeć zainstalować piękne prośby o zupę4

Po zainstalowaniu wymaganych bibliotek zacznij od zaimportowania ich do swojego kodu:

Kod użyty w tym projekcie jest dostępny w formacie Repozytorium GitHub i jest darmowy do użytku na licencji MIT.

z bs4 import PięknaZupa
import upraszanie

Następnie musisz podać szczegóły nagłówka, aby klient i serwer mogły przekazać dodatkowe informacje z żądaniem lub odpowiedzią HTTP:

nagłówki = {
'Agent użytkownika': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jak Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Utwórz funkcję, znajdź_pogodę(), aby wysłać zapytanie do Google za pomocą request.get() metoda. Użyjesz adresu URL wyszukiwania, aby uzyskać pogodę w mieście, a następnie zeskrobujesz znaczące dane, aby uzyskać lokalizację, temperaturę, godzinę i opis pogody. Następnie użyj BeautifulSoup, aby przeanalizować otrzymaną odpowiedź HTML:

pokznajdź_pogodę(Nazwa miasta):
nazwa_miasta = nazwa_miasta.zastąp("", "+")

próbować:
res = żądania. pobierz (
F'https://www.google.com/search? q={nazwa_miasta}&oq={nazwa_miasta}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&identyfikator źródła=chrom&czyli=UTF-8', nagłówki=nagłówki)

wydrukować("Ładowanie...")

zupa = PięknaZupa (res.tekst, 'html.parser')
lokalizacja = zupa.wybierz('#lok_wob')[0].getText().strip()
czas = zupa.wybierz('#wob_dts')[0].getText().strip()
info = zupa.wybierz('#wob_dc')[0].getText().strip()
temperatura = zupa.wybierz('#wob_tm')[0].getText().strip()

wydrukować("Lokalizacja: " + lokalizacja)
wydrukować("Temperatura: " + temperatura + "°C")
wydrukować("Czas: " + czas)
wydrukować("Opis pogody: " + informacje)
z wyjątkiem:
wydrukować("Wprowadź prawidłową nazwę miasta")

Aby wyodrębnić identyfikatory elementów, przeprowadź wyszukiwanie w Google i sprawdź stronę w przeglądarce za pomocą narzędzi internetowych. Musisz sprawdzić element, aby znaleźć identyfikatory elementu HTML, dla którego chcesz wyodrębnić dane:

Następnie przekaż te identyfikatory do wybierać() metoda. Ta metoda uruchamia selektor CSS względem analizowanego dokumentu i zwraca wszystkie pasujące elementy. The pobierzTekst() Metoda wyodrębnia tekst z elementu HTML. The rozebrać się() Metoda usuwa z tekstu wszelkie wiodące i końcowe białe znaki. Po wyodrębnieniu czystej wartości możesz zapisać ją w zmiennej.

Na koniec poproś użytkownika o wprowadzenie miasta i przekazanie go do znajdź_pogodę funkcjonować:

nazwa_miasta = input("Podaj nazwę miasta: ")
nazwa_miasta = nazwa_miasta + " pogoda"
znajdź_pogodę (nazwa_miasta)

Teraz, gdy uruchomisz kod, pojawi się monit o podanie nazwy miasta. Aby uzyskać wyniki, musisz wprowadzić prawidłową nazwę miasta, w przeciwnym razie kod zgłosi wyjątek.

Uzyskaj aktualne informacje o pogodzie w mieście za pomocą interfejsu API OpenWeatherMap

OpenWeatherMap to usługa online, której właścicielem jest OpenWeather Ltd. Jego interfejs API zapewnia globalne dane pogodowe, w tym aktualną pogodę, prognozy i dane z przeszłości dla dowolnej lokalizacji. Bezpłatna warstwa API OpenWeatherMap zapewnia aktualne dane pogodowe z limitem 60 połączeń na minutę. Musisz utworzyć konto na OpenWeatherMap, aby otrzymać własny klucz API.

Nie wypychaj kodu z kluczem API do publicznego repozytorium, ponieważ każdy, kto ma dostęp do Twoich plików źródłowych, może zobaczyć i ukraść Twój klucz. W aplikacji produkcyjnej rozważ przeniesienie danych klucza API do pliku .env dla zwiększenia bezpieczeństwa.

Iść do OpenWeatherMap stronę internetową i założyć bezpłatne konto. Po utworzeniu konta możesz znaleźć swoje klucze API na stronie Moje klucze API strona. Możesz użyć domyślnego klucza API dostarczonego przez OpenWeatherMap lub wygenerować własny. OpenWeatherMap zapewnia wsparcie w generowaniu tylu kluczy API, ile potrzeba dla twoich projektów.

Teraz możesz pobrać dane pogodowe na żywo.

# Importowanie bibliotek
import upraszanie
import json

# Wprowadź tutaj swój klucz API OpenWeatherMap
# NIE wysyłaj go do publicznego repozytorium
API_Key = "Twój_klucz_API"

# Podaj poprawną nazwę miasta
nazwa_miasta = input("Podaj nazwę miasta: ")

# Konstruowanie ścieżki adresu URL interfejsu API
adres URL = f"http://api.openweathermap.org/data/2.5/weather? q={nazwa_miasta}&appid={API_Key}"

# Wykonywanie żądania get do API
odpowiedź = żądania.pobierz (adres URL)

# Konwersja odpowiedzi JSON do słownika
res = odpowiedź.json()

# Odkomentuj następną linię, aby zobaczyć wszystkie
# dane, które są pobierane z interfejsu API
# drukuj (res)

# Sprawdzanie, czy miasto zostało znalezione
# Jeśli wartość „cod” nie wynosi 404,
# oznacza to, że miasto zostało znalezione
jeśli ponownie ["dorsz"] != "404":
dane = res["główny"]

# Przechowywanie danych temperatury na żywo
temperatura_na żywo = dane ["temp"]

# Przechowywanie danych ciśnienia na żywo
ciśnienie_na żywo = dane ["ciśnienie"]
opis = res["pogoda"]

# Przechowywanie opisu pogody
opis_pogody = opis[0]["opis"]
wydrukować("Temperatura (w skali Kelvina): " + str (live_temperature))
wydrukować("Ciśnienie: " + str (ciśnienie_na żywo))
wydrukować("Opis: " + str (opis_pogody))

w przeciwnym razie:
# Jeśli miasto nie zostanie znalezione,
# ten blok kodu zostanie wykonany
wydrukować("Wprowadź prawidłową nazwę miasta")

Jeśli podasz prawidłowy klucz API i wpiszesz poprawną nazwę miasta, otrzymasz dane z API w formacie JSON. Następnie musisz przekonwertować te dane w formacie JSON na obiekt Pythona za pomocą json() sposób wykonywania dalszych operacji. Jeśli miasto zostanie znalezione, będziesz musiał rozwiązać obiekt dict (rez), aby wyodrębnić wymagane informacje.

Opracuj aplikację pogodową, korzystając z danych pogodowych na żywo

Teraz, gdy nauczyłeś się, jak pobierać dane na żywo za pomocą interfejsu API OpenWeatherMap, możesz opracować prostą aplikację pogodową, która go użyje. Zbudowanie aplikacji pogodowej może pomóc w zastosowaniu posiadanej wiedzy i doskonaleniu umiejętności w języku Python.

Ubrudzenie sobie rąk praktycznymi projektami może sprawić, że staniesz się lepszym programistą. Możesz opracować inne projekty w Pythonie, takie jak system logowania, aplikacja do quizów lub narzędzie do skracania adresów URL, aby utrwalić swoje umiejętności programowania w Pythonie.