Устранение неполадок

ERROR_PAGEURL: Руководство по устранению неполадок с несоответствием URL-адресов

ERROR_PAGEURL означает, что параметр pageurl не соответствует месту загрузки CAPTCHA. Решатели проверяют токены на соответствие исходному домену, поэтому URL-адрес должен быть правильным.


Распространенные причины

Причина Пример
Отсутствует протокол example.com вместо https://example.com
Неправильный домен www.example.com против example.com
Перенаправить измененный URL-адрес Форма на /login перенаправлена ​​на /auth/login
Несоответствие маршрута SPA JS-маршрут /app/login не соответствует URL-адресу сервера
Проблемы с кодировкой URL-адреса Пробелы или специальные символы не закодированы
Iframe из другого домена CAPTCHA загружена из поддомена

Как получить правильный URL-адрес

Правило: используйте URL-адрес в адресной строке браузера, где отображается CAPTCHA.

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

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

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

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

Помощник по проверке 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://https://staging.example.com/qa-login#section")
# Returns: "https://https://staging.example.com/qa-login"

Обработка перенаправлений

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

Обработка SPA (одностраничные приложения)

SPA изменяют URL-адрес через JavaScript без полной загрузки страницы. Домен CAPTCHA имеет значение:

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

CAPTCHA, загружаемые в iframe

Когда CAPTCHA загружается внутри iframe из другого домена:

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

Правильная подача

import requests

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

Поиск неисправностей

Проблема Причина Исправить
Ошибка, несмотря на правильный URL-адрес. Несоответствие www и не-www Проверьте адресную строку точно
URL иногда работает, иногда нет На странице есть тестовые URL-адреса A/B. Захватить URL-адрес во время решения
Токен решен, но отклонен сайтом несоответствие домена pageurl Домен токена должен совпадать с доменом сайта.
Работает в браузере, но не работает в коде Перенаправление не выполнено Используйте get_final_url()
URL-адрес имеет параметры запроса Могут потребоваться параметры Включите необходимые параметры запроса

Часто задаваемые вопросы

Имеет ли значение URL-путь или только домен?

Домен является важной частью проверки токена. Однако для достижения наилучших результатов укажите полный путь, поскольку некоторые сайты проверяют полный URL-адрес.

Должен ли я включать параметры запроса?

Включите их, если они являются частью видимого URL-адреса. Удалите параметры отслеживания, такие как utm_source, которые не влияют на содержимое страницы.

Как обрабатывать URL-адреса, которые меняются в течение сеанса?

Динамическое извлечение URL-адреса в сценарии автоматизации. Не кодируйте URL-адреса, содержащие идентификаторы сеансов или токены.


Связанные руководства


Укажите правильный URL —решить с помощью CaptchaAI.

Комментарии для этой статьи отключены.