Sorun Giderme

Cloudflare Mücadele Döngüsü: Mücadeleler Neden Tekrarlanıyor?

Cloudflare doğrulama akışı'yi CaptchaAI aracılığıyla çözdünüz, qa_session_cookie çerezini aldınız, oturumunuza yerleştirdiniz ve meydan okuma sayfası yeniden belirdi. Bu döngü, çerez oturum bağlamıyla eşleşmediğinde meydana gelir. İşte her neden ve nasıl düzeltileceği.


CaptchaAI, bir Cloudflare doğrulama akışı'yi çözdüğünde, bir qa_session_cookie çerezi döndürür. Bu çerez aşağıdakilere bağlıdır:

  1. Çözüm sırasında kullanılan proxy IP
  2. Çözüm sırasında kullanılan Kullanıcı Aracısı
  3. Hedef sitenin alan adı

Bunlardan herhangi birinin çözümü ile sonraki isteğiniz arasında farklılık olması durumunda Cloudflare çerezi reddeder ve sorgulamayı tekrar gösterir.


Neden 1: Kullanıcı-Aracı uyumsuzluğu

En yaygın neden. CaptchaAI'ye gönderdiğiniz Kullanıcı Aracısı, isteklerinizdeki Kullanıcı Aracısı ile tam olarak eşleşmelidir.

import requests

USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"

# Step 1: Solve with the SAME User-Agent
solve_data = {
    "key": "YOUR_API_KEY",
    "method": "cloudflare_challenge",
    "pageurl": "https://example.com",
    "proxy": "host:port:user:pass",
    "proxytype": "HTTP",
    "userAgent": USER_AGENT,  # Must match step 2
    "json": 1
}
submit = requests.post("https://ocr.captchaai.com/in.php", data=solve_data).json()

# ... poll for result ...

# Step 2: Use the SAME User-Agent in subsequent requests
session = requests.Session()
session.headers["User-Agent"] = USER_AGENT  # Must match step 1
session.cookies.set("qa_session_cookie", qa_session_cookie_value, domain=".example.com")
resp = session.get("https://example.com")

Neden 2: Proxy IP uyuşmazlığı

qa_session_cookie çerezi, sorunu çözen IP'ye bağlıdır. Siteyi farklı bir IP'den talep etmeniz durumunda çerez reddedilir.

PROXY = "host:port:user:pass"

# Solve with this proxy
solve_data = {
    "key": "YOUR_API_KEY",
    "method": "cloudflare_challenge",
    "pageurl": "https://example.com",
    "proxy": PROXY,
    "proxytype": "HTTP",
    "userAgent": USER_AGENT,
    "json": 1
}

# Use the SAME proxy for subsequent requests
session.proxies = {
    "http": f"http://user:pass@host:port",
    "https": f"http://user:pass@host:port"
}

Önemli: QA test oturumu'ler kullanıyorsanız yapışkan bir oturuma sabitleyin. IP, çözme ve tarama arasında aynı kalmalıdır.


Neden 3: Çerez doğru şekilde ayarlanmadı

qa_session_cookie çerezi doğru niteliklere sahip doğru alanda ayarlanmalıdır.

# WRONG — setting on wrong domain
session.cookies.set("qa_session_cookie", value, domain="example.com")

# CORRECT — include the dot prefix for subdomain coverage
session.cookies.set("qa_session_cookie", value, domain=".example.com")

# Or set all cookies returned by CaptchaAI
for cookie_str in result.get("cookies", "").split(";"):
    if "qa_session_cookie" in cookie_str:
        name, val = cookie_str.strip().split("=", 1)
        session.cookies.set(name.strip(), val.strip(), domain=".example.com")

Neden 4: Çerezin süresi doldu

qa_session_cookie çerezlerinin kullanım ömrü sınırlıdır; genellikle 15-30 dakika. Süre dolduktan sonra Cloudflare mücadeleyi tekrar gösterir.

Düzeltme: Çerez yaşını takip edin ve geçerlilik süresi dolmadan yeniden çözün.

import time

last_solve_time = None
COOKIE_TTL = 900  # 15 minutes

def get_qa_session_cookie():
    global last_solve_time
    if last_solve_time and (time.time() - last_solve_time) < COOKIE_TTL:
        return  # Cookie still valid

    # Solve again
    qa_session_cookie = solve_cloudflare_challenge()
    session.cookies.set("qa_session_cookie", qa_session_cookie, domain=".example.com")
    last_solve_time = time.time()

Neden 5: TLS test profil yapılandırması uyuşmazlığı

Cloudflare, TLS parmak izlerini kontrol eder. Python'un requests kütüphanesi Chrome'dan farklı bir TLS parmak izine sahiptir. Bazı siteler, TLS test profil yapılandırması eşleşmediğinde geçerli qa_session_cookie ile bile istekleri reddeder.

Düzeltme: Tarayıcı benzeri TLS parmak izleri için curl_cffi veya tls-client kullanın.

pip install curl_cffi
from curl_cffi import requests as curl_requests

session = curl_requests.Session(impersonate="chrome120")
session.cookies.set("qa_session_cookie", value, domain=".example.com")
resp = session.get("https://example.com")

Hata ayıklama kontrol listesi

Challenge keeps repeating
    ↓
User-Agent in solve request matches browsing request? → No → Sync User-Agent
    ↓ Yes
Same proxy IP for solve and browse? → No → Pin proxy IP (sticky session)
    ↓ Yes
Cookie set on correct domain (.example.com)? → No → Fix domain
    ↓ Yes
Cookie less than 15 minutes old? → No → Re-solve the challenge
    ↓ Yes
TLS test profil yapılandırması matches a browser? → No → Use curl_cffi or tls-client
    ↓ Yes
Site may have additional bot detection → Use headless browser instead

SSS

Tipik olarak 15-30 dakika. Bazı siteler daha kısa süreler belirler. Süre dolmadan proaktif olarak yeniden çözün.

Kullanıcı Aracısında belirli bir Chrome sürümüne ihtiyacım var mı?

Güncel, gerçekçi bir Kullanıcı Aracısı kullanın. Eski Kullanıcı Aracıları Cloudflare kontrollerini daha agresif bir şekilde tetikler.

Evet, aynı etki alanında oldukları ve aynı IP'yi ve Kullanıcı Aracısını kullandığınız sürece.


Cloudflare doğrulama akışı'leri CaptchaAI ile çözün

Meydan okuma döngüsünü şu saatte kır:captchaai.com.


İlgili kılavuzlar

Bu makale için yorumlar devre dışı bırakılmıştır.