เลี่ยงแคปต์ชาโดยใช้ C#

เลี่ยงแคปต์ชาโดยใช้ C#
โลโก้ „C#“
  • โลโก้ „PHP“
  • โลโก้ „Python“
  • โลโก้ „Java“
  • โลโก้ „C#“
  • โลโก้ „Ruby“
  • โลโก้ „Golang“
  • โลโก้ „JavaScript“

ผสมผสานไลบรารี C # สำหรับการพิมพ์แคปต์ชาอัตโนมัติ API สามารถรวมเข้ากับสคริปต์ใดก็ได้

แพ็คเกจ CSharp เพื่อการผสานรวมกับ API ของ 2Captcha ได้ง่าย บริการแก้แคปต์ชาเพื่อเลี่ยงผ่าน reCAPTCHA, Arkose captcha, Geetest และแก้แคปต์ชาอื่นๆ

เริ่มต้นอย่างรวดเร็ว

การติดตั้ง

แพ็คเกจสคริปต์สามารถติดตั้งได้โดยใช้ตัวติดตั้งแพ็คเกจหรือด้วยตนเอง

NuGet

ในการติดตั้งแพ็คเกจไลบรารีโดยอัตโนมัติ คุณต้องใช้โซลูชันมาตรฐานสำหรับแพ็คเกจ CSharp - NuGet ดาวน์โหลดจาก ลิงค์ และติดตั้งตามคำแนะนำ หลังจากติดตั้งแอปพลิเคชั่นแล้ว ให้ติดตั้งที่จำเป็น แพ็คเกจไลบราลี่

ขอเชิญคุณสำรวจ GitHub พื้นที่เก็บข้อมูลที่คุณสามารถค้นหาไลบรารีและโมดูลสำหรับการผสานรวมกับ API ของเราได้อย่างง่ายดาย

การกำหนดค่า

คำอธิบายที่จำเป็นทั้งหมดของพารามิเตอร์เพื่อกำหนดค่าแพ็คเกจที่ติดตั้ง

ตัวอย่างของคลาส TwoCaptcha สามารถสร้างได้ดังนี้

TwoCaptcha solver = new TwoCaptcha('YOUR_API_KEY');

คุณยังสามารถปรับแต่งตัวเลือกบางอย่างสำหรับตัวอย่างที่สร้างขึ้นได้:

solver.SoftId = 123;
solver.Callback = "https://your.site/result-receiver";
solver.DefaultTimeout = 120;
solver.RecaptchaTimeout = 600;
solver.PollingInterval = 10;
ตัวเลือกอินสแตนซ์ TwoCaptcha
ตัวเลือกค่าเริ่มต้นคำอธิบาย
softId-รหัสซอฟต์แวร์ของคุณที่ได้รับหลังจากเผยแพร่ใน 2Captcha แคตตาล็อกซอฟต์แวร์
โทรกลับ-URL ของเว็บเซิร์ฟเวอร์ของคุณที่ได้รับผลการจดจำแคปต์ชา URL ควรลงทะเบียนครั้งแรกใน การตั้งค่า pingback ของบัญชีของคุณ
defaultTimeout120หมดเวลาโพลเป็นวินาทีสำหรับแคปต์ชาทุกประเภท ยกเว้น reCAPTCHA กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API
recaptchaTimeout600หมดเวลาโพลสำหรับ reCAPTCHA ในไม่กี่วินาที กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API
pollingInterval10ช่วงเวลาเป็นวินาทีระหว่างคำขอถึง res.php ปลายทาง API ไม่แนะนำให้ตั้งค่าน้อยกว่า 5 วินาที
สำคัญ: เมื่อcallback ถูกกำหนดไว้สำหรับ TwoCaptcha ตัวอย่างเช่น วิธีทั้งหมดจะคืนค่าเฉพาะ captcha ID และอย่าสำรวจ API เพื่อรับผลลัพธ์ ผลลัพธ์จะถูกส่งไปยัง callback URL เพื่อรับคำตอบด้วยตนเอง ใช้ วิธีรับผลลัพธ์

แก้ไขแคปต์ช่า

เมื่อคุณกดการใช้แคปต์ช่าแบบรูปภาพจะมีตัวเลือกเพิ่มเติมเพื่อช่วย 2Captcha พนักงานแก้ไขให้ถูกต้อง

ตัวเลือกแคปต์ช่า
ตัวเลือกค่าเริ่มต้นคำอธิบาย
numeric0กำหนดว่าแคปต์ชามีตัวเลขหรือสัญลักษณ์อื่นหรือไม่ ดูข้อมูลเพิ่มเติมในเอกสาร API
minLength0ความยาวของคำตอบขั้นต่ำ
maxLength0ความยาวของคำตอบสูงสุด
phrase0กำหนดว่าคำตอบมีหลายคำหรือไม่
caseSensitive0กำหนดว่าคำตอบนั้นคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หรือไม่
calc0กำหนดแคปต์ชาที่ต้องคำนวณ
lang-กำหนดภาษาแคปต์ชา ดู รายการภาษาที่รองรับ
hintImg-รูปภาพพร้อมคำใบ้ที่โชว์ให้พนักงานที่มีแคปต์ชา
hintText-คำใบ้หรือข้อความงานที่แสดงต่อผู้ปฏิบัติงานด้วยแคปต์ชา

