Home>>Python>>Selenium ile Web Scraping | Hava Durumu Verisi Çekme
PythonSeleniumWeb Scraping

Selenium ile Web Scraping | Hava Durumu Verisi Çekme

Merhaba,
Python Selenium kullanarak hava durumu bilgisini anlık olarak nasıl çekebileceğimizi anlatmaya çalışacağım. Bunun için ufak bir bot yazdım. Lafı çok uzatmadan botu nasıl yazdığıma geçelim.

İlk olarak gerekli modülleri aşağıdaki gibi kuralım;

pip install selenium
pip install beautifulsoup4

Modülleri import edelim;

from selenium import webdriver
from bs4 import BeautifulSoup

Buradan Chrome için güncel sürümünüze ait Driver’i indirin.
Sürümünüzü öğrenmek için chrome://settings/help

Python betiğinize aşağıdaki kodu yazın.

browserProfile = webdriver.ChromeOptions()
browserProfile.add_experimental_option('prefs', {'intl.accept_languages': 'tr,tr_TR'})
browser = webdriver.Chrome('Desktop/Python/chromedriver.exe', chrome_options=browserProfile)

Kullanıcıdan bilgi alın ve URL’ye gidin.

il = input("İl: ").lower().capitalize()
ilce = input("İlçe: ").lower().capitalize()
url = browser.get(f"https://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?il={il}&ilce={ilce}")

Selenium ile kaynak kodlarınızı çekin, BeautifulSoup ile parse edin.

kaynak = browser.page_source
soup = BeautifulSoup(kaynak, "html.parser")

Verileri çekeceğimiz siteye gidip kaynak kodlarına bakalım. https://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx#/

Web Scraping işlemi yaparken verilerini çekeceğimiz sitenin kaynak kodlarını incelememiz gerekiyor. Bunun sebebi, kaynak koddaki etiketler ile yazacağımız koddaki etiketlerin aynı olması lazım.

Şekil 1

Şekil.1’de olduğu gibi adımları sırasıyla takip ederek, çekeceğimiz kısımların etiketlerini alıp aşağıdaki gibi yazıyoruz.

anlikDurumTarih = soup.find("span",{"class":"ad_time ng-binding"})
anlikDerece = soup.find("div", {"class":"anlik-sicaklik-deger ng-binding"})
anlikHava = soup.find("div", {"class":"anlik-sicaklik-havadurumu-ikonismi ng-binding"})
anlikNem = soup.find("div", {"class":"anlik-nem-deger-kac ng-binding"})

Ve ekrana yazdıralım.

print(f"""
İl: {il}/{ilce}
Tarih: {anlikDurumTarih.text}
Sıcaklık: {anlikDerece.text}°C
Hava: {anlikHava.text}
Nem: %{anlikNem.text}
""")

Çıktımız;

Çıktı

Tüm kodlara ulaşmak için Github’a Göz Atın.

Diğer projelere ulaşmak için tıklayın.

Adblock Detected

Lütfen reklam engelleyicinizi devre dışı bırakarak bizi destekleyin.

Refresh Page