Python ile web ve tarayıcı otomasyonu: temel yöntemler ve araç seçimi
Beceri rehberi

Python ile web ve tarayıcı otomasyonu: temel yöntemler ve araç seçimi

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Python ile tarayıcıyı kontrol etmeyi, form doldurmayı, veri toplamayı ve testleri otomatikleştirmeyi; Selenium ve Playwright farklarıyla öğrenin.

Tarayıcı otomasyonu ne zaman gerekir?

Bir işlem yalnızca web arayüzünden yapılabiliyor ve sunduğu bir API yoksa, tarayıcıyı bir insan gibi kullanan bir betik devreye girer. Tipik örnekler: bir kurumsal portala giriş yapıp her gün rapor indirmek, çok sayıda kaydı bir web formuna tek tek girmek, bir sayfadaki fiyat ya da durum bilgisini düzenli aralıkla kaydetmek ve bir web uygulamasının temel akışlarını otomatik test etmek.

İlk sorulacak soru, tarayıcı otomasyonunun gerçekten gerekli olup olmadığıdır. Sistem bir API sunuyorsa veya veriyi dosya olarak dışa aktarıyorsa bu yollar daha sağlam ve hızlıdır. Tarayıcı otomasyonu, arayüz değiştiğinde bozulabildiği için son çare olarak ya da arayüz üzerinden doğrulama gereken durumlarda seçilir.

Araçlar: Selenium, Playwright ve basit istek kütüphaneleri

Python'da web otomasyonu için birkaç farklı yaklaşım vardır:

  • Selenium: uzun süredir kullanılan, birçok tarayıcıyı destekleyen bir tarayıcı sürücüsü kütüphanesidir. Geniş topluluğu ve çok sayıda örneği vardır.
  • Playwright: daha yeni bir kütüphanedir; öğeleri beklemeyi otomatik yapar, birden çok tarayıcı motorunu destekler ve ağ trafiğini izleme, ekran görüntüsü alma gibi özellikleri yerleşik sunar.
  • requests ile HTML ayrıştırma: sayfa içeriği sunucudan hazır geliyorsa tarayıcı açmadan istek gönderip sayfayı ayrıştırmak daha hızlı ve hafiftir. Sayfa içeriği JavaScript ile sonradan oluşuyorsa bu yöntem yetmez.

Yeni bir proje için araç seçerken ekibin deneyimi, hedef sitenin yapısı, çalışacağı ortam (sunucuda ekransız mı) ve bakım kolaylığı ölçüt olur. Bu tarayıcı kütüphanelerinin ikisi de ekransız (headless) çalışabilir.

Adım adım temel akış

Bir tarayıcı otomasyonu genellikle şu sırayla ilerler:

  • Tarayıcıyı başlatın ve hedef adresi açın.
  • Öğeyi bulun: düğme, alan ya da tabloyu bulmak için seçici kullanılır. Kararlı seçiciler (kimlik, erişilebilirlik etiketi, anlamlı öznitelikler) tercih edilir; sayfa yapısına fazla bağımlı seçiciler kolay bozulur.
  • Etkileşin: tıklayın, yazın, açılır listeden seçin, dosya yükleyin.
  • Bekleyin: sayfa yüklenirken öğenin görünür olmasını bekleyin. Sabit uyku süreleri yerine koşula bağlı bekleme kullanmak hem hızlı hem güvenilir olur.
  • Sonucu okuyun: metni, tabloyu ya da indirilen dosyayı alın.
  • Doğrulayın: beklenen sonuca ulaşılıp ulaşılmadığını denetleyin.
  • Kapatın: tarayıcıyı hata durumunda bile temizce kapatın.

Örnek senaryo: portaldan günlük rapor indirmek

Örneğin bir finans ekibi, bir tedarikçi portalından her sabah hareket raporunu indiriyor. Betik tarayıcıyı ekransız modda açar, giriş sayfasına gider, kullanıcı adı ve parolayı güvenli yapılandırmadan okuyup forma yazar. Giriş sonrası rapor menüsüne gider, tarih aralığını seçer ve indir düğmesine tıklar.

İndirme tamamlanana kadar koşula bağlı bekler, dosyayı belirlenen klasöre adlandırma kuralıyla kaydeder ve dosyanın boş olmadığını denetler. Ardından dosya bir sonraki otomasyona, örneğin Excel birleştirme ya da veritabanı yüklemeye devredilir. Giriş başarısız olursa betik ekran görüntüsü alır, günlüğe yazar ve sorumluya bildirim gönderir; böylece sorun sabah fark edilir.

Dayanıklı betik yazmak

Tarayıcı otomasyonunun en büyük zorluğu kırılganlıktır: sayfa tasarımı değiştiğinde ya da yükleme süresi uzadığında betik çalışmaz. Dayanıklılık için birkaç ilke uygulanır. Seçicileri tek bir yerde toplayın, böylece bir değişiklikte tek noktayı düzeltirsiniz. Her kritik adımdan sonra beklenen durumu kontrol edin ve değilse anlamlı bir mesajla durun. Geçici hatalarda sınırlı sayıda yeniden deneme ekleyin.

Hata anında ekran görüntüsü ve sayfa kaynağı kaydetmek, sorunu sonradan anlamayı çok kolaylaştırır. Açılır pencereler, çerez bildirimleri ve beklenmedik uyarılar için ayrı işleme kuralları yazın. Betiği düzenli aralıklarla çalıştırıp izlemek, sitenin değiştiğini kullanıcılardan önce görmeyi sağlar.

