เลี่ยงแคปต์ชาโดยใช้ Go
แก้แคปต์ชาด้วยโมดูล Go lang ออนไลน์
แพ็คเกจ Golang สำหรับการผสานรวมกับ API ของ 2Captcha ได้ง่าย บริการแก้แคปต์ชาเพื่อเลี่ยง reCAPTCHA, hCaptcha, Arkose captcha, Geetest และแก้แคปต์ชาอื่นๆ
เริ่มต้นอย่างรวดเร็วการติดตั้ง
แพ็คเกจสคริปต์สามารถติดตั้งได้โดยใช้ตัวติดตั้งแพ็คเกจหรือด้วยตนเอง
GitHub
การติดตั้ง API ลูกค้า ใช้สิ่งนี้:
go get -u github.com/2captcha/2captcha-go
เราขอเชิญคุณสำรวจ GitHub พื้นที่เก็บข้อมูลที่คุณสามารถค้นหาไลบรารีและโมดูลสำหรับการผสานรวมกับ API ของเราได้อย่างง่ายดาย
การกำหนดค่า
คำอธิบายที่จำเป็นทั้งหมดของพารามิเตอร์เพื่อกำหนดค่าแพ็คเกจที่ติดตั้ง
ลูกค้า
สามารถสร้างอินสแตนซ์ได้ดังนี้:
client := api2captcha.NewClient('YOUR_API_KEY')
คุณยังสามารถปรับแต่งตัวเลือกบางอย่างสำหรับตัวอย่างที่สร้างขึ้นได้:
client.SoftId = 123
client.Callback = "https://your.site/result-receiver"
client.DefaultTimeout = 120
client.RecaptchaTimeout = 600
client.PollingInterval = 100
ตัวเลือกอินสแตนซ์ลูกค้า
ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
softId | - | รหัสซอฟต์แวร์ของคุณที่ได้รับหลังจากเผยแพร่ใน 2Captcha แคตตาล็อกซอฟต์แวร์ |
โทรกลับ | - | URL ของเว็บเซิร์ฟเวอร์ของคุณที่ได้รับผลการจดจำแคปต์ชา URL ควรลงทะเบียนครั้งแรกใน การตั้งค่า pingback ของบัญชีของคุณ |
defaultTimeout | 120 | หมดเวลาโพลเป็นวินาทีสำหรับแคปต์ชาทุกประเภท ยกเ ว้น reCAPTCHA กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API |
recaptchaTimeout | 600 | หมดเวลาโพลสำหรับ reCAPTCHA ในไม่กี่วินาที กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API |
pollingInterval | 10 | ช่วงเวลาเป็นวินาทีระหว่างคำขอถึง res.php ปลายทาง API ไม่แนะนำให้ตั้งค่าน้อยกว่า 5 วินาที |
สำคัญ: เมื่อcallback
ถูกกำหนดไว้สำหรับClient
ตัวอย่างเช่น วิธีทั้งหมดจะคืนค่าเฉพาะ captcha ID และห้ามสำรวจ API เพื่อรับผลลัพธ์ ผลลัพธ์จะถูกส่งไปยัง callback URL เพื่อรับคำตอบด้วยตนเอง ใช้ วิธีรับผลลัพธ์
แก้ไขแคปต์ช่า
เมื่อคุณกดการใช้แคปต์ช่าแบบรูปภาพจะมีตัวเลือกเพิ่มเติมเพื่อช่วย 2Captcha พนักงานแก้ไขให้ถูกต้อง
ตัวเลือกแคปต์ช่า
ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
numeric | 0 | กำหนดว่าแคปต์ชามีตัวเลขหรือสัญลักษณ์อื่นหรือไม่ ดูข้อมูลเพิ่มเติมในเอกสาร API |
minLength | 0 | ความยาวของคำตอบขั้นต่ำ |
maxLength | 0 | ความยาวของคำตอบสูงสุด |
phrase | 0 | กำหนดว่าคำตอบมีหลายคำหรือไม่ |
caseSensitive | 0 | กำหนดว่าคำตอบนั้นคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หรือไม่ |
calc | 0 | กำหนดแคปต์ชาที่ต้องคำนวณ |
lang | - | กำหนดภาษาแคปต์ชา ดู รายการภาษาที่รองรับ |
hintImg | - | รูปภาพพร้อมคำใบ้ที่โชว์ให้พนักงานที่มีแคปต์ชา |
hintText | - | คำใบ้หรือข้อความงานที่แสดงต่อผู้ปฏิบัติงานด้วยแคปต์ชา |
ตัวอย่างเบื้องต้น
ตัวอย่างด้านล่างแสดงตัวอย่างการเรียกโปรแกรมแก้ไขขั้ นพื้นฐานพร้อมจัดการข้อผิดพลาด
cap := api2captcha.Normal{
File: "/path/to/normal.jpg",
}
code, err := client.Solve(cap.ToRequest())
if err != nil {
if err == api2captcha.ErrTimeout {
log.Fatal("Timeout");
} else if err == api2captcha.ErrApi {
log.Fatal("API error");
} else if err == api2captcha.ErrNetwork {
log.Fatal("Network error");
} else {
log.Fatal(err);
}
}
fmt.Println("code "+code)
- แคปต์ช่าปกติ
- แคปต์ช่าข้อความ
- reCAPTCHA v2
- reCAPTCHA v3
- FunCaptcha
- GeeTest
- hCaptcha
- KeyCaptcha
- Capy
- Grid
- Canvas
- ClickCaptcha
- หมุน
ในการเลี่ยงผ่านแคปต์ชาปกติ (ข้อความบนภาพบิดเบี้ยว) ให้ใช้วิธีต่อไปนี้ วิธีนี้สามารถใช้เพื่อตรวจสอบข้อความบนรูปภาพได้
cap := api2captcha.Normal{
File: "/path/to/normal.jpg",
Numeric: 4,
MinLen: 4,
MaxLen: 20,
Phrase: true,
CaseSensitive: true,
Lang: "en",
HintImgFile: "/path/to/hint.jpg",
HintText: "Type red symbols",
}
วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาที่ต้องตอบคำถามที่ระบุเป็นข้อความที่ชัดเจน
ใช้วิธีนี้เพื่อแก้ปัญหา reCAPTCHA V2 และรับโทเค็นเพื่อเลี่ยงการป้องกัน
cap := api2captcha.ReCaptcha{
SiteKey: "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
Url: "https://mysite.com/page/with/recaptcha",
Invisible: true,
Action: "verify",
}
req := cap.ToRequest()
req.SetProxy("HTTPS", "login:password@IP_address:PORT")
code, err := client.solve(req)
เมธอดที่จัดเตรียมโปรแกรมแก้ไขปัญหา reCAPTCHA V3 และส่งคืนโทเค็น
cap := api2captcha.ReCaptcha{
SiteKey: "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
Url: "https://mysite.com/page/with/recaptcha",
Version: "v3",
Action: "verify",
Score: 0.3,
}
req := cap.ToRequest()
req.SetProxy("HTTPS", "login:password@IP_address:PORT")
code, err := client.solve(req)
วิธีการแก้ FunCaptcha (Arkoselabs) ส่งคืนโทเค็น
cap := api2captcha.FunCaptcha{
SiteKey: "69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC",
Url: "https://mysite.com/page/with/funcaptcha",
Surl: "https://client-api.arkoselabs.com",
UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",
Data: map[string]string{"anyKey":"anyValue"},
}
req := cap.ToRequest()
req.SetProxy("HTTPS", "login:password@IP_address:PORT")
code, err := client.solve(req)
วิธีแก้ไขปัญหา GeeTest puzzle Captcha โดยส่งกลับชุดของโทเค็นเป็น JSON
cap := api2captcha.GeeTest{
GT: "f2ae6cadcf7886856696502e1d55e00c",
ApiServer: "api-na.geetest.com",
Challenge: "12345678abc90123d45678ef90123a456b",
Url: "https://mysite.com/captcha.html",
}
req := cap.ToRequest()
req.SetProxy("HTTPS", "login:password@IP_address:PORT")
code, err := client.solve(req)
ใช้วิธีนี้เพื่อแก้ไขปัญหา hCaptcha challenge ส่งคืนโทเค็นเพื่อเลี่ยงแคปต์ชา
cap := api2captcha.HCaptcha{
SiteKey: "10000000-ffff-ffff-ffff-000000000001",
Url: "https://mysite.com/captcha.html",
}
req := cap.ToRequest()
req.SetProxy("HTTPS", "login:password@IP_address:PORT")
code, err := client.solve(req)
วิธีการที่ใช้โทเค็นเพื่อแก้ปัญหา KeyCaptcha
วิธีที่ใช้โทเค็นเพื่อเลี่ยงผ่านแคปต์ชา Capy puzzle
cap := api2captcha.Capy{
SiteKey: "PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v",
Url: "https://www.mysite.com/captcha/",
}
req := cap.ToRequest()
req.SetProxy("HTTPS", "login:password@IP_address:PORT")
code, err := client.solve(req)
วิธี Grid เรียกว่าวิธี Old reCAPTCHA V2 วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาประเภทใดก็ได้ ซึ่งคุณสามารถใช้กริดกับรูปภาพและจำเป็นต้องคลิกช่องกริดเฉพาะ ส่งกลับจำนวนกล่อง
cap := api2captcha.Grid{
File: "path/to/captcha.jpg",
Rows: 3,
Cols: 3,
PreviousId: 0,
CanSkip: false,
Lang: "en",
HintImageFile: "path/to/hint.jpg",
HintText: "Select all images with an Orange",
}
คุณสามารถใช้วิธี Canvas เมื่อคุณต้องการวาดเส้นรอบวัตถุบนรูปภาพ ส่งกลับชุดพิกัดของจุดเพื่อวาดรูปหลายเหลี่ยม
cap := api2captcha.Canvas{
File: "path/to/captcha.jpg",
PreviousId: 0,
CanSkip: false,
Lang: "en",
HintImageFile: "path/to/hint.jpg",
HintText: "Draw around apple",
}
วิธี ClickCaptcha จะคืนค่าพิ กัดของจุดบนรูปภาพแคปต์ชา สามารถใช้ได้หากต้องการคลิกเฉพาะจุดบนภาพ
cap := api2captcha.Coordinates{
File: "path/to/captcha.jpg",
Lang: "en",
HintImageFile: "path/to/hint.jpg",
HintText: "Connect the dots",
}
วิธีนี้สามารถใช้แก้แคปต์ชาที่ขอให้หมุนวัตถุได้ ส่วนใหญ่ใช้เพื่อเลี่ยงผ่าน FunCaptcha ส่งกลับมุมการหมุน
วิธีอื่นๆ
วิธีการที่ถูกต้องเพิ่มเติมที่ใช้ในระหว่างการทำงานของสคริปต์หลัก
send / getResult
วิธีการเหล่านี้สามารถใช้สำหรับการส่งแคปต์ช่าด้วยตนเองและการตอบแบบสำรวจความคิดเห็น
id, err := client.Send(cap.ToRequest())
if err != nil {
log.Fatal(err);
}
time.Sleep(10 * time.Second)
code, err := client.GetResult(id)
if err != nil {
log.Fatal(err);
}
if code == nil {
log.Fatal("Not ready")
}
fmt.Println("code "+*code)
balance
ใช้วิธีนี้เพื่อรับยอดเงินในบัญชีของคุณ
balance, err := client.GetBalance()
if err != nil {
log.Fatal(err);
}
report
ใช้วิธีนี้เพื่อรายงานคำตอบแคปต์ช่าที่ดีหรือไม่ดี
err := client.Report(id, true) // solved correctly
err := client.Report(id, false) // solved incorrectly