Proxy vs proxyless captcha solving: ต้องใช้ task type ไหน
Scarnox มี PopularCaptcha สองรูปแบบ คือ proxyless ที่ Scarnox แก้ captcha ผ่านเครือข่ายของตัวเอง และแบบมี proxy ที่คุณส่ง proxy ที่บอทของคุณใช้ไปด้วย ทั้งสองแบบคืน token ในรูปแบบการตอบกลับเดียวกัน และทั้งสองแบบไม่คิดเงินเมื่อการ solve ล้มเหลว ความต่างเดียวของ request คือ proxy
Proxyless เป็นจุดเริ่มต้นที่เหมาะกับเว็บไซต์ส่วนใหญ่ ส่ง proxy ของคุณเองก็ต่อเมื่อเว็บไซต์ผูก token กับ IP address
สอง task type
| Task type | สิ่งที่คุณส่ง |
|---|---|
PopularCaptchaTaskProxyless | sitekey และ URL ของหน้า |
PopularCaptchaTask (รูปแบบมี proxy) | sitekey, URL ของหน้า และ proxy ของคุณ |
ทั้งสองแบบเป็น task ของ PopularCaptcha ส่วนที่เหลือของ request, การตอบกลับ และการจัดการ token เหมือนกันทั้งหมด
เริ่มด้วย proxyless
การ solve แบบ proxyless ทำงานบนเครือข่ายของ Scarnox การเชื่อมต่อเป็นสิ่งที่เขียนได้ง่ายที่สุด และสำหรับเว็บไซต์ส่วนใหญ่ token ใช้งานได้ไม่ว่า IP ใดจะนำไปส่งในภายหลัง ถ้าคุณไม่แน่ใจว่าต้องใช้แบบไหน ให้เริ่มที่นี่:
{
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/signup"
}
ส่ง proxy เมื่อ token ผูกกับ IP
เว็บไซต์บางแห่งตรวจว่า IP ที่ solve captcha เป็น IP เดียวกับที่ ส่ง ฟอร์ม อาการที่เห็นชัดคือ token กลับมาโดยไม่มี error แต่เว็บไซต์ปฏิเสธทุกครั้ง วิธีแก้คือ solve ผ่าน proxy เดียวกับที่บอทของคุณใช้ตลอดส่วนที่เหลือของ session:
{
"captcha_type": "PopularCaptchaTask",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/signup",
"proxy": "http://user:pass@203.0.113.10:8080"
}
รูปแบบ proxy คือ http://user:pass@host:port ใช้ proxy เดียวกันทั้งตอน solve และตอนส่ง และให้มันคงที่ (sticky) ตลอด session การสลับ proxy ระหว่าง solve กับการส่งจะทำให้ปัญหา IP ไม่ตรงกลับมา
วิธีตัดสินใจ
ไล่ตอบคำถามเหล่านี้ตามลำดับ:
- token ใช้งานได้เมื่อคุณส่งจากเครื่องอื่นหรือไม่ ถ้าใช่ ให้ใช้ proxyless
- เว็บไซต์ปฏิเสธ token เฉพาะเมื่อ IP ที่ส่งต่างจาก IP ที่ solve หรือไม่ ถ้าใช่ ให้ส่ง proxy
- เว็บไซต์ใช้ session cookie หรือการตรวจสอบอุปกรณ์ที่ผูกกับ IP หนึ่งหรือไม่ ถ้าใช่ ให้ส่ง proxy และใช้ IP เดิมตลอด session
ทดสอบทั้งสองแบบบนเครดิตทดลองใช้ฟรีก่อนตัดสินใจ สร้างบัญชี และเริ่มด้วยเครดิตทดลองใช้ฟรี ไม่ต้องใช้บัตรเครดิต แล้วรัน flow เดิมหนึ่งครั้งต่อประเภท
ถ้า proxy ของคุณใช้ไม่ได้
การ solve ที่ล้มเหลวไม่มีค่าใช้จ่าย หาก proxy ใช้ไม่ได้หรือถูกเป้าหมายบล็อก การ solve จะล้มเหลวและคุณไม่ถูกเรียกเก็บเงิน ทดสอบ proxy ด้วยตัวเองก่อนรัน ตรวจรูปแบบ และตรวจว่าเป้าหมายไม่ได้บล็อกช่วง address ของมัน proxy ที่ใช้ได้กับเบราว์เซอร์แต่ล้มเหลวเมื่อ solve มักเป็นปัญหาเรื่องรูปแบบ
เก็บ credential ของ proxy ให้พ้นจาก log
ที่อยู่ proxy ที่มีรหัสผ่านคือความลับ เก็บไว้ในตัวแปรสภาพแวดล้อมหรือ secret manager อย่าพิมพ์ลง log อย่า commit และอย่าวางในรายงาน bug หากคุณ log request ของการ solve เพื่อ debug ให้ลบฟิลด์ proxy ออกก่อน
เลือก proxy สำหรับรูปแบบมี proxy
การ solve ทำงานกับ proxy ใดก็ได้ที่คุณส่ง แต่ token จะมีประโยชน์ก็ต่อเมื่อ IP เดียวกันเป็นผู้ส่งฟอร์ม ใช้ address แบบ residential หรือ static ที่คุณควบคุมได้สำหรับทั้ง session ไม่ใช่ pool ที่หมุนทุกครั้งที่มี request เว็บไซต์ที่ผูก token กับ IP มักผูก session ด้วย ดังนั้น pool ที่หมุนจะทำให้ flow พังสองครั้ง
เรื่องความเร็วล่ะ
ทั้งสองรูปแบบคืน token จาก request เดียวที่บล็อกรอ ไม่มี polling loop timeout เท่ากัน คือประมาณ 185 วินาที เลือกรูปแบบจากคำถามเรื่อง IP ไม่ใช่จากความเร็ว
Session และ proxy ในทางปฏิบัติ
ใช้ proxy เดียวกันตั้งแต่ request แรกของ session ไปจนถึง request สุดท้าย flow ทั่วไปคือโหลดหน้าสมัครสมาชิก solve captcha แล้วส่งฟอร์ม หากการโหลดหน้าผ่าน address หนึ่งแต่การ solve ผ่านอีก address หนึ่ง เว็บไซต์ที่ผูกกับ IP อาจปฏิเสธ token แม้ทุกอย่างอื่นจะดูถูกต้อง
เก็บการตั้งค่า proxy ไว้ที่เดียวในโค้ด และส่งให้ทุกขั้นตอนที่แตะเว็บไซต์ หากส่วนอื่นของงานหมุน proxy เพื่อ scraping ให้ captcha flow มี proxy แบบ sticky ของตัวเอง การปนกันของทั้งสองเป็นหนึ่งในสาเหตุที่พบบ่อยที่สุดที่ token ซึ่งทำงานได้ตอนทดสอบกลับล้มเหลวในโปรดักชัน
ตั้งฟิลด์ proxy เฉพาะในรูปแบบที่ใช้ proxy การส่ง proxy กับ task แบบ proxyless ไม่ทำให้การ solve ดีขึ้น และทำให้ยากขึ้นที่จะบอกว่าการรันใช้โหมดไหนเมื่ออ่าน log
อ่าน log เพื่อหาคำตอบที่ถูกต้อง
หากคุณไม่แน่ใจว่าเว็บไซต์ต้องการโหมดใด ให้รันทั้งสองแบบบนหน้าเดียวกันแล้วเปรียบเทียบ บันทึกว่า token แต่ละอันได้รับการยอมรับหรือไม่ พร้อมกับ task type และว่ามีการส่ง proxy หรือไม่ เว็บไซต์ที่ยอมรับ token แบบ proxyless อย่างสม่ำเสมอไม่จำเป็นต้องใช้รูปแบบมี proxy เว็บไซต์ที่ปฏิเสธ token เฉพาะบางการรันชี้ไปที่การตรวจ IP ให้ log เป็นตัวตัดสิน ไม่ใช่การคาดเดา
ขั้นตอนถัดไป
- วิธีแก้ PopularCaptcha ด้วย Python
- Invisible captcha อธิบาย
- Retry และการจัดการ error ที่ใช้ได้จริงในโปรดักชัน
- ทดลองใช้ captcha solver ฟรี
เริ่มต้นด้วยเครดิตทดลองใช้ฟรี ไม่ต้องใช้บัตรเครดิต: สร้างบัญชี แล้วลองทั้งสอง task type บนหน้าเดียว