Pemecahan Masalah

ERROR_PAGEURL: Panduan Mengatasi URL Mismatch

ERROR_PAGEURL berarti parameter pageurl tidak cocok dengan tempat CAPTCHA di-load. Solver memvalidasi token terhadap domain asal, sehingga URL harus tepat.


Penyebab Umum

Penyebab Contoh
Protokol tidak ada example.com bukan https://example.com
Domain salah www.example.com vs example.com
Redirect mengubah URL Form di /login di-redirect ke /auth/login
Mismatch route SPA Route JS /app/login tidak cocok dengan URL server
Masalah URL encoding Spasi atau karakter khusus tidak di-encode
iframe dari domain berbeda CAPTCHA di-load dari subdomain

Cara Mendapatkan URL yang Benar

Aturan: Gunakan URL di bilah alamat browser tempat CAPTCHA terlihat.

# 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://www.staging.example.com/qa-login"

Helper Validasi 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"

Menangani Redirect

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

Menangani SPA (Single Page Application)

SPA mengubah URL melalui JavaScript tanpa memuat halaman penuh. Domain CAPTCHA adalah yang terpenting:

# 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 yang Di-load dalam iframe

Saat CAPTCHA dimuat di dalam iframe dari domain berbeda:

# 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"

Submit yang Benar

import requests

# Validasi URL terlebih dahulu
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')}")

Pemecahan Masalah

Masalah Penyebab Perbaikan
Error meskipun URL terlihat benar Mismatch www vs non-www Periksa address bar dengan teliti
Terkadang berhasil, terkadang gagal Halaman memiliki URL A/B testing Tangkap URL pada saat solve
Token di-solve tapi ditolak situs Mismatch domain pageurl Domain token harus cocok dengan domain situs
Berhasil di browser tapi gagal di kode Redirect tidak diikuti Gunakan get_final_url()
URL memiliki query parameter Parameter mungkin diperlukan Sertakan query parameter yang diperlukan

Pertanyaan Umum

Apakah path URL penting atau hanya domain-nya saja?

Domain adalah bagian terpenting untuk validasi token. Namun berikan path lengkap untuk hasil terbaik, karena beberapa situs memvalidasi URL lengkap.

Haruskah saya menyertakan query parameter?

Sertakan jika itu bagian dari URL yang terlihat. Hapus parameter tracking seperti utm_source yang tidak memengaruhi konten halaman.

Bagaimana cara menangani URL yang berubah per sesi?

Ekstrak URL secara dinamis dalam skrip otomatisasi Anda. Jangan hardcode URL yang menyertakan session ID atau token.


Panduan Terkait

  • Diagnosis ERROR_WRONG_GOOGLEKEY

Dapatkan URL yang benar — solve dengan CaptchaAI.

Komentar dinonaktifkan untuk artikel ini.