วิธีข้าม captcha สำหรับ automation และการทดสอบที่ถูกต้องตามกฎหมาย
การข้าม captcha อย่างถูกต้องหมายถึงการทำให้งานอัตโนมัติของคุณผ่านการท้าทายได้ โดยไม่ละเมิดกฎของเว็บและไม่โจมตีผู้ใช้ของเว็บนั้น ในทางปฏิบัติครอบคลุมสี่กรณี ได้แก่ การทำ automation กับเวิร์กโฟลว์ที่คุณเป็นเจ้าของ การทดสอบเว็บของคุณเอง การสร้างเครื่องมือเพื่อการเข้าถึง และการเก็บข้อมูลสาธารณะในอัตราที่เหมาะสม เส้นทางที่ซื่อตรงที่สุดมักเป็นการหลีกเลี่ยงไม่ให้ captcha ถูกกระตุ้นตั้งแต่แรก เมื่อหลีกเลี่ยงไม่ได้ solver API อย่าง Scarnox สามารถส่ง token ที่หน้าเว็บคาดหวังกลับมาได้
คู่มือนี้เรียงแนวทางตามลำดับที่ควรลอง และระบุขอบเขตที่ไม่ควรข้าม
เริ่มจากการถามว่า captcha ปรากฏเพราะอะไร
captcha คือสัญญาณ เว็บตัดสินว่าคำขอดูเหมือนอัตโนมัติหรือมีความเสี่ยง ก่อนพยายามผ่านการท้าทาย ให้ตรวจสอบสาเหตุก่อน
- อัตราคำขอ captcha หลายอันปรากฏเฉพาะหลังจากคำขอพุ่งขึ้นจาก address เดียว
- ขาด session state ผู้เข้าชมที่มาโดยไม่มี cookie ไม่มีประวัติ และไม่ได้เข้าสู่ระบบ ดูเหมือน scraper
- สัญญาณของเบราว์เซอร์ headless browser และการตั้งค่า automation เริ่มต้นมักถูกตั้งธง คู่มือการตรวจจับ headless browser อธิบายสัญญาณที่พบบ่อย
- ชื่อเสียงของเครือข่าย IP ของ datacenter ถูกตรวจสอบมากกว่าการเชื่อมต่อจากบ้าน
การแก้สาเหตุมักทำให้ captcha หายไปทั้งหมด ซึ่งดีกว่าการแก้ทุกคำขอ
ลองแนวทางที่หลีกเลี่ยงการท้าทาย
- ใช้ API ทางการหากมี เว็บจำนวนมากเผยแพร่ข้อมูลผ่าน API ที่มี key และขีดจำกัดของตัวเอง เส้นทางนั้นเร็วกว่า เสถียรกว่า และได้รับอนุญาตอย่างชัดเจน
- ชะลอและกระจายคำขอ เพิ่มความหน่วงระหว่างคำขอ จำกัดการทำงานพร้อมกัน และถอยออกมาเมื่อได้รับคำเตือน จังหวะคงที่ไม่กี่คำขอต่อนาทีดูต่างจากการยิงหลายร้อยคำขอเป็นชุดสำหรับเว็บ
- รักษา session ใช้ cookie และโปรไฟล์เบราว์เซอร์ที่สม่ำเสมอข้ามทั้ง session แทนการเริ่มใหม่ทุกหน้า คู่มือ browser fingerprinting อธิบายว่าทำไมเรื่องนี้จึงสำคัญ
- ตรวจสอบ 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 หรือการข้ามใด ๆ เพื่อ
- credential stuffing หรือความพยายามใด ๆ ในการเข้าสู่ระบบบัญชีที่คุณไม่ได้เป็นเจ้าของ
- การสมัครสมาชิกสแปม รีวิวปลอม หรือบัญชีปลอม
- การซื้อตั๋ว สินค้า หรือของจำนวนจำกัดก่อนลูกค้าคนอื่น
- การโจมตีฟอร์มเข้าสู่ระบบ โฟลว์รีเซ็ตรหัสผ่าน หรือขีดจำกัดอัตราของบริการของคนอื่น
การใช้งานเหล่านี้สร้างความเสียหายให้คนจริง ละเมิดข้อกำหนดของเว็บ และทำให้คุณเสี่ยงทางกฎหมายอย่างร้ายแรง Scarnox ไม่รองรับการใช้งานเหล่านี้ และคู่มือนี้ไม่ครอบคลุมเรื่องเหล่านี้
การ scrape อย่างรับผิดชอบ
หากการข้ามของคุณมีไว้เพื่อเก็บข้อมูลสาธารณะ ให้จำประเด็นเหล่านี้
- ตรวจสอบ robots.txt และข้อกำหนดของเว็บ เว็บที่ห้ามการ scraping ได้บอกคุณแล้วว่าเขาคาดหวังอะไร
- ตั้งขีดจำกัดอัตราที่เหมาะสมและถอยออกเมื่อเกิด error การทำให้เว็บขนาดเล็กรับภาระเกินเป็นอันตรายจริง
- อย่าเก็บข้อมูลส่วนบุคคลที่คุณไม่ต้องการ ข้อมูลส่วนบุคคลอยู่ภายใต้กฎหมายเช่น GDPR และการเก็บอย่างประมาทจะสร้างความรับผิดชอบ คู่มือการ scrape เว็บถูกกฎหมายหรือไม่ อธิบายประเด็นหลัก
สรุป
หลีกเลี่ยง captcha ก่อนด้วยการแก้สาเหตุ ใช้ test key สำหรับการทดสอบ ใช้ solver API สำหรับงานที่ถูกต้องซึ่งยังเจอการท้าทาย ภายในประเภทงานที่ใช้งานได้แบบสด หลีกเลี่ยงการใช้งานที่ระบุไว้ข้างต้น และ scrape ในอัตราที่เว็บรับไหว