Python ile Web Otomasyonu

Celal ORMANLI
Mar 3, 2020 · 3 min read

Merhaba, bu yazımızda Kronnika’da çok sık kullandığımız bir çözüm olan web otomasyonuna değineceğiz. Ardından Python ile basit bir web otomasyonu yapacağız. Haydi başlayalım.

Web Otomasyonu Nedir?

Web otomasyonu, bireylerin her gün yaptıkları tekrarlayıcı, sıkıcı ve katma değeri olmayan işlerin yazılımsal robotlar aracılığıyla yapılmasıdır. Her gün aynı adreslere mail gönderme, bu adreslerden gelen mailleri içerikleri ile beraber alma, web siteleri içinde veri toplama, form doldurma, kullanıcı kaydı gibi akla gelebilecek birçok işlemi bu şekilde robotlara yükleyebiliriz. Böylece bu tür rutin işlerden arta kalan zamanlarda katma değeri daha yüksek işlere zaman ayırabiliriz.

Image for post
Image for post

Kronnika’da web otomasyonları geliştirmek için en iyi yöntem ve kütüphaneleri araştırıyor, takip ediyor ve kullanıyoruz. Bir projede kullanılabilecek en verimli ve başarılı yöntem ile ürün geliştirmeye önem veriyoruz. Selenium da projelerimizde kullandığımız yöntemlerden biridir.

Selenium Nedir?

Selenium hali hazırda web siteleri için bir test otomasyonu olup, web siteleri içinde bir insanın yaptığı hareketleri tekrar edecek şekilde işlem yapmamızı sağlar. Aşağıda Selenium ile basit bir otomasyon örneği yapacağız. Bu örneğimizi Python üzerinden ilerleteceğiz. Selenium’un Java, C#, Ruby, JavaScript ve Kotlin gibi birçok dil desteği de bulunmaktadır. Ayrıca Selenium dökümantasyon ve kaynak açısından da çok zengin bir kütüphanedir.

Öncelikle Python projemizi oluşturup Selenium kütüphanemizi kuruyoruz.

pip install selenium

komutu ile kütüphanemizi kurmuş oluyoruz. Ardından gerekli web driver dosyasını indiriyoruz. Burada Chrome driver kullanacağız. İndirme linkine buradan ulaşabilirsiniz. Burada indireceğiniz driver ile bilgisayarınızda kurulu olan Google Chrome’nin aynı versiyona sahip olması gerekmektedir.

Kısa bir kod ile Google üzerinde bir arama yapıp gelen ilk siteye girmeyi deneyeceğiz. Kullanmak için aşağıdaki selenium kütüphanelerini import ediyoruz.

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

Daha sonra kullanacağımız browser için driver path’ini koda tanıtıp browser’imizi çağırıyoruz.

driver_path = "chromedriver.exe"
browser = webdriver.Chrome(executable_path=driver_path)

İstediğimiz web sitesini açmak için koda

browser.get("https://www.google.com/")

kısmını ekliyoruz. Böylece kodu çalıştırdığımız zaman Google sitesi açılacak şekilde browser karşımıza gelecektir. Web tarayıcıda arama yapabilmek için

browser.find_element_by_css_selector('.gLFyf.gsfi').send_keys("amazon")
browser.find_element_by_css_selector('.gLFyf.gsfi').send_keys(Keys.ENTER)

satırları yeterli olacaktır. İlk satırda aramak istediklerimizi yazıp ikinci satır ile Enter’a basıyoruz. Burada Google üzerindeki elementlere ulaşabilmek için class bilgilerini kullandık. İşlem yaptığımız web sitesine göre id, class, selector ve xpath gibi birçok seçeneğimiz bulunmaktadır. Arama işlemini başlattıktan sonra belli bir süre web sayfasının yüklenmesini beklememiz gerekmektedir.

WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.LC20lb.DKV0Md')))

Kod satırı ile gelecek olan arama sonucunun tam olarak hazır olmasını bekliyoruz.

Gelen arama sonuçlarından ilkine tıklamak için aşağıdaki kod yeterli olacaktır.

browser.find_elements_by_css_selector('.LC20lb.DKV0Md')[0].click()

Kodda aynı class’a sahip bütün elemanları aratıp ilk elamanın olduğu siteye giriyoruz.

Image for post
Image for post

Yukarıdaki örnekte basit bir Google araması yapıp karşımıza gelen ilk siteye girmeyi denedik. Selenium’un çalışma mantığını anlatmak için bu küçük örneği kullandık. Kişi ve kurum ihtiyaçlarımıza göre bu otomasyonu istediğimiz şekilde dallandırıp genişletebiliriz. Kronnika’da asıl amacımız rutin web işlerini bu şekilde otomatize ederek kullanıcıların zamanlarını daha verimli işlere ayırmalarını sağlamaktır. Tekrarlayan işlerin insanları robotlaştırması yerine bu işleri direk robotlara yüklemek maliyet açısından da oldukça faydalı bir işlemdir. Ayrıca işlemleri robotlara yaptırdığımızda insanların yapacağı hata oranlarını neredeyse sıfıra indirmiş oluyoruz.

Development ile ilgili bu yazımızda Kronnika olarak kullandığımız başka bir teknoloji üzerine küçük bir örnek yaptık. İnsanların zamanlarını daha verimli olarak kullanabilmelerini sağlamak için yeni teknolojileri sürekli takip edip öğrenmeye devam edeceğiz. Biz öğrendikçe robotlarımızda öğrenmiş ve daha yetenekli olmuş oluyor. Robotlarımızı paylaştığımız gibi öğrendiklerimizi de paylaşmaktan mutluluk duyuyoruz. Bir sonraki yazımızda görüşmek dileğiyle…

Kronnika

Kronnika is a simple & powerful robotic process automation…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store