DOLAR 38,7786 0.39%
EURO 43,8944 0.27%
ALTIN 4.142,720,97
BITCOIN 40538471.24631%
İstanbul
18°

KAPALI

SABAHA KALAN SÜRE

Selenium ile Otomatik Form Doldurma (Python)
254 okunma

Selenium ile Otomatik Form Doldurma (Python)

ABONE OL
Nisan 5, 2025 09:11
Selenium ile Otomatik Form Doldurma (Python)
0

BEĞENDİM

ABONE OL

Python Web üzerinde formlar, kullanıcıdan veri toplamak için yaygın olarak kullanılan araçlardır. Bu formlar, kaydolma, giriş yapma, ödeme yapma ve daha birçok işlemi gerçekleştirmek için kullanılabilir. Ancak, manuel olarak bu formları doldurmak zaman alıcı olabilir. Neyse ki, Selenium kullanarak formları otomatikleştirebilirsiniz.

Selenium, Python gibi dillerle kullanılabilen popüler bir web otomasyon aracıdır. Bu yazıda, Selenium kullanarak otomatik form doldurma işlemi için bir Python scripti yazacağız.


1. Selenium Nedir?

Selenium, web tarayıcılarını otomatikleştirmek için kullanılan açık kaynaklı bir araçtır. Web sayfalarını simüle eder ve tıklamalar, yazı yazma gibi kullanıcı etkileşimlerini otomatikleştirir. Python’da Selenium, testler yapmanın yanı sıra web sayfalarını analiz etme ve verileri çekme gibi işlemler için de kullanılır.


2. Selenium ile Form Doldurma İçin Gerekli Adımlar

Aşağıdaki adımlarla Selenium kullanarak bir formu nasıl otomatik doldurabileceğimizi inceleyeceğiz:

Gereksinimler

  1. Python Kurulumu: Python, Selenium ile çalışmak için gereklidir.
  2. Selenium Kütüphanesi: Selenium’u yüklemek için aşağıdaki komutu kullanabilirsiniz: pip install selenium
  3. WebDriver İndirimi: Selenium’un web tarayıcısıyla etkileşimde bulunabilmesi için WebDriver’a ihtiyacınız olacak. Chrome kullanıyorsanız, ChromeDriver‘ı indirmeniz gerekir:

3. Otomatik Form Doldurma Scripti

Aşağıda, Selenium kullanarak basit bir web formunu nasıl otomatik dolduracağınızı gösteren bir Python scripti bulabilirsiniz. Bu örnekte, örnek bir kayıt formunu dolduracağız.

Örnek Form Web Sayfası:

Diyelim ki, aşağıdaki gibi bir formunuz var:

  • Ad: Text input
  • E-posta: Text input
  • Şifre: Password input
  • Cinsiyet: Radio button
  • Hobi: Checkbox
  • Gönder: Submit button

Python Scripti:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# WebDriver yolunu belirtin (ChromeDriver)
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# Web sitesine gidin
driver.get("https://example.com/register")  # Kendi form sayfanızın URL'sini kullanın

# Formdaki öğeleri bulmak
# Ad alanını bulun ve adınızı yazın
name_field = driver.find_element(By.NAME, "name")
name_field.send_keys("John Doe")

# E-posta alanını bulun ve e-posta adresinizi yazın
email_field = driver.find_element(By.NAME, "email")
email_field.send_keys("johndoe@example.com")

# Şifre alanını bulun ve şifrenizi yazın
password_field = driver.find_element(By.NAME, "password")
password_field.send_keys("securepassword123")

# Cinsiyet radio butonunu seçin
gender_radio = driver.find_element(By.ID, "gender_male")
gender_radio.click()

# Hobi checkbox'ını işaretleyin
hobby_checkbox = driver.find_element(By.ID, "hobby_sports")
hobby_checkbox.click()

# Formu gönderin
submit_button = driver.find_element(By.ID, "submit_button")
submit_button.click()

# 5 saniye bekleyin
time.sleep(5)

# İşlem tamamlandığında tarayıcıyı kapatın
driver.quit()

Açıklamalar:

  • WebDriver: Web tarayıcısını açmak ve kontrol etmek için webdriver.Chrome() fonksiyonunu kullanıyoruz.
  • find_element: Formdaki öğelere erişmek için kullanılan yöntemdir. Bu metodla form elemanlarını bulup onlarla etkileşime geçebilirsiniz. Burada By.NAME, By.ID, By.XPATH gibi seçiciler kullanarak öğeleri buluyoruz.
  • send_keys(): Belirtilen metni bir giriş alanına (input) gönderir.
  • click(): Bir öğe üzerinde tıklama işlemi yapar (örneğin, radio butonları veya submit butonları için kullanılır).
  • time.sleep(): Sayfanın işlemi tamamlaması için belirli bir süre bekleriz. Bu, işlemin doğru bir şekilde yapılabilmesi için önemlidir.

4. Test ve Çalıştırma

  1. WebDriver Konfigürasyonu: Yukarıdaki scriptte '/path/to/chromedriver' kısmına, sisteminize uygun olan ChromeDriver yolunu belirtmeniz gerekiyor.
  2. Form URL’si: Scriptte "https://example.com/register" olarak belirtilen form sayfası URL’sini, otomatik doldurmak istediğiniz gerçek form sayfası ile değiştirmeniz gerekir.
  3. Form Elemanları: Form elemanlarının ID’leri, NAME’leri veya XPATH’leri, her web sitesine göre değişir. Bu nedenle, gerçek formda her alanın doğru seçici ile tanımlandığından emin olun.

5. Hedef Web Sayfasına Gönderim Yaparken Dikkat Edilmesi Gerekenler

  • Sayfa Yüklenmesi: Web sayfası yavaş yükleniyorsa, time.sleep() gibi bekleme komutları ile sayfanın tam olarak yüklenmesini bekleyebilirsiniz. Alternatif olarak, WebDriverWait kullanarak daha dinamik beklemeler oluşturabilirsiniz.
  • Captcha ve Güvenlik Önlemleri: Çoğu form, botların otomatik doldurma işlemi yapmasını engellemek için Captcha gibi güvenlik önlemleri kullanır. Bu tür bir durumda, formu otomatik doldurmak etik ve yasal olmayabilir.
  • Web Sitenizin Kullanıcı Sözleşmesi: Otomatik form doldurmanın, web sitesinin kullanıcı sözleşmesine aykırı olmadığından emin olun.

6. Ekstra İpuçları

  • WebDriverWait Kullanımı: Sayfa yükleme süresi değişken olduğunda, time.sleep() yerine WebDriverWait kullanarak bekleme süresini dinamik hale getirebilirsiniz. from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # Örnek: Submit butonunun tıklanabilir olmasını bekleyin submit_button = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.ID, "submit_button")) ) submit_button.click()
  • Formu Temizleme: Eğer formu birden fazla kez doldurmanız gerekiyorsa, her seferinde önce formu temizlemek faydalı olabilir. Bu, her alanı clear() metodu ile temizlemenizi sağlar: name_field.clear() email_field.clear() password_field.clear()

En az 10 karakter gerekli


HIZLI YORUM YAP
300x250r
300x250r