Home>>Python>>Python Veri Çekme ve Görselleştirme
PythonSeleniumWeb Scraping

Python Veri Çekme ve Görselleştirme

Herkese merhaba. Önce Selenium kullanarak Web Scraping işlemi yapacağız, sonrasında ise elde ettiğimiz verileri Matplotlib Pyplot kullanarak nasıl görselleştirme yapabiliriz bunu basitçe anlatmaya çalışacağım.

Web Scraping işlemi yapacağımız site jetbrains.com. Bağlantıda bulunan, 2021 yılında 183 ülkeden 31.743 kişinin katıldığı anket verileridir. Bu veriler “12 ay içerisinde hangi programlama dili kullandınız?” sorusunun yanıtıdır.

Selenium ile Veri Toplama Kısmı

Gerekli modüller;

pip install beautifulsoup4
pip install matplotlib
pip install selenium

Modülleri import edelim;

from bs4 import BeautifulSoup
from selenium import webdriver
import matplotlib.pyplot as plt
import time

Eğer Chrome kullanacaksanız, buradan Chrome için güncel sürümünüze ait Driver’i indirin.
Eğer sürümünüzü bilmiyorsanız chrome://settings/help adresinden öğrenebilirsiniz.

browser = webdriver.Chrome('chromedriver.exe')
browser.get("https://www.jetbrains.com/lp/devecosystem-2021/")
time.sleep(1)

İndirdiğiniz exe dosyasını çalışma dizininizde bulundurun yada dosya yolunu girin.
get fonksiyonu ile kazıma işlemi yapacağımız siteye gidiyoruz.
Tüm sayfa yüklenmesi için programı 1 saniyeliğine bekletiyoruz. Eğer internetinizde gecikme varsa süreyi arttırabilirsiniz.

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

Seleniumda bulunan page_source fonksiyonu ile sayfanın kaynak kodlarını çekiyoruz.
BeautifulSoup modülü ile html parse işlemini yaptık

content = soup.find_all("div", {"class":"rt-mosaic-wrapper"})

Bs4 find_all fonksyionunu kullanarak rt-mosaic-wrapper sınıflarını content değişkeninde tutuyoruz.

languages = []
oran = []
for i in content:
    languages.append((i.find("div", {"class":"rt-mosaic-title"})).text)
    oran.append(i.find("span", {"class":"rt-mosaic-value__1"}).text.replace("%", ""))

Artık dilleri ve değerleri çekebiliriz. For döngüsü kullanarak content içerisinde bulunan, t-mosaic-title ve rt-mosaic-value__1 sınıflarının textlerini alıp listelere ekliyoruz.

diller = {}
s = 0
for i in range(len(languages)):
    if int(oran[i]) <= 8:
        s += int(oran[i])
        continue
    diller[languages[i]] = oran[i]
diller[languages[-1]] = s

Python’da sözlük yapısını kullanarak dillerin karşılığına gelen değerleri atıyoruz. Değeri 8 den küçük olan dilleri Diğerler kategorisine alacağız. Ayırmamızın sebebi; ankette 33 adet dil bulunmakta, ilk sıralardaki diller bizi ilgilendirdiği için değeri düşük dilleri Diğerler olarak adlandırabiliriz.

Matplotlib Pyplot ile Pasta Grafiği

plt.figure()
plt.pie(list(diller.values()), labels=list(diller.keys()), autopct='%1.1f%%', pctdistance=0.9)
plt.title("2021 Programlama Dillerinin Kullanım Oranı")
plt.show()

Sonuç

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

instagram‘dan takip edebilir, Python’a dair bilgileri oradan öğrenebilirsiniz.

Adblock Detected

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

Refresh Page