C# Selenium 2Captcha veya Capmonster API Bağlama

PWX

Üye
19 Eki 2020
117
3
Merhaba kısa keseceğim, C# Selenium kütüphanesi ile Spotify hesap açma otomasyonu geliştiriyorum fakat ReCaptchaları geçmek için api bağlamam gerekiyor.
İnternette ki mevcut tutoriallardan yapmayı beceremedim bu konuda deneyimli olan kişiler yardım edebilirmi?

2Captcha veya Capmonster olmalı sadece bu iki sitede bakiyem mevcut.
 

Starzz

Üye
21 Haz 2015
237
58
Her şeyden önce geçmeye çalıştığın sistemi anla. Google Recaptcha dökümantasyonu içerisinde (verdiğim linke tıkla) bir örnek mevcut. Burada web sitemize nasıl Recaptcha ekleyebileceğimizi söylüyor. Recaptcha hesabı açtığın zaman sana bir "secret key" bir de "site key" verir. Bunlar web sitene eklerken kullanırsın.

Bir kullanıcı doğru bir şekilde Recaptcha çözmeyi başarırsa, o html elementinde bir key oluşur. Submit ederken de bunu yollar ve derki, kontrol et bakalım doğru çözmüş mü. Eğer key "evet bu doğru", verisini içeriyorsa geçer.

2Captcha gibi siteler ise bunları otomatik geçeceğini vaat ediyor. Bu tip sistemler sana api verir. Senin yapman gereken bu sistemlerin dökümantasyonunu okuyarak, api bağlantısı kurman. Açıkçası programlama bilgin yoksa çok zorlanırsın.

Burada anlattıklarım teorik biliyorum. Ancak detay bilmeden ve seninde fazla bir şey bilmediğini varsayarak bu kadar oluyor.
 

PWX

Üye
19 Eki 2020
117
3
Her şeyden önce geçmeye çalıştığın sistemi anla. Google Recaptcha dökümantasyonu içerisinde (verdiğim linke tıkla) bir örnek mevcut. Burada web sitemize nasıl Recaptcha ekleyebileceğimizi söylüyor. Recaptcha hesabı açtığın zaman sana bir "secret key" bir de "site key" verir. Bunlar web sitene eklerken kullanırsın.

Bir kullanıcı doğru bir şekilde Recaptcha çözmeyi başarırsa, o html elementinde bir key oluşur. Submit ederken de bunu yollar ve derki, kontrol et bakalım doğru çözmüş mü. Eğer key "evet bu doğru", verisini içeriyorsa geçer.

2Captcha gibi siteler ise bunları otomatik geçeceğini vaat ediyor. Bu tip sistemler sana api verir. Senin yapman gereken bu sistemlerin dökümantasyonunu okuyarak, api bağlantısı kurman. Açıkçası programlama bilgin yoksa çok zorlanırsın.

Burada anlattıklarım teorik biliyorum. Ancak detay bilmeden ve seninde fazla bir şey bilmediğini varsayarak bu kadar oluyor.
Python ve selenium kullanarak capmonstercloud apisi ile captchaları geçebiliyorum, fakat spotifyda invisible olduğu için hata veriyor 2captcha tutorial yazısında bunu style kodundan kaldırın yazmış fakat her seferinde style kodundan onu manuel kaldıramam execute edebileceğim bir js kodu varmı bunun için
 

Starzz

Üye
21 Haz 2015
237
58
Python ve selenium kullanarak capmonstercloud apisi ile captchaları geçebiliyorum, fakat spotifyda invisible olduğu için hata veriyor 2captcha tutorial yazısında bunu style kodundan kaldırın yazmış fakat her seferinde style kodundan onu manuel kaldıramam execute edebileceğim bir js kodu varmı bunun için
Şöyle örnek vereyim.

JavaScript:
document.getElementById("tht").style.display = "none";

Bunu yaparak id'si tht olan elemanı görünürlülüğünü kapatattım. Aynı şekilde "none" yerine "block" yazarsam orası görünür olacak. Yani görünmez olan elementi Google Dev tool element üzeriden bulup, hangi css özelliğinin onu unvisible yaptığını bulursan "none" yazan yere bunun tam tersini yazarak onu görünür yapabilirsin.
 

PWX

Üye
19 Eki 2020
117
3
Şöyle örnek vereyim.

JavaScript:
document.getElementById("tht").style.display = "none";

Bunu yaparak id'si tht olan elemanı görünürlülüğünü kapatattım. Aynı şekilde "none" yerine "block" yazarsam orası görünür olacak. Yani görünmez olan elementi Google Dev tool element üzeriden bulup, hangi css özelliğinin onu unvisible yaptığını bulursan "none" yazan yere bunun tam tersini yazarak onu görünür yapabilirsin.

Bu kodumda hata neresi, capmonster yönetim paneline gidince captcha çözülmüş gözüküyor fakat execute ettikten sonra çözülmüyor.

static async Task Main(string[] args)
{
var clientKey = "key";
var client = new CapMonsterClient(clientKey);

ChromeDriverService service = ChromeDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;
var driver = new ChromeDriver(service);
driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(60);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(60);
driver.Navigate().GoToUrl("ReCAPTCHA demo");
try
{
var captchaTask = new NoCaptchaTaskProxyless
{
WebsiteUrl = "ReCAPTCHA demo",
WebsiteKey = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
};
int taskId = await client.CreateTaskAsync(captchaTask);
Console.WriteLine("Task created successfully, waiting for the response.");
var solution = await client.GetTaskResultAsync<NoCaptchaTaskProxylessResult>(taskId);
var recaptchaResponse = solution.GRecaptchaResponse;
string bruh = recaptchaResponse.ToString();
Console.WriteLine("Response received.");
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript("document.getElementsByClassName('g-recaptcha-response')[0].innerHTML = '{" + bruh + "}';");
Console.WriteLine("Response injected to secret input.");
driver.FindElement(By.Id("recaptcha-demo-submit")).Click();
Console.WriteLine("Form submitted.");

}
catch (CapMonsterException e)
{
Console.WriteLine($"{e.ErrorCode}: {e.ErrorDescription}");
}
Console.ReadLine();
}
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.