Scarnox · Blog

GeeTest captcha คืออะไร: วิธีทำงานและวิธีแก้

GeeTest เป็นผู้ให้บริการ captcha ที่ widget ของตนขอให้ผู้เข้าชมทำงานเชิงภาพ เช่น ลากชิ้นส่วนปริศนาเข้าช่องว่าง คลิกชุดไอคอนตามลำดับที่กำหนด หรือเลื่อนสไลด์สั้น ๆ มักพบบนเว็บอีคอมเมิร์ซ หน้าเข้าสู่ระบบ และแบ็กเอนด์ของแอปในหลายภูมิภาค นี่ยังเป็นหนึ่งในตระกูล captcha ที่ Scarnox ยังไม่รองรับ คู่มือนี้อธิบายว่า GeeTest ทำงานอย่างไร ทำไมการทำ automation จึงยากกว่า token widget ทั่วไป แนวทางทั่วไปที่ผู้คนใช้ และการรองรับของ Scarnox ในตอนนี้

GeeTest ทำอะไรบนหน้าเว็บ

GeeTest captcha มักโหลดในสามขั้นตอน

  1. หน้าเว็บรวม script ของ GeeTest และสร้าง widget ด้วย captcha ID ในการเชื่อมต่อหลายแบบ ID นี้ถูกส่งเป็นพารามิเตอร์ชื่อ gt
  2. widget ขอการท้าทายใหม่จากเซิร์ฟเวอร์ของ GeeTest การท้าทายประกอบด้วยค่า challenge และรูปภาพหรือตำแหน่งของชิ้นส่วนที่จำเป็นสำหรับปริศนา
  3. เมื่อผู้เข้าชมทำงานเสร็จ widget จะส่งผลลัพธ์กลับไปยังเว็บ จากนั้น backend ของเว็บตรวจสอบผลลัพธ์นั้นกับผู้ให้บริการ captcha ก่อนยอมรับฟอร์ม

ขั้นตอนที่สามสำคัญมาก ค่าที่ดูสมเหตุสมผลไม่เพียงพอ เพราะเซิร์ฟเวอร์ตรวจสอบผลลัพธ์ที่ผูกกับการท้าทายหนึ่งครั้งและหมดอายุ นั่นคือเหตุผลที่ค่าที่คัดลอกจาก session อื่นล้มเหลว และการนำผลลัพธ์เก่ากลับมาใช้ก็ไม่ได้ผล

ทำไม GeeTest ยากกว่า token widget

กับ PopularCaptcha หน้าต้องการสตริง token เพียงหนึ่งตัว และคำขอเดียวให้สตริงนั้นกลับมา GeeTest ต่างออกไปในสามด้าน

เพราะเหตุนี้ การแก้ GeeTest จึงเป็นงานหลายขั้นตอน: ดึงการท้าทาย หาตำแหน่งเป้าหมายในภาพ สร้างการเคลื่อนไหว ส่งและอ่านผลการตัดสิน แต่ละขั้นอาจล้มเหลว และการท้าทายหมดอายุหากคุณรอนานเกินไประหว่างขั้นตอน

แนวทางทั่วไป

ผู้คนที่ทำ automation กับหน้า GeeTest โดยทั่วไปใช้วิธีหนึ่งในสามแบบ ไม่มีวิธีใดเป็นทางลัด และแต่ละวิธีมีต้นทุน

ไม่ว่าจะเลือกวิธีใด ให้รักษาขอบเขตให้ซื่อตรง: ทำ automation กับโฟลว์ที่คุณเป็นเจ้าของ สภาพแวดล้อมทดสอบที่คุณได้รับอนุญาตให้ใช้ หรือข้อมูลสาธารณะที่คุณได้รับอนุญาตให้เก็บ

การหา captcha ID

คุณไม่จำเป็นต้องใช้โค้ดเพื่อเริ่ม เปิด DevTools รีโหลดหน้า แล้วค้นหาใน แท็บ Network ด้วย geetest หรือ gt คำขอแรกที่โหลด widget มักแสดง captcha ID สคริปต์เล็ก ๆ สามารถบันทึกค่านี้ไว้ได้ ซึ่งมีประโยชน์เมื่อคุณต้องการสังเกตว่าหน้าเปลี่ยน widget เมื่อใด

import re
import requests

html = requests.get("https://example.com/login", timeout=30).text
match = re.search(r"gt['\"]?\s*[:=]\s*['\"]([a-f0-9]{32})['\"]", html)
print("captcha id:", match.group(1) if match else "not found")

รูปแบบข้างต้นมองหาค่าเลขฐานสิบหก 32 ตัวอักษรที่อยู่ถัดจาก gt ผู้ให้บริการเปลี่ยน markup ของตนบ่อย ดังนั้นให้ถือเป็นจุดเริ่มต้น และตรวจผลลัพธ์กับหน้าที่คุณกำลังทดสอบ

สถานะการรองรับของ Scarnox

ให้ชัดเจนเมื่อคุณวางแผนโปรเจกต์

หากโปรเจกต์ของคุณต้องการ GeeTest ตอนนี้ เส้นทางที่ใช้งานได้จริงคือสร้างขั้นตอนเบราว์เซอร์และภาพด้วยตัวคุณเองสำหรับหน้าที่คุณได้รับอนุญาตให้ทดสอบ และเตรียมโค้ดให้พร้อมสลับไปใช้ API เมื่อการรองรับเปิดใช้งาน ระหว่างนี้คุณสามารถสร้างบัญชี และเริ่มด้วยเครดิตทดลองใช้ฟรี ไม่ต้องใช้บัตร ซึ่งให้โฟลว์ PopularCaptcha ที่ใช้งานได้ให้คุณทดสอบ และเป็นที่สำหรับเสียบ GeeTest ในอนาคต สำหรับอัตราปัจจุบัน ดูราคาปัจจุบัน

การใช้งานที่ถูกต้องตามกฎหมาย

อย่าใช้ captcha automation เพื่อสร้างบัญชีปลอม โจมตีฟอร์มเข้าสู่ระบบ หรือแย่งสินค้าจำนวนจำกัด การใช้งานเหล่านั้นละเมิดกฎของเว็บส่วนใหญ่ และ Scarnox ไม่รองรับ

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