Herkese hayırlı sabahlar aşağıdaki göstereceğim alıntı yüzünden yeni bir yöntem buldum & sonuçları sizinle paylaşmak istedim. Bir önceki konumu bana tıkla bu adresten giderek okuyabilirsiniz.
Kodda API'ye yollanan request, post istekleri haricinde detaylı bir şey göremiyorum.
API sayesinde Captcha bypass gerçekleşiyor, bypass işlemini manuel yapmıyorsun.
Aşağıda açılan konudan farkı nedir?
C# CloudFlare Bypass [ Zenrows API ]
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 ]
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Ç ]
Görüldüğü üzere sonuç başarılı..
Görüldüğü üzere sonuç başarılı..
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.
Son düzenleme:




