Die Einfachheit und Anpassungsfähigkeit von Python haben dazu beigetragen, dass es im Laufe der Jahre immer beliebter wurde. Mit Python können Sie nützliche Daten ganz einfach über das Internet abrufen. Sie können diese Daten dann verwenden, um eine praktische Anwendung voranzutreiben.
Erfahren Sie, wie Sie mithilfe von Web Scraping und APIs Echtzeit-Wetterdaten finden. Sie können diese abgerufenen Daten verwenden, um eine einfache Wetteranwendung zu entwickeln.
Holen Sie sich aktuelle Wetterdaten einer Stadt mit Web Scraping
Web Scraping ist der Prozess des Extrahierens von Daten und Inhalten von einer Website. Das autonome Abrufen von Daten aus dem Internet eröffnet viele Anwendungsfälle. Die meisten dieser Daten liegen jedoch im HTML-Format vor, das Sie analysieren und untersuchen müssen, um relevante Daten zu extrahieren.
Sie können Live-Wetterdaten jeder Stadt mit Web Scraping extrahieren. Pythons BeautifulSoup-Bibliothek ist die Go-to-Bibliothek um Daten aus HTML- und XML-Dateien herauszuziehen. Sie müssen die BeautifulSoup-Python-Bibliothek über Pip installieren, um mit dem Scraping-Prozess zu beginnen. Führen Sie den folgenden Befehl im Terminal aus, um die BeautifulSoup- und Anforderungsbibliotheken zu installieren:
Pip Installieren schöne Suppe4 Anfragen
Nachdem Sie die erforderlichen Bibliotheken installiert haben, importieren Sie sie zunächst in Ihren Code:
Der in diesem Projekt verwendete Code ist in a GitHub-Repository und steht Ihnen unter der MIT-Lizenz kostenlos zur Verfügung.
aus bs4 importieren Schöne Suppe
importieren Anfragen
Als Nächstes müssen Sie die Header-Details angeben, damit der Client und der Server zusätzliche Informationen mit einer HTTP-Anforderung oder -Antwort übergeben können:
Überschriften = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
Erstellen Sie eine Funktion, find_weather(), um mithilfe von eine Anfrage an Google zu stellen Anfragen.get() Methode. Sie verwenden eine Such-URL, um das Wetter einer Stadt abzurufen, und kratzen dann die aussagekräftigen Daten, um Ort, Temperatur, Zeit und Wetterbeschreibung zu erhalten. Verwenden Sie dann BeautifulSoup, um die empfangene HTML-Antwort zu analysieren:
deffind_wetter(Stadtname):
city_name = city_name.replace("", "+")versuchen:
res = Anfragen.get(
F'https://www.google.com/search? q={Stadtname}&oq={Stadtname}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrom&dh=UTF-8', Überschriften=Überschriften)drucken("Wird geladen...")
Suppe = SchöneSuppe (res.text, 'html.parser')
standort = suppe.select ('#wob_loc')[0].getText().strip()
Zeit = Suppe.Auswahl('#wob_dts')[0].getText().strip()
info = suppe.select('#wob_dc')[0].getText().strip()
Temperatur = Suppe.Auswahl ('#wob_tm')[0].getText().strip()
drucken("Standort: " + Standort)
drucken("Temperatur: " + Temperatur + "°C")
drucken("Zeit: " + Zeit)
drucken("Wetterbeschreibung: " + Infos)
außer:
drucken("Bitte geben Sie einen gültigen Städtenamen ein")
Führen Sie zum Extrahieren der Element-IDs eine Google-Suche durch und überprüfen Sie die Seite in Ihrem Browser mithilfe von Webtools. Sie müssen das Element untersuchen, um die IDs des HTML-Elements zu finden, für das Sie Daten extrahieren möchten:
Übergeben Sie diese IDs als Nächstes an die wählen() Methode. Diese Methode führt einen CSS-Selektor für das geparste Dokument aus und gibt alle übereinstimmenden Elemente zurück. Der getText() -Methode extrahiert den Text aus dem HTML-Element. Der Streifen() -Methode entfernt alle führenden und nachgestellten Leerzeichen aus dem Text. Sobald Sie einen sauberen Wert extrahiert haben, können Sie ihn in einer Variablen speichern.
Bitten Sie den Benutzer schließlich, eine Stadt einzugeben und an die weiterzugeben find_wetter Funktion:
Stadtname = Eingabe ("Geben Sie den Namen der Stadt ein: ")
Stadtname = Stadtname + " Wetter"
find_weather (Stadtname)
Wenn Sie jetzt den Code ausführen, werden Sie aufgefordert, einen Stadtnamen einzugeben. Sie müssen einen gültigen Städtenamen eingeben, um die Ergebnisse zu erhalten, oder der Code löst eine Ausnahme aus.
Holen Sie sich aktuelle Wetterdetails einer Stadt mit der OpenWeatherMap API
OpenWeatherMap ist ein Onlinedienst von OpenWeather Ltd. Seine API bietet globale Wetterdaten, einschließlich aktuelles Wetter, Vorhersagen und vergangene Daten für jeden Standort. Die kostenlose Version der OpenWeatherMap-API bietet aktuelle Wetterdaten mit einem Limit von 60 Aufrufen/Minute. Sie müssen ein Konto bei OpenWeatherMap erstellen, um Ihren eigenen API-Schlüssel zu erhalten.
Schieben Sie den Code mit dem API-Schlüssel nicht in ein öffentliches Repository, da jeder mit Zugriff auf Ihre Quelldateien Ihren Schlüssel sehen und stehlen kann. Ziehen Sie in einer Produktions-App in Betracht Verschieben der API-Schlüsseldaten in eine .env-Datei für mehr Sicherheit.
Gehe zu OpenWeatherMaps Website und erstellen Sie ein kostenloses Konto. Nachdem Sie das Konto erstellt haben, finden Sie Ihre API-Schlüssel auf der Meine API-Schlüssel Buchseite. Sie können den von OpenWeatherMap bereitgestellten Standard-API-Schlüssel verwenden oder einen eigenen generieren. OpenWeatherMap bietet die Unterstützung, um so viele API-Schlüssel wie nötig für Ihre Projekte zu generieren.
Jetzt können Sie die Live-Wetterdaten abrufen.
# Bibliotheken importieren
importieren Anfragen
importieren json# Geben Sie hier Ihren OpenWeatherMap-API-Schlüssel ein
# Schieben Sie es NICHT in ein öffentliches Repository
API_Key = "Your_API_Key"# Geben Sie einen gültigen Städtenamen an
Stadtname = Eingabe ("Stadtnamen eingeben: ")# Erstellen des API-URL-Pfads
url = f"http://api.openweathermap.org/data/2.5/weather? q={Stadtname}&appid={API_Key}"# Eine Get-Anfrage an die API stellen
Antwort = Anfragen.get (URL)# Konvertieren der JSON-Antwort in ein Wörterbuch
res = Antwort.json()# Kommentieren Sie die nächste Zeile aus, um alle zu sehen
# Daten, die von der API abgerufen werden
# drucken (Auflösung)# Prüfen, ob die Stadt gefunden wurde
# Wenn der Wert von "cod" nicht 404 ist,
# das bedeutet, dass die Stadt gefunden wurde
wenn res["Kabeljau"] != "404":
Daten = res["hauptsächlich"]# Speichern der Live-Temperaturdaten
live_temperature = data["Temp"]# Speichern der Live-Druckdaten
live_pressure = Daten["Druck"]
desc = res["Wetter"]# Speichern der Wetterbeschreibung
weather_description = desc[0]["Beschreibung"]
drucken("Temperatur (in Kelvin-Skala): " + str (live_temperatur))
drucken("Druck: " + str (live_pressure))
drucken("Beschreibung: " + str (Wetterbeschreibung))
anders:
# Wenn die Stadt nicht gefunden wird,
# Dieser Codeblock wird ausgeführt
drucken("Bitte geben Sie einen gültigen Städtenamen ein")
Wenn Sie einen gültigen API-Schlüssel angeben und den richtigen Städtenamen eingeben, erhalten Sie die Daten von der API im JSON-Format. Als Nächstes müssen Sie diese Daten im JSON-Format mithilfe von in ein Python-Objekt konvertieren json() Methode, um weitere Operationen auszuführen. Wenn die Stadt gefunden wird, müssen Sie das Diktatobjekt auflösen (res), um die erforderlichen Informationen zu extrahieren.
Entwickeln Sie eine Wetteranwendung unter Verwendung der Live-Wetterdaten
Nachdem Sie nun gelernt haben, wie Sie Live-Daten mit der OpenWeatherMap-API abrufen, können Sie damit eine einfache Wetteranwendung entwickeln. Das Erstellen einer Wetteranwendung kann Ihnen helfen, Ihr Wissen anzuwenden und Ihre Python-Fähigkeiten zu verbessern.
Wenn Sie sich bei praktischen Projekten die Hände schmutzig machen, können Sie ein besserer Entwickler werden. Sie können einige andere Python-Projekte wie ein Anmeldesystem, eine Quiz-App oder einen URL-Shortener entwickeln, um Ihre Python-Entwicklungsfähigkeiten zu festigen.