Résolution de Problèmes

ERROR_PAGEURL : Guide de dépannage des incompatibilités d'URL

ERROR_PAGEURL signifie que le paramètre pageurl ne correspond pas à l'endroit où le CAPTCHA est chargé. Les solveurs valident les jetons par rapport au domaine d'origine, l'URL doit donc être correcte.


Causes courantes

Parce que Exemple
Protocole manquant example.com au lieu de https://example.com
Mauvais domaine www.example.com contre example.com
Rediriger l'URL modifiée Formulaire à /login redirigé vers /auth/login
Inadéquation de l'itinéraire SPA La route JS /app/login ne correspond pas à l'URL du serveur
Problèmes d'encodage d'URL Espaces ou caractères spéciaux non codés
Iframe d'un domaine différent CAPTCHA chargé depuis le sous-domaine

Comment obtenir la bonne URL

Règle : Utilisez l'URL dans la barre d'adresse du navigateur où le CAPTCHA est visible.

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

# WRONG — wrong protocol
pageurl = "http://example.com/login"

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

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

Aide à la validation d'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://example.com/login#section")
# Returns: "https://example.com/login"

Gestion des redirections

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://example.com/login"
final = get_final_url(original)
print(f"Final URL: {final}")
# Use final URL as pageurl

Gestion des SPA (applications à page unique)

Les SPA modifient l'URL via JavaScript sans chargement de page complète. Le domaine du CAPTCHA est ce qui compte :

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

CAPTCHA chargés en Iframe

Lorsqu'un CAPTCHA se charge dans une iframe provenant d'un domaine différent :

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

Soumission correcte

import requests

# Validate URL first
pageurl = validate_pageurl("https://example.com/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')}")

Dépannage

Problème Parce que Corriger
Erreur malgré une URL qui semble correcte Incompatibilité entre www et non-www Vérifiez exactement la barre d'adresse
L'URL fonctionne parfois, échoue dans d'autres La page contient des URL de test A/B Capturer l'URL au moment de la résolution
Jeton résolu mais rejeté par le site incompatibilité de domaine d'URL de page Le domaine du jeton doit correspondre au domaine du site
Fonctionne dans le navigateur mais échoue dans le code Redirection non suivie Utiliser get_final_url()
L'URL comporte des paramètres de requête Des paramètres peuvent être requis Inclure les paramètres de requête nécessaires

FAQ

Le chemin de l’URL est-il important ou uniquement le domaine ?

Le domaine est la partie critique pour la validation des jetons. Cependant, fournissez le chemin complet pour de meilleurs résultats, car certains sites valident l'URL complète.

Dois-je inclure des paramètres de requête ?

Incluez-les s'ils font partie de l'URL visible. Supprimez les paramètres de suivi tels que utm_source qui n'affectent pas le contenu de la page.

Comment gérer les URL qui changent par session ?

Extrayez l'URL de manière dynamique dans votre script d'automatisation. Ne codez pas en dur les URL qui incluent des ID de session ou des jetons.


Guides connexes


Obtenez la bonne URL —résoudre avec CaptchaAI.

Les commentaires sont désactivés pour cet article.