Merhaba arkadaşlar. Uzun bir aradan sonra tekrar yazmaya başladım :) . Okul dersleri, sınavlar derken çok şükür daha serbest olduğum bir dönemdeyim.
Geçenlerde bir web sitesinden verileri çekmem gerekti ve bunu normal kütüphane ve modüller ile yapamayacağımı anlayınca selenium kullanmaya karar verdim. Çünkü, verileri çekeceğim web sitesinde sayfa dinamik olarak yükleniyordu ve javascript kodlarının yorumlanmasını gerektiriyordu. Selenium ile bu web sitesinin verilerini düzgün bir şekilde alabiliyoruz. Ben bu işlem için Firefox Driver kullandım, yani geckodriver.
Ancak her seferinde Firefox penceresinin açılıp verilerin çekilmesi hiç hoş değil. Bunun için headless olarak kullanabileceğimiz bir seçenek sunulmuş. Python'da bunu yapmak kolay.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from selenium import webdriver | |
from selenium.webdriver.firefox.options import Options | |
ayar = Options() | |
ayar.add_argument("--headless") | |
browser = webdriver.Firefox(options=ayar,executable_path="Driver Dizini") |
Ya da
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from selenium import webdriver | |
from selenium.webdriver.firefox.options import Options | |
ayar = Options() | |
ayar.headless = True | |
browser = webdriver.Firefox(options=ayar,executable_path="Driver Dizini") |
Artık ekrana bir Firefox penceresi gelmeden verileri arkaplanda çekebiliriz. Ancak belirtmek isterim ki, bazen headless versiyonu kullanırken verileri çekemediğiniz durumlar olabilir. Çünkü bazı web siteleri, illa ki arayüzü görüntülemenizi ister. Yani sayfadaki document.hidden değeri false olduğu anda sayfa içeriğini yüklemeye başlar. Bununla baş etmenin de bir yolu var elbet :) Selenium yardımıyla şu kodu çalıştırarak, sayfayı ekranda görüntülüyormuşuz gibi web sayfasını kandırabiliriz.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
browser.execute_script("document.hidden = false;") |
Bu kadar. Diğer driverlar için test etme şansım olmadı malesef. Eğer sizler başka driverlar için test edip olumlu sonuç alırsanız yorumlarda belirtin lütfen.
Bir başka yazıda buluşmak üzere...
Bir başka yazıda buluşmak üzere...
Yorumlar
Yorum Gönder