Python'un basitliği ve uyarlanabilirliği, yıllar boyunca popülerlik kazanmasına yardımcı olmuştur. Python ile faydalı verileri internet üzerinden kolayca alabilirsiniz. Daha sonra pratik bir uygulama yürütmek için bu verileri kullanabilirsiniz.

Web kazıma ve API'leri kullanarak gerçek zamanlı hava durumu verilerini nasıl bulacağınızı öğrenin. Bu getirilen verileri basit bir hava durumu uygulaması geliştirmek için kullanabilirsiniz.

Web Kazıma Kullanarak Bir Şehrin Güncel Hava Durumu Ayrıntılarını Alın

Web kazıma, bir web sitesinden veri ve içerik çıkarma işlemidir.. Web'den otonom olarak veri almak, birçok kullanım durumu açar. Ancak bu verilerin çoğu, ilgili verileri ayıklamak için ayrıştırmanız ve incelemeniz gereken HTML biçimindedir.

Web scraping kullanarak herhangi bir şehrin canlı hava durumu verilerini çıkarabilirsiniz. Python'un BeautifulSoup kitaplığı, gidilecek kitaplıktır HTML ve XML dosyalarından veri çekmek için. Scraping işlemine başlamak için BeautifulSoup Python kütüphanesini pip aracılığıyla kurmanız gerekiyor. BeautifulSoup ve request kitaplıklarını yüklemek için terminalde aşağıdaki komutu çalıştırın:

instagram viewer

bip düzenlemek güzel çorba4 istek

Gerekli kitaplıkları yükledikten sonra, bunları kodunuza içe aktararak başlayın:

Bu projede kullanılan kod bir GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.

itibaren bs4 içe aktarmak güzel çorba
içe aktarmak istekler

Ardından, istemci ve sunucunun bir HTTP isteği veya yanıtıyla ek bilgiler iletebilmesi için başlık ayrıntılarını sağlamanız gerekir:

başlıklar = {
'Kullanıcı Aracısı': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, Gecko gibi) Chrome/58.0.3029.110 Safari/537.3'
}

Bir işlev oluşturun, find_weather()kullanarak Google'a bir sorgu yapmak için request.get() yöntem. Bir şehrin hava durumunu almak için bir arama URL'si kullanacak, ardından konum, sıcaklık, saat ve hava durumu açıklamasını almak için anlamlı verileri çıkaracaksınız. Ardından, alınan HTML yanıtını ayrıştırmak için BeautifulSoup'u kullanın:

kesinbul_hava durumu(Şehir İsmi):
şehir_adı = şehir_adı.değiştir("", "+")

denemek:
res = request.get(
F'https://www.google.com/search? q={şehir_adı}&oq={şehir_adı}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&kaynak kimliği=krom&yani=UTF-8', başlıklar=başlıklar)

Yazdır("Yükleniyor...")

çorba = GüzelÇorba (res.metin, 'html. ayrıştırıcı')
yer = çorba.seç('#wob_loc')[0].getText().strip()
zaman = çorba.seç('#wob_dts')[0].getText().strip()
bilgi = çorba.seç('#wob_dc')[0].getText().strip()
sıcaklık = çorba.seç('#wob_tm')[0].getText().strip()

Yazdır("Konum: " + konum)
Yazdır("Sıcaklık: " + sıcaklık + "°C")
Yazdır("Zaman: " + zaman)
Yazdır("Hava Durumu Açıklaması: " + bilgi)
hariç:
Yazdır("Lütfen geçerli bir şehir adı girin")

Öğe kimliklerini çıkarmak için bir Google araması yapın ve web araçlarını kullanarak tarayıcınızdaki sayfayı inceleyin. Verilerini çıkarmak istediğiniz HTML öğesinin kimliklerini bulmak için öğeyi incelemeniz gerekir:

Ardından, bu kimlikleri şuraya iletin: seçme() yöntem. Bu yöntem, ayrıştırılan belgeye karşı bir CSS seçici çalıştırır ve eşleşen tüm öğeleri döndürür. bu getText() yöntem, metni HTML öğesinden çıkarır. bu şerit () yöntem, metinden baştaki ve sondaki boşluk karakterlerini kaldırır. Temiz bir değer çıkardıktan sonra, onu bir değişkende saklayabilirsiniz.

Son olarak, kullanıcıdan bir şehir girmesini ve bunu yöneticiye iletmesini isteyin. bul_hava durumu işlev:

şehir_adı = girdi("Şehir Adını Girin: ")
şehir_adı = şehir_adı + " hava durumu"
hava_bul (şehir_adı)

