ERROR_PAGEURL يعني أن المعلمة pageurl لا تتطابق مع مكان تحميل اختبار CAPTCHA. تقوم الحلول بالتحقق من صحة الرموز المميزة مقابل المجال الأصلي، لذلك يجب أن يكون عنوان URL صحيحًا.
الأسباب الشائعة
| السبب | مثال |
|---|---|
| بروتوكول مفقود | example.com بدلاً من https://example.com |
| مجال خاطئ | www.example.com vs example.com |
| إعادة توجيه عنوان URL الذي تم تغييره | تمت إعادة توجيه النموذج الموجود في /login إلى /auth/login |
| عدم تطابق مسار SPA | مسار JS /app/login لا يطابق عنوان URL للخادم |
| مشكلات ترميز URL | المسافات أو الأحرف الخاصة غير مشفرة |
| Iframe من مجال مختلف | تم تحميل اختبار CAPTCHA من النطاق الفرعي |
كيفية الحصول على عنوان URL الصحيح
القاعدة: استخدم عنوان URL في شريط عنوان المتصفح حيث يكون اختبار CAPTCHA مرئيًا.
# 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"
مساعد التحقق من صحة 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"
التعامل مع عمليات إعادة التوجيه
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
التعامل مع 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://example.com/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://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')}")
استكشاف الأخطاء وإصلاحها
| المشكلة | السبب | الإجراء |
|---|---|---|
| خطأ على الرغم من أن عنوان URL يبدو صحيحًا | عدم تطابق www مقابل غير www | تحقق من شريط العناوين بالضبط |
| يعمل عنوان URL أحيانًا، ويفشل في البعض الآخر | تحتوي الصفحة على عناوين URL للاختبار A/B | التقاط عنوان URL في وقت الحل |
| تم حل الرمز ولكن تم رفضه بواسطة الموقع | عدم تطابق نطاق pageurl | يجب أن يتطابق مجال الرمز المميز مع مجال الموقع |
| يعمل في المتصفح ولكنه فشل في التعليمات البرمجية | لم تتم متابعة إعادة التوجيه | استخدم get_final_url() |
| يحتوي عنوان URL على معلمات استعلام | قد تكون المعلمات مطلوبة | قم بتضمين معلمات الاستعلام الضرورية |
الأسئلة الشائعة
هل مسار URL مهم أم المجال فقط؟
المجال هو الجزء الحاسم للتحقق من صحة الرمز المميز. ومع ذلك، قم بتوفير المسار الكامل للحصول على أفضل النتائج، حيث تتحقق بعض المواقع من صحة عنوان URL الكامل.
هل يجب علي تضمين معلمات الاستعلام؟
قم بتضمينها إذا كانت جزءًا من عنوان URL المرئي. قم بإزالة معلمات التتبع مثل utm_source التي لا تؤثر على محتوى الصفحة.
كيف أتعامل مع عناوين URL التي تتغير في كل جلسة؟
قم باستخراج عنوان URL ديناميكيًا في البرنامج النصي للأتمتة لديك. لا تقم بترميز عناوين URL التي تتضمن معرفات الجلسة أو الرموز المميزة.
أدلة ذات صلة
- البدء السريع مع CaptchaAI: حلّ أول كابتشا في 5 دقائق
- خطأ في تتبع الميزانية لاختبار CAPTCHA لحل الموثوقية
احصل على عنوان URL الصحيح —حل مع CaptchaAI.