Khắc Phục Sự Cố

ERROR_PAGEURL: Hướng dẫn khắc phục sự cố URL không khớp

ERROR_PAGEURL có nghĩa là tham số pageurl không khớp với vị trí tải CAPTCHA. Bộ giải xác thực mã thông báo dựa trên miền gốc, do đó URL phải chính xác.


Nguyên nhân phổ biến

nguyên nhân Ví dụ
Thiếu giao thức example.com thay vì https://example.com
Tên miền sai www.example.com vs example.com
Chuyển hướng URL đã thay đổi Biểu mẫu tại /login được chuyển hướng đến /auth/login
Tuyến đường SPA không khớp Tuyến JS /app/login không khớp với URL máy chủ
Sự cố mã hóa URL Dấu cách hoặc ký tự đặc biệt không được mã hóa
Iframe từ miền khác CAPTCHA được tải từ tên miền phụ

Cách lấy URL chính xác

Quy tắc: Sử dụng URL trong thanh địa chỉ của trình duyệt nơi hiển thị CAPTCHA.

# WRONG — incomplete URL
pageurl = "staging.example.com/qa-login"

# WRONG — wrong protocol
pageurl = "https://staging.example.com/qa-login"

# CORRECT — full URL with protocol
pageurl = "https://staging.example.com/qa-login"

# CORRECT — with www if that's what the page uses
pageurl = "https://staging.example.com/qa-login"

Trình trợ giúp xác thực URL

from urllib.parse import urlparse

def validate_pageurl(url):
    """Validate pageurl before API submission."""
    parsed = urlparse(url)

    if not parsed.scheme:
        raise ValueError(f"Missing protocol: {url}. Use https://")

    if parsed.scheme not in ("http", "https"):
        raise ValueError(f"Invalid protocol: {parsed.scheme}")

    if not parsed.netloc:
        raise ValueError(f"Missing domain: {url}")

    # Remove fragment (hash) — not sent to server
    clean = f"{parsed.scheme}://{parsed.netloc}{parsed.path}"
    if parsed.query:
        clean += f"?{parsed.query}"

    return clean

# Usage
url = validate_pageurl("https://staging.example.com/qa-login#section")
# Returns: "https://staging.example.com/qa-login"

Xử lý chuyển hướng

import requests

def get_final_url(url):
    """Follow redirects to get the actual page URL."""
    resp = requests.get(url, allow_redirects=True, timeout=15)
    return resp.url

# If the login page redirects
original = "https://staging.example.com/qa-login"
final = get_final_url(original)
print(f"Final URL: {final}")
# Use final URL as pageurl

Xử lý SPA (Ứng dụng một trang)

SPA thay đổi URL thông qua JavaScript mà không cần tải toàn bộ trang. Tên miền của CAPTCHA mới là điều quan trọng:

# For SPAs, use the domain root + the route shown in the address bar
# NOT the API endpoint that the form submits to

# WRONG — API endpoint
pageurl = "https://api.example.com/v1/auth/login"

# CORRECT — the page URL shown in browser
pageurl = "https://staging.example.com/qa-login"

CAPTCHA được tải bằng khung nội tuyến

Khi CAPTCHA tải bên trong iframe từ một miền khác:

# If the CAPTCHA is on the MAIN page
pageurl = "https://example.com/register"  # Main page URL

# If the CAPTCHA is in an IFRAME with a different domain
# Still use the main page URL, not the iframe src
pageurl = "https://example.com/register"
# NOT: "https://captcha-frame.example.com/challenge"

Gửi đúng

import requests

# Validate URL first
pageurl = validate_pageurl("https://staging.example.com/qa-login")

resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": pageurl,
    "json": 1,
})
result = resp.json()

if result.get("status") == 1:
    print(f"Task ID: {result['request']}")
else:
    print(f"Error: {result.get('request')}")

Khắc phục sự cố

Vấn đề Nguyên nhân Cách xử lý
Lỗi mặc dù URL trông chính xác www và không phải www không khớp Kiểm tra chính xác thanh địa chỉ
URL đôi khi hoạt động, đôi khi không thành công Trang có URL thử nghiệm A/B Chụp URL tại thời điểm giải quyết
Mã thông báo đã được giải quyết nhưng bị trang web từ chối tên miền pageurl không khớp Miền mã thông báo phải khớp với miền trang web
Hoạt động trong trình duyệt nhưng không có mã Chuyển hướng không được theo dõi Sử dụng get_final_url()
URL có tham số truy vấn Các thông số có thể được yêu cầu Bao gồm các thông số truy vấn cần thiết

Câu hỏi thường gặp

Đường dẫn URL có quan trọng hay chỉ tên miền?

Miền là phần quan trọng để xác thực mã thông báo. Tuy nhiên, hãy cung cấp đường dẫn đầy đủ để có kết quả tốt nhất vì một số trang web xác thực URL đầy đủ.

Tôi có nên bao gồm các tham số truy vấn không?

Bao gồm chúng nếu chúng là một phần của URL hiển thị. Xóa các tham số theo dõi như utm_source không ảnh hưởng đến nội dung trang.

Làm cách nào để xử lý các URL thay đổi mỗi phiên?

Trích xuất URL động trong tập lệnh tự động hóa của bạn. Không mã hóa cứng các URL bao gồm ID phiên hoặc mã thông báo.


Hướng dẫn liên quan


Nhận đúng URL —giải quyết với CaptchaAI.

Os comentários estão desativados para este artigo.