Cách tìm sitekey của captcha trên bất kỳ trang nào (4 cách)
Mọi lần giải captcha đều bắt đầu từ sitekey: mã định danh công khai mà website đã đăng ký với nhà cung cấp captcha. Trình duyệt có thể thấy nó, nên bạn cũng có thể đọc được. Với PopularCaptcha, sitekey là một UUID như a5f74b19-9e45-40e0-b45d-47ff91b7a6c2. Các nhà cung cấp khác dùng định dạng khác. Ví dụ, khóa Google reCAPTCHA bắt đầu bằng 6L. Dưới đây là bốn nơi để tìm nó, từ dễ nhất đến đáng tin cậy nhất.
Scarnox giải PopularCaptcha hiện nay. Cách tra cứu sitekey hoạt động giống nhau cho mọi captcha, nên các phương pháp này cũng hữu ích khi bạn lên kế hoạch cho loại khác. Các loại khác, như reCAPTCHA và Cloudflare Turnstile, sắp ra mắt.
1. Thuộc tính data-sitekey
Mở DevTools (F12), vào Elements, nhấn Ctrl+F và tìm data-sitekey. Hầu hết widget đặt khóa trong một thuộc tính như thế này:
<div class="h-captcha" data-sitekey="a5f74b19-9e45-40e0-b45d-47ff91b7a6c2"></div>
Nếu bạn tìm thấy nó ở đây, bạn đã xong. Sao chép giá trị và chuyển sang bước giải.
2. Tab Network
Nếu widget được render bằng JavaScript, thuộc tính có thể không bao giờ xuất hiện trong HTML. Mở Network, tải lại trang, và lọc theo yêu cầu cấu hình của widget. Với PopularCaptcha, yêu cầu đó thường có tên checksiteconfig. Sitekey là một trong các tham số truy vấn của nó:
.../checksiteconfig?v=...&host=example.com&sitekey=a5f74b19-...
Lọc theo từ sitekey trong URL yêu cầu cũng hoạt động nếu tên khác trên website bạn đang kiểm thử.
3. URL của iframe
Thử thách thật là một iframe do nhà cung cấp captcha phục vụ. Thuộc tính src của nó mang sitekey dưới dạng tham số. Nhấp chuột phải vào widget, chọn Inspect, và đọc giá trị từ địa chỉ của iframe. Đây là phương pháp đáng tin cậy nhất khi trang ẩn thuộc tính khỏi tài liệu chính.
4. Widget ẩn
Một widget ẩn không có ô đánh dấu. Website gọi hàm render() hoặc execute() của widget từ mã riêng của nó, và sitekey được truyền như một đối số. Tìm nó trong JavaScript của trang: mở panel Sources, nhấn Ctrl+Shift+F, rồi tìm sitekey. Sitekey của widget ẩn cần cờ ẩn khi bạn giải. Xem giải captcha ẩn.
Đọc sitekey từ script
Nếu thuộc tính có trong HTML thô, một script có thể đọc nó mà không cần trình duyệt:
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")
Nếu dòng này không in ra gì, widget được render bằng JavaScript. Hãy dùng trình duyệt thật, như phương pháp tab Network ở trên. Chỉ tải những trang bạn được phép tự động hóa, và giữ tốc độ yêu cầu thấp.
URL nào đi kèm
Gửi URL của trang chứa widget làm site_url. Host là yếu tố quan trọng nhất, nên https://example.com/signup là giá trị đúng cho widget đăng ký. Một yêu cầu đầy đủ cho PopularCaptcha trông như sau:
{
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
"site_url": "https://example.com/signup"
}
Gửi nó đến https://api.scarnox.com/api/tasks/create với khóa của bạn trong header Authorization: Bearer. Lời gọi bị chặn cho đến khi token sẵn sàng, nên không có yêu cầu thứ hai nào để kiểm tra kết quả.
Các vấn đề thường gặp
- Hai sitekey trên cùng một trang. Website đôi khi có một widget cho form đăng nhập và một widget khác cho đăng ký. Hãy khớp khóa với form thực sự từ chối bạn, và kiểm tra xem khóa nào nằm gần nút submit nhất.
- Khóa thay đổi giữa các lần truy cập. Hãy đọc lại mỗi lần chạy. Khóa thường ổn định, nhưng một khóa cache từ bản triển khai cũ có thể ngừng hoạt động.
- Tìm được khóa, nhưng token bị từ chối. Sitekey có khả năng đúng. Hãy kiểm tra kích thước widget và cài đặt proxy tiếp theo, bắt đầu với hướng dẫn captcha ẩn và so sánh proxy.
Kiểm tra bạn có đúng sitekey
Một trang có thể chứa nhiều sitekey. Widget phân tích, khung bình luận và hộp đăng ký bản tin đôi khi thêm khóa riêng. Trước khi giải, hãy xác nhận sitekey thuộc về form bạn đang tự động hóa. Ba kiểm tra nhanh sẽ giúp ích:
- Tìm nút submit của form trong DevTools, rồi đi ngược cây DOM lên đến phần tử gần nhất chứa
data-sitekey. Đó là widget bảo vệ form. - So sánh khóa với khóa trong URL của iframe. Nếu chúng khớp, bạn có khóa mà widget thực sự dùng.
- Submit form bằng tay một lần với một token đã giải, nếu bạn được phép, và kiểm tra website có chấp nhận không.
Khóa cũng có thể thay đổi khi website được triển khai lại. Nếu một khóa hoạt động hôm qua nhưng giờ không còn tạo ra token được chấp nhận, hãy đọc lại trang trước khi thay đổi gì khác. Đọc lại không tốn gì, và nó loại trừ được nguyên nhân phổ biến nhất của một lỗi đột ngột.
Các trang chỉ tải widget sau một lần nhấp cần thêm một bước. Mở trang, thực hiện cú nhấp làm hiển thị widget, rồi mới đọc sitekey. Đọc trang trước khi nhấp sẽ không trả về gì, điều này trông như thiếu widget nhưng thực ra là vấn đề thời gian. Hãy chờ một phần tử khớp với [data-sitekey] xuất hiện thay vì ngủ một khoảng thời gian cố định.
Các bước tiếp theo
- Cách giải PopularCaptcha bằng Python
- Giải PopularCaptcha trong Playwright và Puppeteer
- Các loại captcha được giải thích
- Dùng thử bộ giải captcha miễn phí
Bắt đầu với tín dụng dùng thử miễn phí, không cần thẻ: tạo tài khoản và thử sitekey đầu tiên của bạn.