Scarnox · Blog

วิธีข้าม captcha สำหรับ automation และการทดสอบที่ถูกต้องตามกฎหมาย

การข้าม captcha อย่างถูกต้องหมายถึงการทำให้งานอัตโนมัติของคุณผ่านการท้าทายได้ โดยไม่ละเมิดกฎของเว็บและไม่โจมตีผู้ใช้ของเว็บนั้น ในทางปฏิบัติครอบคลุมสี่กรณี ได้แก่ การทำ automation กับเวิร์กโฟลว์ที่คุณเป็นเจ้าของ การทดสอบเว็บของคุณเอง การสร้างเครื่องมือเพื่อการเข้าถึง และการเก็บข้อมูลสาธารณะในอัตราที่เหมาะสม เส้นทางที่ซื่อตรงที่สุดมักเป็นการหลีกเลี่ยงไม่ให้ captcha ถูกกระตุ้นตั้งแต่แรก เมื่อหลีกเลี่ยงไม่ได้ solver API อย่าง Scarnox สามารถส่ง token ที่หน้าเว็บคาดหวังกลับมาได้

คู่มือนี้เรียงแนวทางตามลำดับที่ควรลอง และระบุขอบเขตที่ไม่ควรข้าม

เริ่มจากการถามว่า captcha ปรากฏเพราะอะไร

captcha คือสัญญาณ เว็บตัดสินว่าคำขอดูเหมือนอัตโนมัติหรือมีความเสี่ยง ก่อนพยายามผ่านการท้าทาย ให้ตรวจสอบสาเหตุก่อน

การแก้สาเหตุมักทำให้ captcha หายไปทั้งหมด ซึ่งดีกว่าการแก้ทุกคำขอ

ลองแนวทางที่หลีกเลี่ยงการท้าทาย

  1. ใช้ API ทางการหากมี เว็บจำนวนมากเผยแพร่ข้อมูลผ่าน API ที่มี key และขีดจำกัดของตัวเอง เส้นทางนั้นเร็วกว่า เสถียรกว่า และได้รับอนุญาตอย่างชัดเจน
  2. ชะลอและกระจายคำขอ เพิ่มความหน่วงระหว่างคำขอ จำกัดการทำงานพร้อมกัน และถอยออกมาเมื่อได้รับคำเตือน จังหวะคงที่ไม่กี่คำขอต่อนาทีดูต่างจากการยิงหลายร้อยคำขอเป็นชุดสำหรับเว็บ
  3. รักษา session ใช้ cookie และโปรไฟล์เบราว์เซอร์ที่สม่ำเสมอข้ามทั้ง session แทนการเริ่มใหม่ทุกหน้า คู่มือ browser fingerprinting อธิบายว่าทำไมเรื่องนี้จึงสำคัญ
  4. ตรวจสอบ robots.txt และข้อกำหนดการใช้งาน ก่อนเริ่ม ไม่ใช่หลังจากถูกบล็อก และปฏิบัติตามสิ่งที่เว็บขอ

ใช้ test key และสภาพแวดล้อมทดสอบ

หาก captcha กำลังบล็อกสภาพแวดล้อม staging ของคุณเอง อย่าชี้การทดสอบไปที่ production เพื่อเลี่ยงมัน ผู้ให้บริการ captcha ส่วนใหญ่ รวมถึง Google และ Cloudflare เผยแพร่ test key สำหรับการพัฒนา key เหล่านี้สร้าง token ที่ถูกต้องโดยไม่มีการท้าทายจริง และเป็นเครื่องมือที่ถูกต้องสำหรับการทดสอบอัตโนมัติ คุณยังสามารถขอให้ทีมของคุณปิด captcha บนเซิร์ฟเวอร์ staging ได้ด้วย คู่มือ captcha ในการทดสอบอัตโนมัติ อธิบายขั้นตอนการตั้งค่านี้

แก้ captcha ผ่าน API เมื่ออยู่หน้างานที่ถูกต้อง

captcha บางตัวยังคงปรากฏในงานที่ถูกต้อง แม้จะชะลอคำขอดีแล้ว ตัวอย่างเช่นงาน monitoring ที่ตรวจสอบพอร์ทัลของซัพพลายเออร์ของคุณเอง ในกรณีนั้น solver API คือเครื่องมือที่เหมาะสม

Scarnox คือ API สำหรับการแก้ captcha ปัจจุบันประเภทงานที่ใช้งานได้แบบสดเพียงประเภทเดียวคือ PopularCaptcha แบบ proxyless โค้ดของคุณส่ง sitekey และ URL ของหน้า แล้วรับ token กลับมาเพื่อส่งพร้อมฟอร์ม

import requests

r = requests.post(
    "https://api.scarnox.com/api/tasks/create",
    headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
    json={
        "captcha_type": "PopularCaptchaTaskProxyless",
        "site_key": "10000000-ffff-ffff-ffff-000000000001",
        "site_url": "https://example.com/login",
    },
    timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None

token หมดอายุภายในประมาณสองนาที จึงควรส่งทันที คู่มือ solve captcha ด้วย Python มีตัวอย่างเต็ม captcha ประเภทอื่น ๆ รวมถึง reCAPTCHA, Cloudflare Turnstile และ Arkose เร็ว ๆ นี้ จนกว่าจะเปิดใช้งาน อย่าสมมติว่า solver จัดการได้

การเข้าถึงก็เป็นเหตุผลที่ถูกต้องเช่นกัน

captcha เป็นอุปสรรคสำหรับคนที่ใช้โปรแกรมอ่านหน้าจอ สลับอุปกรณ์ หรือมีความบกพร่องทางการรับรู้หรือการมองเห็น หากคุณสร้างเครื่องมือเพื่อการเข้าถึง หรือทำงานแทนผู้ใช้ที่ทำการท้าทายให้สำเร็จไม่ได้ ขั้นแรกที่ถูกต้องคือขอให้เจ้าของเว็บจัดทางเลือกที่เข้าถึงได้ เว็บจำนวนมากมีทางเลือกนี้อยู่แล้ว การทำ automation กับ captcha ไม่ใช่ทางทดแทนการคุยกับเจ้าของเว็บ

สิ่งที่ไม่ถูกต้องตามกฎหมาย

การใช้งานการแก้ captcha บางอย่างอยู่นอกขอบเขตที่ยอมรับได้ ไม่ว่าเหตุผลที่อ้างจะเป็นอะไร อย่าใช้ solver หรือการข้ามใด ๆ เพื่อ

การใช้งานเหล่านี้สร้างความเสียหายให้คนจริง ละเมิดข้อกำหนดของเว็บ และทำให้คุณเสี่ยงทางกฎหมายอย่างร้ายแรง Scarnox ไม่รองรับการใช้งานเหล่านี้ และคู่มือนี้ไม่ครอบคลุมเรื่องเหล่านี้

การ scrape อย่างรับผิดชอบ

หากการข้ามของคุณมีไว้เพื่อเก็บข้อมูลสาธารณะ ให้จำประเด็นเหล่านี้

สรุป

หลีกเลี่ยง captcha ก่อนด้วยการแก้สาเหตุ ใช้ test key สำหรับการทดสอบ ใช้ solver API สำหรับงานที่ถูกต้องซึ่งยังเจอการท้าทาย ภายในประเภทงานที่ใช้งานได้แบบสด หลีกเลี่ยงการใช้งานที่ระบุไว้ข้างต้น และ scrape ในอัตราที่เว็บรับไหว

ขั้นตอนถัดไป