Merhabalar bugün sizlerle Selenium yorum botu yazacağız daha önce yazmış olduğum Selenium Nedir? Python Selenium Kullanımı makalesinde sizlerle beraber temel seviye Selenium fonksiyonlarını gördük. Bu makalemizde ise daha önce görmüş olduğumuz fonksiyonlarla beraber ilk yorum botumuzu yapacağız.
Modüllerin Import Edilmesi
Python’da daha önce bahsetmiş olduğumuz gibi bir modülü kullanmak istiyorsak öncelikle bu modülün import işlemini yapmamız gerekiyor
from selenium import webdriver from selenium.webdriver.common.by import By
Gerekli 2 adet importumuzu sağladık. Bunların ne işe yaradığını daha önce yazmış olduğumuz makaleden okuyabilirsiniz.
Selenium Başlatılması
service = webdriver.chrome.service.Service('./chromedriver.exe') service.start() driver = webdriver.Chrome(service=service)
Selenium 4 kullanıyorsanız Selenium başlatmak için öncelikle servis başlatmanız gerektiğini söylemiştik.
Linkin Açılması
driver.get('https://www.baristeksin.com.tr')
Get komutumuz ile açmak istediğimiz linki yazarak açıyoruz. Tabi ki yine kendi sitemize bot yapacağız 🙂
Yorum Atılması
from selenium import webdriver from selenium.webdriver.common.by import By service = webdriver.chrome.service.Service('./chromedriver.exe') service.start() driver = webdriver.Chrome(service=service) driver.get('https://www.baristeksin.com.tr')
Şu an da kodumuz bu şekilde oldu. Selenium importlarını yaptık, servis başlattık ve selenium tarayıcısını ayağı kaldırdık ve son olarak gerekli linki açtırdık.
Başlangıç işlemlerimiz bittiğine göre artık en büyük dostlarımızdan olacak olan Chrome DevTools’u sayfanın boş bir yerinde sağ tıklayarak incele seçeneğinden açabiliriz. Hedefimiz tarayıcımızda açılmış olduğumuz sitede en üstte bulunan yazıya tıklatmak ve daha sonrasında yorum yazdırmak dilerseniz bu işleme başlayalım.
DevTools’da Elements sekmesini incelediğimizde yazılarımızın bulunduğu yeri kapsayan bir div
elementi görüyoruz ve bu elementin rahatça erişim sağlayacağımız bir id
özelliği mevcut olduğu için rahatça erişim sağlayabileceğimizi görüyoruz ve hemen gerekli kodumuzu yazıyoruz.
yazi = driver.find_element(By.ID,'main')
Kodumuzu yazdık fakat halen istediğimiz elemente ulaşamadık çünkü şuan click
fonksiyonunu kullanırsak main elementine tıklayacak fakat bizim istediğimiz bu değil istediğimiz yazıyı açabilecek bir buton veya linke tıklamak bu yüzden biraz daha incelemeye devam ediyoruz fakat şunu unutmayın yukarıda yazmış olduğumuz koddan dolayı artık main alanı içerisindeyiz.
Biraz daha incelerken yazı başlıklarının H2 etiketiyle yazılmış olduğunu görüyorum. Düşünmeye başladığımızda yazı başlığına tıklayınca direkt olarak istemiş olduğumuz en üstteki makaleyi açabileceğimiz aklımıza geliyor ve hemen koda gerekli eklemeyi yapıyoruz.
yazi = driver.find_element(By.ID, 'main').find_element(By.TAG_NAME, 'h2').click() input('Devam etmek için bir tuşa basın...')
input
eklememizin sebebi ise Selenium kodların sonuna gelince direkt olarak kapanır biz ise doğru yere tıkladık mı görmek istiyoruz bu yüzden biz kapatana kadar kapanmaması tercihimiz olacaktır diyor ve hemen kodumuzu çalıştırıyoruz.
Evet sayfamız açıldı fakat ufak bir düzeltme yapmamız gerekiyor. Selenium başlangıçta tam ekran açılmıyor ve bu benim çok hoşuma gitmedi hadi ufak bir kod ekleyelim ve bunu düzeltelim.
driver = webdriver.Chrome(service=service) driver.maximize_window()
driver.maximize_window()
kodu bizim tarayıcımızı tam ekran yapmamızı sağlıyoruz ve kodumuza devam ediyoruz.
Yorum alanımız en aşağıda bu şekilde bu alanları şimdi dolduracağız ve yorum yap butonuna tıklatacağız.
Baktığımızda her şeyin rahatlıkla erişebilecek şekilde karşımızda durduğunu görüyoruz.
yorum_metni = "Merhaba bu bir bot yorumudur." epostaniz = "[email protected]" isim = "Barış Teksin" site = "https://www.baristeksin.com.tr" driver.find_element(By.ID,'comment').send_keys(yorum_metni) driver.find_element(By.ID,'author').send_keys(isim) driver.find_element(By.ID,'email').send_keys(epostaniz) driver.find_element(By.ID,'url').send_keys(site) driver.find_element(By.ID,'submit').click() input('Çıkmak için bir tuşa basın...')
Bu şekilde bilgileri dolduruyor ve daha sonra submit
butonuna tıklatıyoruz bu sayede yorumumuzu göndermiş oluyoruz. Kodumuzun tam hali aşağıdaki gibidir.
from selenium import webdriver from selenium.webdriver.common.by import By service = webdriver.chrome.service.Service('./chromedriver.exe') service.start() driver = webdriver.Chrome(service=service) driver.maximize_window() driver.get('https://www.baristeksin.com.tr') yazi = driver.find_element(By.ID,'main').find_element(By.TAG_NAME,'h2').click() yorum_metni = "Merhaba bu bir bot yorumudur." epostaniz = "[email protected]" isim = "Barış Teksin" site = "https://www.baristeksin.com.tr" driver.find_element(By.ID,'comment').send_keys(yorum_metni) driver.find_element(By.ID,'author').send_keys(isim) driver.find_element(By.ID,'email').send_keys(epostaniz) driver.find_element(By.ID,'url').send_keys(site) driver.find_element(By.ID,'submit').click() input("Çıkmak için bir tuşa basın...")
Kodumuzun tam halini buraya tıklayarak indirebilirsiniz.
Unutmayın ki buraya yapılan yorumlar öncelikli olarak yönetici onayına düşmektedir yani tarayıcıyı kapattığınızda veya başka bir yerden girdiğinizde direkt olarak gözükmeyecektir. Fakat ben yorumlara onay vereceğim yorumlarınız en kısa süre içerisinde sitede gözükecektir.
Sorularınız olursa yorum olarak yazabilirsiniz.
Umarım keyifle okumuşsunuzdur ve sizlere bir şeyler katabilmişimdir. Beğenmeniz dileğiyle…