Skip to content

Instantly share code, notes, and snippets.

@erenmustafaozdal
Last active June 6, 2023 23:24
Show Gist options
  • Save erenmustafaozdal/3f2c8446870ecaa5d74947d543558f65 to your computer and use it in GitHub Desktop.
Save erenmustafaozdal/3f2c8446870ecaa5d74947d543558f65 to your computer and use it in GitHub Desktop.
Cloudflare anti-bot korumasını aşmak için örnek kodlar
# undetected_chromedriver ve diğer gerekli Selenium modüllerinin içe aktarılması
# undetected_chromedriver yüklemek için: pip install undetected-chromedriver
import undetected_chromedriver as undetected_webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.by import By
# XPATH ve ID seçicileri için değişkenlerin tanımlanması
cloudflare_checkbox = "//div[@id='challenge-stage']/div/label/input[@type='checkbox']"
cookie_accept = "onetrust-accept-btn-handler"
discovery_area = "//div[contains(@class, 'feature-discovery--visible')]"
# undetected_webdriver kütüphanesinden Chrome() sınıfı kullanılarak tarayıcının başlatılması
driver = undetected_webdriver.Chrome()
# Tarayıcı penceresini tam boyutlu hale getirme
driver.maximize_window()
# Belirtilen URL'ye yönlendirme
driver.get("https://www.sahibinden.com/satilik-daire")
# İstediğimiz şart gerçekleşene kadar beklemek için bir bekleme nesnesi oluşturma
wait = WebDriverWait(driver, 30)
# Bir iframe'in hazır olmasını bekleme ve içerisine geçiş yapma
# Bu iframe CloudFlare'in bot olmadığımızı doğrulama işleminin yapıldığı yer
wait.until(ec.frame_to_be_available_and_switch_to_it((By.TAG_NAME, "iframe")))
# Cloudflare güvenlik doğrulama onay kutusunu seçme ve tıklama
wait.until(ec.presence_of_element_located((By.XPATH, cloudflare_checkbox))).click()
# Ana çerçeveye geri dönme
driver.switch_to.parent_frame()
# Çerez bildirimini kabul etmek için bir öğeyi tıklama (JavaScript kullanarak)
driver.execute_script(
"arguments[0].click();",
wait.until(ec.element_to_be_clickable((By.ID, cookie_accept)))
)
# Keşif alanının görünür olmasını bekleyerek ve tıklayarak kapatma
wait.until(ec.visibility_of_element_located((By.XPATH, discovery_area))).click()
# Diğer işlemler...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment