C# kullanarak captcha'yı atla
Otomatik captcha yazmak için C# kitaplığını entegre edin. API, herhangi bir komut dosyasına entegre edilebilir.
reCAPTCHA, Arkose captcha, GeetestAtlamak için 2Captcha captcha çözme hizmetinin API'si ile kolay entegrasyon için CSharp paketi ve diğer captcha'ları çözün
Hızlı başlangıçKurulum
Komut dosyası paketi, paket yükleyici kullanılarak veya manuel olarak kurulabilir.
NuGet
Bir kitaplık paketini otomatik olarak kurmak için CSharp paketleri için standart bir çözüm olan NuGet'i kullanmanız gerekir. bağlantıdan indirin ve talimatlara göre kurun. Uygulamayı yükledikten sonra, gerekli kütüphane paketini kurun
Sizi, aşağıdakiler için kitaplıklar ve modüller bulabileceğiniz GitHub depomuzu keşfetmeye davet ediyoruz. API'miz ile kolay entegrasyon.
Yapılandırma
Kurulu paketi yapılandırmak için gerekli tüm parametrelerin açıklaması
TwoCaptcha
sınıfının bir örneği şu şekilde oluşturulabilir:
TwoCaptcha solver = new TwoCaptcha('YOUR_API_KEY');
Ayrıca, oluşturulan örnek için bazı seçenekleri özelleştirebilirsiniz:
solver.SoftId = 123;
solver.Callback = "https://your.site/result-receiver";
solver.DefaultTimeout = 120;
solver.RecaptchaTimeout = 600;
solver.PollingInterval = 10;
TwoCaptcha örnek seçenekleri
Seçenek | Varsayılan değer | Tanım |
---|---|---|
softId | - | 2Captcha yazılım kataloğunda yayınladıktan sonra elde edilen yazılım kimliğiniz |
callback | - | Captcha tanıma sonucunu alan web sunucunuzun URL'si. URL önce hesabınızın pingback ayarlarına kaydedilmelidir. |
varsayılanZaman aşımı | 120 | reCAPTCHA dışındaki tüm captcha türleri için saniye cinsinden yoklama zaman aşımı. Modülün yanıtı res.php API uç noktasından ne kadar süreyle almaya çalıştığını tanımlar. |
recaptchaZamanaşımı | 600 | Saniye cinsinden reCAPTCHA için yoklama zaman aşımı. Modülün yanıtı res.php API uç noktasından ne kadar süreyle almaya çalıştığını tanımlar. |
yoklamaAralığı | 10 | res.php API uç noktasına yapılan istekler arasındaki saniye cinsinden aralık, değerlerin 5 saniyeden kısa ayarlanması önerilmez |
ÖNEMLİ:callback
,TwoCaptcha
örneği için tanımlandıktan sonra, tüm yöntemler yalnızca captcha kimliğini ve DO'yu döndürür Sonucu almak için API'yi yoklamayın. Sonuç, geri arama URL'sine gönderilecektir. Cevabı manuel olarak almak için Sonucu al yöntemini kullanın.
Captcha'yı çöz
Herhangi bir resim tabanlı captcha gönderdiğinizde, 2Captcha çalışanlarının sorunu düzgün bir şekilde çözmesine yardımcı olacak ek seçenekler sunabilir.
Captcha seçenekleri
Seçenek | Varsayılan değer | Tanım |
---|---|---|
sayısal | 0 | Captcha'nın sayısal veya başka simgeler içerip içermediğini tanımlar API belgelerinde daha fazla bilgi görün |
minUzunluk | 0 | minimum cevap uzunluğu |
maksUzunluk | 0 | maksimum cevap uzunluğu |
ifade | 0 | cevabın birden fazla kelime içerip içermediğini tanımlar |
harfe duyarlı | 0 | cevabın büyük/küçük harfe duyarlı olup olmadığını tanımlar |
hesapla | 0 | captcha'yı tanımlar hesaplama gerektirir |
dil | - | captcha dilini tanımlar, desteklenen dillerin listesine bakın |
hintImg | - | captcha ile çalışanlara gösterilen ipucu içeren bir resim |
ipucu Metin | - | captcha ile çalışanlara gösterilen ipucu veya görev metni |
Temel örnek
Aşağıdaki örnek, hata işleme ile temel bir çözücü çağrısı örneğini göstermektedir.
Normal captcha = new Normal();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetMinLen(4);
captcha.SetMaxLen(20);
captcha.SetCaseSensitive(true);
captcha.SetLang("en");
try
{
await solver.Solve(captcha);
Console.WriteLine("Captcha solved: " + captcha.Code);
}
catch (Exception e)
{
Console.WriteLine("Error occurred: " + e.Message);
}
- Normal Captcha
- Text Captcha
- reCAPTCHA v2
- reCAPTCHA v3
- FunCaptcha
- GeeTest
- KeyCaptcha
- Capy
- Grid
- Canvas
- ClickCaptcha
- Döndür
Normal bir captcha'yı (görüntüdeki bozuk metin) atlamak için aşağıdaki yöntemi kullanın. Bu yöntem aynı zamanda görüntüdeki herhangi bir metni tanımak için de kullanılabilir.
Bu yöntem, açık metin olarak sağlanan bir soruyu yanıtlamayı gerektiren bir captcha'yı atlamak için kullanılabilir.
reCAPTCHA V2'yi çözmek ve korumayı atlamak için bir belirteç almak için bu yöntemi kullanın.
ReCaptcha captcha = new ReCaptcha();
captcha.SetSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
captcha.SetUrl("https://mysite.com/page/with/recaptcha");
captcha.SetInvisible(true);
captcha.SetAction("verify");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
Bu yöntem, reCAPTCHA V3 çözücü sağlar ve bir belirteç döndürür.
ReCaptcha captcha = new ReCaptcha();
captcha.SetSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
captcha.SetUrl("https://mysite.com/page/with/recaptcha");
captcha.SetVersion("v3");
captcha.SetDomain("google.com");
captcha.SetAction("verify");
captcha.SetScore(0.3);
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
FunCaptcha (Arkoselabs) çözme yöntemi. Bir belirteç döndürür.
FunCaptcha captcha = new FunCaptcha();
captcha.SetSiteKey("69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC");
captcha.SetUrl("https://mysite.com/page/with/funcaptcha");
captcha.SetSUrl("https://client-api.arkoselabs.com");
captcha.SetUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36");
captcha.SetData("anyKey", "anyValue");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
GeeTest bulmacası captcha'yı çözme yöntemi. JSON olarak bir dizi belirteç döndürür.
GeeTest captcha = new GeeTest();
captcha.SetGt("f2ae6cadcf7886856696502e1d55e00c");
captcha.SetApiServer("api-na.geetest.com");
captcha.SetChallenge("12345678abc90123d45678ef90123a456b");
captcha.SetUrl("https://mysite.com/captcha.html");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
KeyCaptcha'yı çözmek için belirteç tabanlı yöntem.
KeyCaptcha captcha = new KeyCaptcha();
captcha.SetUserId(10);
captcha.SetSessionId("493e52c37c10c2bcdf4a00cbc9ccd1e8");
captcha.SetWebServerSign("9006dc725760858e4c0715b835472f22");
captcha.SetWebServerSign2("2ca3abe86d90c6142d5571db98af6714");
captcha.SetUrl("https://www.keycaptcha.ru/demo-magnetic/");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
Capy bulmacası captcha'sını atlamak için jeton tabanlı yöntem.
Capy captcha = new Capy();
captcha.SetSiteKey("PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v");
captcha.SetUrl("https://www.mysite.com/captcha/");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
Grid yöntemi orijinal olarak Eski reCAPTCHA V2 yöntemi olarak adlandırılır. Yöntem, görüntüye bir ızgara uygulayabileceğiniz ve belirli ızgara kutularına tıklamanız gereken herhangi bir tür captcha'yı atlamak için kullanılabilir. Kutu numaralarını döndürür.
Grid captcha = new Grid();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetRows(3);
captcha.SetCols(3);
captcha.SetPreviousId(0);
captcha.SetCanSkip(false);
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Select all images with an Orange");
Kanvas yöntemi, resim üzerinde bir nesnenin çevresine bir çizgi çizmeniz gerektiğinde kullanılabilir. Bir çokgen çizmek için bir dizi noktanın koordinatlarını döndürür.
Canvas captcha = new Canvas();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetPreviousId(0);
captcha.SetCanSkip(false);
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Draw around apple");
ClickCaptcha yöntemi, captcha görüntüsündeki noktaların koordinatlarını döndürür. Resmin belirli noktalarına tıklamanız gerekirse kullanılabilir
Coordinates captcha = new Coordinates();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Select all images with an Orange");
Bu yöntem, bir nesneyi döndürmeyi isteyen bir captcha'yı çözmek için kullanılabilir. Çoğunlukla FunCaptcha'yı atlamak için kullanılır. Dönme açısını döndürür.
Rotate captcha = new Rotate();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetAngle(40);
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Put the images in the correct way up");
Diğer metodlar
Ana komut dosyalarının çalışması sırasında kullanılan ek geçerli yöntemler
send / getResult
Bu yöntemler, manuel captcha gönderimi ve yanıt yoklaması için kullanılabilir.
string captchaId = await solver.Send(captcha);
Task.sleep(20 * 1000);
string code = await solver.GetResult(captchaId);
balance
Hesabınızın bakiyesini almak için bu yöntemi kullanın.
double balance = await solver.Balance();
report
İyi veya kötü captcha yanıtını bildirmek için bu yöntemi kullanın.
await solver.Report(captcha.Id, true); // captcha solved correctly
await solver.Report(captcha.Id, false); // captcha solved incorrectly
Hata yönetimi
İstekler işlenirken hizmet tarafından döndürülen standart hataların olası çeşitleri
Bir hata durumunda, captcha çözücü bir istisna atar. Bu vakaları uygun şekilde ele almak önemlidir. İstisnaları işlemek için dene/yakala
kullanmanızı öneririz.
try
{
await solver.Solve(captcha);
}
catch (ValidationException e)
{
// invalid parameters passed
}
catch (NetworkException e)
{
// network error occurred
}
catch (ApiException e)
{
// api respond with error
}
catch (TimeoutException e)
{
// captcha is not solved so far
}