ตัวอย่างเบื้องต้น

ตัวอย่างด้านล่างแสดงตัวอย่างการเรียกโปรแกรมแก้ไขขั้นพื้นฐานพร้อมจัดการข้อผิดพลาด

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);
}
simpleCaptcha

ในการเลี่ยงผ่านแคปต์ชาปกติ (ข้อความบนภาพบิดเบี้ยว) ให้ใช้วิธีต่อไปนี้ วิธีนี้สามารถใช้เพื่อตรวจสอบข้อความบนรูปภาพได้

Normal captcha = new Normal();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetNumeric(4);
captcha.SetMinLen(4);
captcha.SetMaxLen(20);
captcha.SetPhrase(true);
captcha.SetCaseSensitive(true);
captcha.SetCalc(false);
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Type red symbols only");
แคปต์ช่าข้อความ

วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาที่ต้องตอบคำถามที่ระบุเป็นข้อความที่ชัดเจน

recaptchaV2

ใช้วิธีนี้เพื่อแก้ปัญหา reCAPTCHA V2 และรับโทเค็นเพื่อเลี่ยงการป้องกัน

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");
recaptchaV3

เมธอดที่จัดเตรียมโปรแกรมแก้ไขปัญหา reCAPTCHA V3 และส่งคืนโทเค็น

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

วิธีการแก้ FunCaptcha (Arkoselabs) ส่งคืนโทเค็น

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

วิธีแก้ไขปัญหา GeeTest puzzle Captcha โดยส่งกลับชุดของโทเค็นเป็น JSON

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");
keyChptcha

วิธีการที่ใช้โทเค็นเพื่อแก้ปัญหา KeyCaptcha

capy

วิธีที่ใช้โทเค็นเพื่อเลี่ยงผ่านแคปต์ชา Capy puzzle

Capy captcha = new Capy();
captcha.SetSiteKey("PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v");
captcha.SetUrl("https://www.mysite.com/captcha/");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
grid

วิธี Grid เรียกว่าวิธี Old reCAPTCHA V2 วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาประเภทใดก็ได้ ซึ่งคุณสามารถใช้กริดกับรูปภาพและจำเป็นต้องคลิกช่องกริดเฉพาะ ส่งกลับจำนวนกล่อง

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");
canvas

คุณสามารถใช้วิธี Canvas เมื่อคุณต้องการวาดเส้นรอบวัตถุบนรูปภาพ ส่งกลับชุดพิกัดของจุดเพื่อวาดรูปหลายเหลี่ยม

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

วิธี ClickCaptcha จะคืนค่าพิกัดของจุดบนรูปภาพแคปต์ชา สามารถใช้ได้หากต้องการคลิกเฉพาะจุดบนภาพ

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");
หมุนแคปต์ช่า

วิธีนี้สามารถใช้แก้แคปต์ชาที่ขอให้หมุนวัตถุได้ ส่วนใหญ่ใช้เพื่อเลี่ยงผ่าน FunCaptcha ส่งกลับมุมการหมุน

วิธีอื่นๆ

วิธีการที่ถูกต้องเพิ่มเติมที่ใช้ในระหว่างการทำงานของสคริปต์หลัก

send / getResult

วิธีการเหล่านี้สามารถใช้สำหรับการส่งแคปต์ช่าด้วยตนเองและการตอบแบบสำรวจความคิดเห็น

string captchaId = await solver.Send(captcha);

Task.sleep(20 * 1000);

string code = await solver.GetResult(captchaId);

balance

ใช้วิธีนี้เพื่อรับยอดเงินในบัญชีของคุณ

double balance = await solver.Balance();

report

ใช้วิธีนี้เพื่อรายงานคำตอบแคปต์ช่าที่ดีหรือไม่ดี

await solver.Report(captcha.Id, true); // captcha solved correctly
await solver.Report(captcha.Id, false); // captcha solved incorrectly

การจัดการข้อผิดพลาด

ข้อผิดพลาดมาตรฐานที่เป็นไปได้ที่ส่งคืนโดยบริการเมื่อประมวลผลคำขอ

หากตัวแก้ไขแคปต์ชาเกิดข้อผิดพลาดมีความผิดปกติ การจัดการกรณีเหล่านี้อย่างเหมาะสมจึงเป็นสิ่งสำคัญ เราแนะนำให้ใช้ try/catch เพื่อจัดการกับข้อยกเว้น

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
}

ภาษาอื่นๆ สำหรับการรวมกับบริการ API