Şimdi, kodu çalıştırdığınızda sizden bir şehir adı girmenizi isteyecektir. Sonuçları almak için geçerli bir şehir adı girmelisiniz, aksi takdirde kod bir istisna oluşturur.

OpenWeatherMap API Kullanarak Bir Şehrin Güncel Hava Durumu Ayrıntılarını Alın

OpenWeatherMap, OpenWeather Ltd.'ye ait çevrimiçi bir hizmettir. API'si, mevcut hava durumu, tahminler ve herhangi bir konum için geçmiş veriler dahil olmak üzere küresel hava durumu verileri sağlar. OpenWeatherMap API'nin ücretsiz katmanı, 60 arama/dakika sınırıyla güncel hava durumu verilerini sağlar. Kendi API anahtarınızı almak için OpenWeatherMap'te bir hesap oluşturmanız gerekir.

Kaynak dosyalarınıza erişimi olan herkes anahtarınızı görüp çalabileceğinden, API anahtarıyla birlikte kodu genel bir depoya göndermeyin. Bir üretim uygulamasında şunları göz önünde bulundurun API anahtarı verilerini bir .env dosyasına taşıma Gelişmiş güvenlik için.

git OpenWeatherMap'in web sitesi ve ücretsiz bir hesap oluşturun. Hesabı oluşturduktan sonra, API anahtarlarınızı şu adreste bulabilirsiniz: API Anahtarlarım sayfa. OpenWeatherMap tarafından sağlanan varsayılan API anahtarını kullanabilir veya kendinizinkini oluşturabilirsiniz. OpenWeatherMap, projeleriniz için gerektiği kadar çok API anahtarı oluşturma desteği sağlar.

Artık canlı hava durumu verilerini almaya hazırsınız.

# Kitaplıkları içe aktarma
içe aktarmak istekler
içe aktarmak json

# OpenWeatherMap API anahtarınızı buraya girin
# Onu halka açık bir depoya BASMAYIN
API_Anahtarı = "API_Anahtarınız"

# Geçerli bir şehir adı girin
şehir_adı = girdi("Şehir adını girin: ")

# API URL yolunu oluşturma
url = f"http://api.openweathermap.org/data/2.5/weather? q={şehir_adı}&appid={API_Key}"

# API'ye bir alma isteği yapmak
yanıt = request.get (url)

# JSON yanıtını bir sözlüğe dönüştürme
res = yanıt.json()

# Tümünü görmek için sonraki satırın açıklamasını kaldırın
API'den getirilen # veri
# yazdır (res)

# Şehrin bulunup bulunmadığı kontrol ediliyor
# "cod" değeri 404 değilse,
# bu, şehrin bulunduğu anlamına gelir
res["Morina"] != "404":
veri = res["ana"]

# Canlı sıcaklık verilerinin saklanması
canlı_sıcaklık = veri["sıcaklık"]

# Canlı basınç verilerinin saklanması
canlı_basınç = veri["basınç"]
azal = res["hava durumu"]

# Hava durumu açıklamasını kaydetme
hava_tanımı = açıklama[0]["Tanım"]
Yazdır("Sıcaklık (Kelvin ölçeğinde): " + str (live_temperature))
Yazdır("Basınç: " + str (canlı_basınç))
Yazdır("Tanım: " + str (hava_açıklaması)

başka:
# Şehir bulunamazsa,
# bu kod bloğu yürütülecek
Yazdır("Lütfen geçerli bir şehir adı girin")

Geçerli bir API anahtarı sağlar ve doğru şehir adını girerseniz, verileri API'den JSON biçiminde alırsınız. Ardından, bu JSON biçimindeki verileri kullanarak bir Python nesnesine dönüştürmeniz gerekir. json() daha fazla işlem gerçekleştirme yöntemi. Şehir bulunursa, dict nesnesini (res) gerekli bilgileri çıkarmak için.

Canlı Hava Durumu Verilerini Kullanarak Hava Durumu Uygulaması Geliştirin

Artık OpenWeatherMap API kullanarak canlı verileri nasıl alacağınızı öğrendiğinize göre, bunu kullanarak basit bir hava durumu uygulaması geliştirmeye hazırsınız. Bir hava durumu uygulaması oluşturmak, bildiklerinizi uygulamanıza ve Python becerilerinizi geliştirmenize yardımcı olabilir.

Pratik projelerde ellerinizi kirletmek sizi daha iyi bir geliştirici yapabilir. Python geliştirme becerilerinizi sağlamlaştırmak için oturum açma sistemi, bilgi yarışması uygulaması veya URL kısaltıcı gibi başka Python projeleri geliştirebilirsiniz.