Ana içeriğe atla

Python Selenium İçin Firefox Driver'ı Headless Olarak Kullanmak

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.
Ya da


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.


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...

Yorumlar

Bu blogdaki popüler yayınlar

Python Subprocess

subprocess modülü, yeni bir process oluşturmayı sağlayan, bunların girdi-çıktılarını ele alma imkânı veren ve dönüş kodlarını almayı sağlayan bir modüldür. Yani daha basit bir şekilde, program içinde program çalıştırmaya imkan veren bir modüldür. Subprocess Modülünün Kullanımı subprocess basit bazı process'leri kullanmak için birkaç tane fonksiyon sunuyor. Daha karmaşık bir process çalıştırmak isterseniz, Popen sınıfını kullanabilirsiniz. Bunlara detaylı bir şekilde değinmeye çalışacağız. Şimdi basit fonksiyonları inceleyelim

Infix to postfix dönüşümü

Infix to postfix dönüşümü, operatorün ortada olduğu a+b yazım şeklini operatorün sonda olduğu ab+ yazım şekline dönüştürme işlemidir. Bu yazıda iki şekilde dönüşümden bahsedeceğim:   1) Stack yapısı kullanarak dönüştürme 2) Kağıt üstünde el ile dönüştürme    Infix gösterimi, bizler için kolay bir gösterim olsa da makineler için öyle değildir. İfadeyi okurken a + b * c işleminde önce b ile c yi çarpıp sonra da a ile toplamayı kolay bir şekilde yapabiliriz çünkü bizim ifadeyi sıra ile adım adım giderek okuma zorunluluğumuz yok. Önce b*c nin öncelikle olduğunu görerek oradan başlar, sonra a ile kolayca toplarız.

CLAHE (Contrast Limited Adaptive Histogram Equalization) Histogram Eşitleme Tekniği

Bu yazıda CLAHE algoritmasını nasıl uygulayacağımızı ve verilen bir resmi histogram eşitlemesi için nasıl işleyeceğimizi öğreneceğiz. Bu yazıda, CLAHE algoritmasının, görüntü iyileştirme için nasıl uygulandığını göreceğiz. CLAHE, görüntü kontrast değerlerinin aşırı yüksekliği ile ilgilenen AHE algoritmasının bir varyantıdır. CLAHE, bütün resim üzerinde işlem yapmak yerine kesitler olarak adlandırılan küçük bölgeler üzerinde işlem yapar. Küçük kesitlerde yapılan işlem sonrasında oluşan yapay sınırları kaldırmak için bilinear interpolasyon işlemi uygulanarak bu küçük kesitler birleştirilerek son görüntü elde edilir.  Bu algoritma görüntü kontrastını iyileştirmek için kullanılabilir. CLAHE algoritmasını renkli görüntülere de uygulayabiliriz. Genelde HSV görüntülerin yalnızca parlaklık kanalına uygulandığı durumlarda, tüm RGB kanallara uygulamaktan çok daha başarılı sonuçlar elde etmemizi sağlar.  CLAHE algoritması uygulanırken 2 parametre önemlidir. Birincisi clipLimit parametres...