Scarnox · Blog

วิธีหา sitekey ของ captcha ในหน้าใดก็ได้ (4 วิธี)

การแก้ captcha ทุกครั้งเริ่มจาก sitekey ซึ่งเป็นรหัสสาธารณะที่เว็บลงทะเบียนไว้กับผู้ให้บริการ captcha เบราว์เซอร์มองเห็นมัน ดังนั้นคุณก็อ่านได้เช่นกัน สำหรับ PopularCaptcha sitekey คือ UUID เช่น a5f74b19-9e45-40e0-b45d-47ff91b7a6c2 ผู้ให้บริการอื่นใช้รูปแบบที่ต่างออกไป เช่น คีย์ของ Google reCAPTCHA ขึ้นต้นด้วย 6L นี่คือสี่ตำแหน่งที่จะหาได้ เรียงจากง่ายที่สุดไปจนถึงเชื่อถือได้มากที่สุด

Scarnox แก้ PopularCaptcha ได้ในวันนี้ การค้นหา sitekey ทำงานเหมือนกันกับ captcha ทุกประเภท ดังนั้นวิธีเหล่านี้ก็ช่วยเมื่อคุณวางแผนสำหรับประเภทอื่นได้ด้วย ประเภทอื่น เช่น reCAPTCHA และ Cloudflare Turnstile เร็ว ๆ นี้

1. attribute data-sitekey

เปิด DevTools (F12) ไปที่ Elements กด Ctrl+F แล้วค้นหา data-sitekey widget ส่วนใหญ่ใส่ key ไว้ใน attribute แบบนี้

<div class="h-captcha" data-sitekey="a5f74b19-9e45-40e0-b45d-47ff91b7a6c2"></div>

หากพบตรงนี้ คุณเสร็จแล้ว คัดลอกค่าและไปต่อที่การแก้

2. แท็บ network

หาก widget ถูกเรนเดอร์โดย JavaScript attribute อาจไม่เคยปรากฏใน HTML เปิด Network รีโหลดหน้า แล้วกรองหาคำขอ configuration ของ widget สำหรับ PopularCaptcha คำขอนั้นมักชื่อ checksiteconfig sitekey เป็นหนึ่งใน query parameter ของมัน

.../checksiteconfig?v=...&host=example.com&sitekey=a5f74b19-...

การกรองด้วยคำว่า sitekey ใน URL ของคำขอก็ใช้ได้ หากชื่อต่างออกไปในเว็บที่คุณกำลังทดสอบ

3. URL ของ iframe

การท้าทายเองเป็น iframe ที่ผู้ให้บริการ captcha ให้มา src ของมันมี sitekey เป็นพารามิเตอร์ คลิกขวาที่ widget เลือก Inspect แล้วอ่านค่าจาก address ของ iframe นี่คือวิธีที่เชื่อถือได้ที่สุดเมื่อหน้าซ่อน attribute จากเอกสารหลัก

4. widget แบบ invisible

widget แบบ invisible ไม่มีช่องติ๊ก เว็บเรียกฟังก์ชัน render() หรือ execute() ของ widget จากโค้ดของตัวเอง และ sitekey ถูกส่งเป็นอาร์กิวเมนต์ ค้นหาใน JavaScript ของหน้า: เปิดแผง Sources แล้วกด Ctrl+Shift+F จากนั้นค้นหา sitekey sitekey แบบ invisible ต้องตั้งธงแบบ invisible ตอนแก้ ดู การแก้ captcha แบบ invisible

การอ่าน sitekey จากสคริปต์

หาก attribute อยู่ใน HTML ดิบ สคริปต์สามารถอ่านได้โดยไม่ต้องใช้เบราว์เซอร์

import re
import requests

html = requests.get("https://example.com/signup", timeout=30).text
m = re.search(r'data-sitekey="([^"]+)"', html)
print(m.group(1) if m else "no data-sitekey in the raw HTML")

หากสิ่งนี้พิมพ์ออกมาเป็นค่าว่าง แสดงว่า widget ถูกเรนเดอร์โดย JavaScript ให้ใช้เบราว์เซอร์จริง ตามวิธีแท็บ Network ด้านบน ดึงเฉพาะหน้าที่คุณได้รับอนุญาตให้ทำ automation และรักษาอัตราคำขอให้ต่ำ

URL ใดคู่กับมัน

ส่ง URL ของหน้าที่มี widget เป็น site_url โฮสต์คือสิ่งที่สำคัญที่สุด ดังนั้น https://example.com/signup คือค่าที่ควรใช้สำหรับ widget ของหน้าสมัครสมาชิก คำขอเต็มสำหรับ PopularCaptcha มีลักษณะดังนี้

{
  "captcha_type": "PopularCaptchaTaskProxyless",
  "site_key": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
  "site_url": "https://example.com/signup"
}

ส่งไปยัง https://api.scarnox.com/api/tasks/create พร้อม key ของคุณใน header Authorization: Bearer การเรียกจะบล็อกจนกว่า token จะพร้อม จึงไม่มีคำขอที่สองเพื่อตรวจผลลัพธ์

ปัญหาที่พบบ่อย

ตรวจว่าคุณได้ sitekey ที่ถูกต้อง

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

key อาจเปลี่ยนเมื่อเว็บถูก deploy ใหม่ หาก key ที่ใช้ได้เมื่อวานหยุดสร้าง token ที่ถูกยอมรับ ให้อ่านหน้าใหม่ก่อนเปลี่ยนอย่างอื่น การอ่านใหม่ไม่มีค่าใช้จ่าย และตัดสาเหตุที่พบบ่อยที่สุดของความล้มเหลวกะทันหันออกไป

หน้าที่โหลด widget หลังจากคลิกเท่านั้นต้องมีขั้นตอนเพิ่มอีกหนึ่งขั้น เปิดหน้า ทำการคลิกที่แสดง widget แล้วจึงอ่าน sitekey การอ่านหน้าก่อนคลิกจะได้ค่าว่าง ซึ่งดูเหมือน widget หายไป แต่จริง ๆ เป็นปัญหาเรื่องจังหวะเวลา รอให้ element ที่ตรงกับ [data-sitekey] ปรากฏ แทนการหน่วงเวลาตายตัว

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

เริ่มด้วยเครดิตทดลองใช้ฟรี ไม่ต้องใช้บัตร: สร้างบัญชี และทดสอบ sitekey แรกของคุณ