บายพาสแคปต์ชาใน JAVA
ใช้ไลบรารี Java เพื่อบายพาสการตรวจสอบแคปต์ชาอย่างรวดเร็ว API อย่างง่ายสำหรับการแก้ปัญหาแคปต์ชา
แพ็คเกจ Java สำหรับการผสานรวมกับ API ของ 2Captcha ได้ง่าย บริการแก้แคปต์ชาเพื่อเลี่ยงผ่าน reCAPTCHA, Arkose captcha, Geetest และแก้แคปต์ชาอื่นๆ
เริ่มต้นอย่างรวดเร็วการติดตั้ง
แพ็คเกจสคริปต์สามารถติดตั้งได้โดยใช้ตัวติดตั้งแพ็คเกจหรือด้วยตนเอง
Maven Central Repository
สามารถใช้ 2captcha-java artifact ใน Maven Central
ขอเชิญสำรวจ GitHub พื้นที่เก็บข้อมูลที่คุณสามารถค้นหาไลบรารี่และโมดูลสำหรับการผสานรวมกับ API ของเราได้อย่างง่ายดาย
การกำหนดค่า
คำอธิบายที่จำเป็นทั้งหมดของพารามิเตอร์เพื่อกำหนดค่าแพ็คเกจที่ติดตั้ง
ตัวอย่างของคลาส TwoCaptcha
สามารถสร้างได้ดังนี้
TwoCaptcha solver = new TwoCaptcha('YOUR_API_KEY');
คุณยังสามารถปรับแต่งตัวเลือกบางอย่างสำหรับตัวอย่างที่สร้างขึ้นได้:
solver.setSoftId(123);
solver.setCallback("https://your.site/result-receiver");
solver.setDefaultTimeout(120);
solver.setRecaptchaTimeout(600);
solver.setPollingInterval(10);
ตัวเลือกอินสแตนซ์ TwoCaptcha
ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
softId | - | รหัสซอฟต์แวร์ของคุณที่ได้รับหลังจากเผยแพร่ใน 2Captcha แคตตาล็อกซอฟต์แวร์ |
โทรกลับ | - | URL ของเว็บเซิร์ฟเวอร์ของคุณที่ได้รับผลการจดจำแคปต์ชา URL ควรลงทะเบียนครั้งแรกใน การตั้งค่า pingback ของบัญชีของคุณ |
defaultTimeout | 120 | หมดเวลาโพลเป็นวินาทีสำหรับแคปต์ชาทุกประเภท ยกเว้น reCAPTCHA กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API |
recaptchaTimeout | 600 | หมดเวลาโพลสำหรับ reCAPTCHA ในไม่กี่วินาท ี กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API |
pollingInterval | 10 | ช่วงเวลาเป็นวินาทีระหว่างคำขอถึง res.php ปลายทาง API ไม่แนะนำให้ตั้งค่าน้อยกว่า 5 วินาที |
สำคัญ: เมื่อcallback
ถูกกำหนดไว้สำหรับTwoCaptcha
ตัวอย่างเช่น วิธีทั้งหมดจะคืนค่าเฉพาะ captcha ID และอย่าสำรวจ API เพื่อรับผลลัพธ์ ผลลัพธ์จะถูกส่งไปยัง callback URL เพื่อรับคำตอบด้วยตนเอง ใช้ วิธีรับผลลัพธ์
แก้ไขแคปต์ช่า
เมื่อคุณกดการใช้แคปต์ช่าแบบรูปภาพจะมีตัวเลือกเพิ่มเติมเพื่อช่วย 2Captcha พนักงานแก้ไขให้ถูกต้อง
ตัวเลือกแคปต์ช่า
ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
numeric | 0 | กำหนดว่าแคปต์ชามีตัวเลขหรือสัญลักษณ์อื่นหรือไม่ ดูข้อมูลเพิ่มเติมในเอกสาร API |
minLength | 0 | ความยาวของคำตอบขั้นต่ำ |
maxLength | 0 | ความยาวของคำตอบสูงสุด |
phrase | 0 | กำหนดว่าคำตอบมีหลายคำหรือไม่ |
caseSensitive | 0 | กำหนดว่าคำตอบนั้นคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หรือไม่ |
calc | 0 | กำหนดแคปต์ชาที่ต้องคำนวณ |
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 {
solver.solve(captcha);
System.out.println("Captcha solved: " + captcha.getCode());
} catch (Exception e) {
System.out.println("Error occurred: " + e.getMessage());
}
- แคปต์ช่าปกติ
- แคปต์ช่าข้อความ
- reCAPTCHA v2
- reCAPTCHA v3
- FunCaptcha
- GeeTest
- KeyCaptcha
- Capy
- Grid
- Canvas
- ClickCaptcha
- หมุน
ในการเลี่ยงผ่านแคปต์ชาปกติ (ข้อความบนภาพบิดเบี้ยว) ให้ใช้วิธีต่อไปนี้ วิธีนี้ส ามารถใช้เพื่อตรวจสอบข้อความบนรูปภาพได้
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 File("path/to/hint.jpg"));
captcha.setHintText("Type red symbols only");
วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาที่ต้องตอบคำถามที่ระบุเป็นข้อความที่ชัดเจน
ใช้วิธีนี้เพื่อแก้ปัญหา 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");
เมธอดที่จัดเตรียมโปรแกรมแก้ไขปัญหา reCAPTCHA V3 และส่งคืนโทเค็น
ReCaptcha captcha = new ReCaptcha();
captcha.setSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
captcha.setUrl("https://mysite.com/page/with/recaptcha");
captcha.setVersion("v3");
captcha.setAction("verify");
captcha.setScore(0.3);
captcha.setProxy("HTTPS", "login:password@IP_address:PORT");
วิธีการแก้ 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 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");
วิธีการที่ใช้โทเค็นเพื่อแก้ปัญหา KeyCaptcha
วิธีที่ใช้โทเค็นเพื่อเลี่ยงผ่านแคปต์ชา 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 เรียกว่าวิธี 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 File("path/to/hint.jpg"));
captcha.setHintText("Select all images with an Orange");
คุณสามารถใช้วิธี Canvas เมื่อคุณต้องการวาดเส้นรอบวัตถุบนรูปภาพ ส่งกลับชุดพิกัดของจุดเพื่อวาดรูปหลายเหลี่ยม
Canvas captcha = new Canvas();
captcha.setFile("path/to/captcha.jpg");
captcha.setPreviousId(0);
captcha.setCanSkip(false);
captcha.setLang("en");
captcha.setHintImg(new File("path/to/hint.jpg"));
captcha.setHintText("Draw around apple");
วิธี ClickCaptcha จะคืนค่าพิกัดของจุดบนรูปภาพแคปต์ชา สามารถใช้ได้หากต้องการคลิกเฉพาะจุดบนภาพ
Coordinates captcha = new Coordinates();
captcha.setFile("path/to/captcha.jpg");
captcha.setLang("en");
captcha.setHintImg(new File("path/to/hint.jpg"));
captcha.setHintText("Select all images with an Orange");
วิธีนี้สามารถใช้แก้แคปต์ชาที่ขอให้หมุนวัตถุได้ ส่วนใหญ่ใช้เพื่อเลี่ยงผ่าน FunCaptcha ส่งกลับมุมการหมุน
วิธีอื่นๆ
วิธีการที่ถูกต้องเพิ่มเติมที่ใช้ในระหว่างการทำงานของสคริปต์หลัก
send / getResult
วิธีการเหล่านี้สามารถใช้สำหรับการส่งแคปต์ช่าด้วยตนเองและการตอบแบบสำรวจความคิดเห็น
String captchaId = solver.send(captcha);
Thread.sleep(20 * 1000);
String code = solver.getResult(captchaId);
balance
ใช้วิธีนี้เพื่อรับยอดเงินในบัญชีของคุณ
double balance = solver.balance();
report
ใช้วิธีนี้เพื่อรายงานคำตอบแคปต์ช่าที่ดีหรือไม่ดี
solver.report(captcha.getId(), true); // captcha solved correctly
solver.report(captcha.getId(), false); // captcha solved incorrectly
การจัดการข้อผิดพลาด
ข้อผิดพลาดมาตรฐานที่เป็นไปได้ที่ส่งคืนโดยบริการเมื่อประมวลผลคำขอ
หากตัวแก้ไขแคปต์ชาเกิดข้อผิดพลาดส่งข้อยกเว้น การจัดการกรณีเหล่านี้อย่างเหมาะสมเป็นสิ่งสำคัญ เราแนะนำให้ใช้ try/catch
เพื่อจัดการกับข้อยกเว้น
try {
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
}