Etik, hukuk ve güvenlik sınırları

Her sayfa otomatik erişime açık değildir. Sitenin kullanım koşulları botla erişimi yasaklıyor olabilir; robots dosyasındaki kurallar ve istek sıklığı da dikkate alınmalıdır. Kişisel veri içeren sayfalardan veri toplamak KVKK gibi mevzuat bakımından ayrıca değerlendirilmelidir. Otomasyonun hedef siteye zarar verecek yoğunlukta istek göndermesi kabul edilemez; araya bekleme koyun.

Güvenlik açısından kullanıcı adı ve parolalar kodda tutulmaz. Otomasyon hesabı, kişisel hesap yerine ayrı ve sınırlı yetkili bir hesap olmalıdır. Captcha ve benzeri koruma mekanizmalarını aşmaya çalışmak, sitenin koruma niyetine aykırıdır; bu tür engeller çıkıyorsa resmî API ya da sağlayıcıyla anlaşma aranmalıdır.

Sık yapılan hatalar

Sabit uyku süreleriyle beklemek en yaygın hatadır: bazen gereğinden uzun, bazen yetersiz kalır. Öğenin görünür ve tıklanabilir olmasını bekleyen koşullu bekleme kullanın. İkinci yaygın hata, çok kırılgan seçiciler yazmaktır; uzun, sayfanın konumuna bağlı yol ifadeleri küçük bir tasarım değişikliğinde bozulur.

Tarayıcı süreçlerini kapatmamak sunucuda bellek tüketimine yol açar; hata durumunda bile temizlik yapılmalıdır. Test etmeden canlı sistemde işlem yapmak (örneğin gerçek formu defalarca göndermek) mükerrer kayıt doğurur. Son olarak, otomasyonu sahipsiz bırakmak: arayüzler değişir, betiklerin sahibi ve izleme düzeni olmalıdır.

Bu beceriyi Mindset programlarında nerede çalışırsınız?

Browser Agent ve Web Otomasyonu programının modül başlıkları şunlardır: browser automation temelleri, yapay zeka destekli tarayıcı kontrolü, web kazıma ve veri toplama, form doldurma ve iş süreci otomasyonu, güvenlik, etik ve yasal uyum, kurumsal uygulama senaryoları. Bu başlıklar bu sayfadaki akışı ve sınırları kapsar.

Python ile Robotic Process Automation (RPA) Eğitimi programı ise Python temellerinden başlayıp web kazıma, GUI otomasyonu, belge, PDF ve veritabanı otomasyonuna uzanır. Tarayıcıdan alınan verinin sonraki işlere aktarıldığı akışları kurmak isteyen operasyon ve raporlama ekipleri için uygun bir zemindir.

İlgili Mindset programı

Python ile Robotic Process Automation ( RPA ) Eğitimi

Sık sorulanlar

Sık sorulan sorular

Selenium mu Playwright mı öğrenmeliyim?

İkisi de tarayıcıyı kontrol eder. Selenium'un geniş topluluğu ve çok sayıda mevcut örneği vardır; Playwright otomatik bekleme ve yerleşik ekran görüntüsü gibi kolaylıklar sunar. Sıfırdan başlıyorsanız Playwright'ın kurulumu ve kullanımı genellikle daha sadedir, ancak iş yerinde kullanılan araç belirleyici olabilir.

Tarayıcıyı görünmeden (headless) çalıştırmak mümkün mü?

Mümkündür ve sunucuda çalışan otomasyonlar için yaygındır. Betik ekranı olmayan bir ortamda tarayıcıyı arka planda sürer. Geliştirme sırasında tarayıcıyı görünür çalıştırıp adımları izlemek, hataları bulmayı kolaylaştırır; üretimde ekransız moda geçilir.

Web otomasyonu ile web kazıma aynı şey mi?

Aynı değildir ama kesişir. Web otomasyonu, tarayıcıda yapılan işlemleri (giriş, tıklama, form) otomatikleştirir; web kazıma, sayfalardan veri toplamaya odaklanır. Dinamik sayfalarda kazıma için de tarayıcı otomasyonu kullanılır. Her ikisinde de site kuralları ve mevzuat önceden değerlendirilmelidir.

Betiğim sık sık bozuluyor, ne yapmalıyım?

Seçicileri kararlı özniteliklere bağlayın, sabit bekleme yerine koşullu bekleme kullanın ve her adımdan sonra durumu doğrulayın. Hata anında ekran görüntüsü kaydedin. Mümkünse sitenin API ya da dışa aktarma seçeneğini kullanmak, arayüz değişikliklerine bağımlılığı tamamen ortadan kaldırır.

Giriş yapılan sitelerde parolayı nasıl saklamalıyım?

Kodun içine yazmayın. Ortam değişkenleri ya da gizli bilgi yönetim aracı kullanın ve otomasyon için ayrı, sınırlı yetkili bir hesap tanımlayın. Çok adımlı doğrulama olan sitelerde süreç ayrıca planlanmalı; koruma mekanizmasını aşmak yerine sağlayıcının önerdiği entegrasyon yolu araştırılmalıdır.

Python ile Tarayıcı Otomasyonu: Selenium ve Playwright