Hoşgeldin Misafir

Python ile kodlanmış selenium

xS0N3R

23 Ağu 2020
5,424 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Python'da Selenium kullanarak web otomasyonu yapabiliriz. Özellikle test otomasyonu, veri çekme (web scraping) ve bot yazılımı için kullanılır.

1) Selenium Kurulumu

Python:
pip install selenium

Ayrıca, kullanacağın tarayıcı için uygun WebDriver'ı indirmelisin:

Chrome için: ChromeDriver
Firefox için: GeckoDriver

WebDriver dosyasını indirip Python dosyanla aynı dizine koyabilirsin veya PATH'e ekleyebilirsin.

2) Tarayıcıyı Açma ve Siteye Gitme

Python:
from selenium import webdriver

driver = webdriver.Chrome()  # ChromeDriver'ı kullanıyoruz

driver.get("Google")  # Google'ı aç

Eğer tarayıcıyı gizli (headless) modda açmak istersen:

Python:
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")  # Tarayıcıyı görünmez çalıştırır
driver = webdriver.Chrome(options=options)
driver.get("Google")

3) Sayfa Üzerinde İşlemler
Web sayfasındaki elementleri seçip işlem yapabiliriz.

Bir Butona Tıklama

Python:
from selenium.webdriver.common.by import By
driver.get("Welcome to Python.org")
buton = driver.find_element(By.LINK_TEXT, "Downloads")
buton.click()  # Butona tıkla

Metin Girişi (Form Doldurma)

Python:
search_box = driver.find_element(By.NAME, "q")  # Arama kutusunu seç
search_box.send_keys("Selenium Python")  # Metin yaz
search_box.submit()  # Enter tuşuna bas


4) XPath ve CSS Selector Kullanımı

Bazen elementleri seçerken XPath veya CSS Selector kullanmak gerekebilir.

Python:
element = driver.find_element(By.XPATH, "//input[@name='q']")  # XPath ile seçme
element = driver.find_element(By.CSS_SELECTOR, "input[name='q']")  # CSS Selector ile seçme

5) Sayfadan Veri Çekme (Web Scraping)

Python:
titles = driver.find_elements(By.TAG_NAME, "h2")  # Tüm h2 etiketlerini al
for title in titles:

   print(title.text)  # Başlıkları ekrana yazdır

6) Sayfa Kaydırma

Python:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")  # Sayfanın en altına kaydır

7) Beklemeler (Waits)

Bazı sitelerde elementlerin yüklenmesini beklemek gerekebilir.

Sabit Bekleme (sleep)

Python:
import time

time.sleep(3)  # 3 saniye bekle

Dinamik Bekleme (Explicit Waits)
Python:
from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC



wait = WebDriverWait(driver, 10)

element = wait.until(EC.presence_of_element_located((By.ID, "element_id")))

8) Çerezleri Yönetme

Python:
cookies = driver.get_cookies()  # Mevcut çerezleri al

driver.add_cookie({"name": "test_cookie", "value": "12345"})  # Yeni çerez ekle

9) Dosya Yükleme ve İndirme

Python:
file_input = driver.find_element(By.NAME, "file")

file_input.send_keys("/path/to/file.txt")  # Dosya yükle

10) Tarayıcıyı Kapatma

Python:
driver.quit()  # Tarayıcıyı tamamen kapat

Küçük Bir Proje: Google'da Arama Yapıp Sonuçları Çekme

Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.get("Google")
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python Selenium")
search_box.send_keys(Keys.RETURN)
time.sleep(3)

results = driver.find_elements(By.CSS_SELECTOR, "h3")

for result in results:



   print(result.text)

driver.quit()