Hoşgeldin Misafir

Selenium CloudFlare Bypass Yöntemi

xS0N3R

23 Ağu 2020
5,424 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Herkese merhaba cloudflare bypass hakkında yeni bir yöntem buldum & sonuçları sizinle paylaşmak istedim
Kodumuz burada Selenium kütüphanesini kullanarak CloudFlare captha 'yı çözüyor & çözme işlemini gerçekleşirken buton ID 'sine otomatik olarak tıklama işlemi gerçekleşiyor bu işlemler gerçekleşirken arka planda Chrome tarayıcısı açılıyor. Neden açtırıyoruz derseniz yaptığımız işlemin sonucunu görmek için. Bu kodlar en temel hali olduğu için siz daha çok geliştireceğinize yürekten inanıyorum. Selenium kütüphanesini NuGet üzerinden projenize entegre etmeyi unutmayın...

[ GÖRSEL GÖSTERİM ]

m9frj3o.PNG



Kütüphanelerimiz


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Chrome;
using System.Threading.Tasks;
using System.Windows.Forms;

Ardından formumuza bir adet buton ekleyelim & aşağıdaki kodları girelim.

C#:
var options = new ChromeOptions();
options.AddArguments("--disable-blink-features=AutomationControlled");
options.AddArguments("start-maximized");
options.AddExcludedArgument("enable-automation");
options.AddAdditionalOption("useAutomationExtension", false);

var driver = new ChromeDriver(options);
driver.ExecuteScript("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})");

driver.Navigate().GoToUrl("https://nopecha.com/captcha/turnstile");

try
{
    // WebDriverWait ile butonun yüklenmesini bekle (maksimum 10 saniye)
    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
    IWebElement button = wait.Until(d => d.FindElement(By.Id("example-container5"))); // Butonu ID ile bul

    button.Click(); // Butona tıkla
    Console.WriteLine("Butona başarıyla tıklandı!");
}
catch (Exception ex)
{
    Console.WriteLine("Hata oluştu: " + ex.Message);
}

Buton ID 'sini bulmak için açılan Chrome tarayıcısı üzerinde ögeyi denetle diyerek bulabilirsiniz.

[ SONUÇ ]


g7g997x.PNG


Görüldüğü üzere sonuç başarılı..

NOT
Eğer ID yoksa name="terms" gibi bir name özelliği varsa

C#:
IWebElement checkbox = wait.Until(d => d.FindElement(By.Name("terms")));

Eğer class="checkbox-class" gibi bir class özelliği varsa

C#:
IWebElement checkbox = wait.Until(d => d.FindElement(By.ClassName("checkbox-class")));

XPath ile bir checkbox bulmak isterseniz

C#:
IWebElement checkbox = wait.Until(d => d.FindElement(By.XPath("//input[@type='checkbox']")));

Kodlarını kullanarak butona tıklatmanız mümkün. Önerim XPath kullanmanız zira kesin sonuç alırsınız diye düşünüyorum
 

Graves

Graves

Karanlık Özgürlüktür
Moderator
9 Eki 2024
10,448 Mesaj
TIM Görevleri
2

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Herkese merhaba cloudflare bypass hakkında yeni bir yöntem buldum & sonuçları sizinle paylaşmak istedim
Kodumuz burada Selenium kütüphanesini kullanarak CloudFlare captha 'yı çözüyor & çözme işlemini gerçekleşirken buton ID 'sine otomatik olarak tıklama işlemi gerçekleşiyor bu işlemler gerçekleşirken arka planda Chrome tarayıcısı açılıyor. Neden açtırıyoruz derseniz yaptığımız işlemin sonucunu görmek için. Bu kodlar en temel hali olduğu için siz daha çok geliştireceğinize yürekten inanıyorum. Selenium kütüphanesini NuGet üzerinden projenize entegre etmeyi unutmayın...

[ GÖRSEL GÖSTERİM ]

m9frj3o.PNG



Kütüphanelerimiz

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Chrome;
using System.Threading.Tasks;
using System.Windows.Forms;

Ardından formumuza bir adet buton ekleyelim & aşağıdaki kodları girelim.

C#:
var options = new ChromeOptions();
options.AddArguments("--disable-blink-features=AutomationControlled");
options.AddArguments("start-maximized");
options.AddExcludedArgument("enable-automation");
options.AddAdditionalOption("useAutomationExtension", false);

var driver = new ChromeDriver(options);
driver.ExecuteScript("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})");

driver.Navigate().GoToUrl("https://nopecha.com/captcha/turnstile");

try
{
    // WebDriverWait ile butonun yüklenmesini bekle (maksimum 10 saniye)
    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
    IWebElement button = wait.Until(d => d.FindElement(By.Id("example-container5"))); // Butonu ID ile bul

    button.Click(); // Butona tıkla
    Console.WriteLine("Butona başarıyla tıklandı!");
}
catch (Exception ex)
{
    Console.WriteLine("Hata oluştu: " + ex.Message);
}

Buton ID 'sini bulmak için açılan Chrome tarayıcısı üzerinde ögeyi denetle diyerek bulabilirsiniz.

[ SONUÇ ]


g7g997x.PNG


Görüldüğü üzere sonuç başarılı..

NOT
Eğer ID yoksa name="terms" gibi bir name özelliği varsa

C#:
IWebElement checkbox = wait.Until(d => d.FindElement(By.Name("terms")));

Eğer class="checkbox-class" gibi bir class özelliği varsa

C#:
IWebElement checkbox = wait.Until(d => d.FindElement(By.ClassName("checkbox-class")));

XPath ile bir checkbox bulmak isterseniz

C#:
IWebElement checkbox = wait.Until(d => d.FindElement(By.XPath("//input[@type='checkbox']")));

Kodlarını kullanarak butona tıklatmanız mümkün. Önerim XPath kullanmanız zira kesin sonuç alırsınız diye düşünüyorum
Teşekkürler