Last active
June 6, 2023 23:24
-
-
Save erenmustafaozdal/3f2c8446870ecaa5d74947d543558f65 to your computer and use it in GitHub Desktop.
Cloudflare anti-bot korumasını aşmak için örnek kodlar
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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