Kısa cevap: CaptchaAI kullanıyorsanız çözüm oranı headless ve başlı Chrome'da birebir aynıdır — CAPTCHA'yı tarayıcı değil, sunucu tarafındaki API çözer. Mod seçimi çözümün başarısını değil iki şeyi etkiler: CAPTCHA'ların ne sıklıkta çıktığını ve reCAPTCHA v3'ün verdiği güven puanını. Karar bu yüzden "hangisi daha iyi çözer" değil, sunucu bütçeniz ve v3 hassasiyetinizle ilgilidir.
Hızlı karşılaştırma
| Faktör | Headless Chrome | Başlı Chrome |
|---|---|---|
| Hız | Hızlı (oluşturma yükü yok) | Daha yavaş (arayüzü çizer) |
| Bellek | ~100-200 MB | ~300-500 MB |
| Sunucu dağıtımı | Doğrudan | Sanal ekran gerektirir |
| CAPTCHA algılaması | Yüksek (tespit edilebilir sinyaller) | Düşük (gerçek kullanıcı gibi görünür) |
| reCAPTCHA v3 puanı | 0,1-0,3 (bot aralığı) | 0,7-0,9 (insan aralığı) |
| Hata ayıklama | Zor (görsel yok) | Kolay (sayfayı görürsünüz) |
| Ölçeklendirme | Mükemmel (düşük kaynak) | Kaynak ağırlıklı |
Performans karşılaştırması
Aşağıdaki değerler gözlemlenen ortalamalardır; donanıma, sürüme ve iş yüküne göre değişir.
| Senaryo | Headless | Başlı | Başlı + Xvfb |
|---|---|---|---|
| Başlangıç süresi | ~1 sn | ~2 sn | ~2,5 sn |
| Sekme başına bellek | 100-200 MB | 300-500 MB | 300-500 MB |
| Sayfa yükü (ortalama) | 1,5 sn | 2,5 sn | 2,5 sn |
| reCAPTCHA v3 puanı | 0,1-0,3 | 0,7-0,9 | 0,5-0,8 |
| Maks. eş zamanlı (8 GB) | 30-40 | 10-15 | 10-15 |
| CAPTCHA çözüm oranı | Aynı (API) | Aynı (API) | Aynı (API) |
Mod yalnızca CAPTCHA sıklığını ve reCAPTCHA v3 puanlarını değiştirir; çözüm kalitesini değil.
Hangi modu seçmelisiniz?
İş yükünüzü aşağıdaki tabloyla eşleştirin:
| Durum | Önerilen mod |
|---|---|
| Ekransız sunucu / CI, yüksek hacim, sınırlı bellek | Headless |
| Görsel hata ayıklama veya headless'ı engelleyen site | Başlı |
| Yüksek reCAPTCHA v3 puanı gereken az sayıda akış | Başlı + Xvfb |
| Sunucuda başlı seviyesinde direnç ama ekran yok | Başlı + Xvfb |
Örnek bir senaryo: İstanbul'daki bir otomasyon geliştiricisi, bir e-ticaret sitesinin ödeme adımını (checkout) tek bir bulut sunucusunda onlarca eş zamanlı oturumla QA'dan geçiriyor. Ekran olmadığı için headless doğal seçim; v3 puanının kritik olduğu az sayıdaki akışta başlı + Xvfb'ye geçiyor. CaptchaAI thread tabanlı faturalandırır: küçük testler BASIC ($15/ay, 5 thread), yüksek eş zamanlılık ADVANCE ($90/ay, 50 thread) ile karşılanır. Fiyatlar USD sabittir; TL dalgalanmasından bağımsız aylık maliyet, Türkiye'deki ekipler için gerçek avantajdır.
Headless Chrome neden yakalanır?
CAPTCHA sistemleri, tarayıcının otomasyon altında olup olmadığını bir dizi sinyalden anlar; headless mod bunları varsayılan olarak ele verir.
Algılama sinyalleri
// Tests that CAPTCHA systems run
// 1. WebDriver flag (biggest tell)
navigator.userAgent // true in headless, undefined in real browser
// 2. Chrome object completeness
window.chrome // Missing or incomplete in headless
// 3. Plugins
navigator.plugins.length // 0 in headless, 3+ in headed
// 4. WebGL renderer
// Headless: "SwiftShader Renderer"
// Headed: "ANGLE (NVIDIA GeForce GTX 1080...)"
// 5. User-Agent contains "Headless"
navigator.userAgent.includes("Headless") // Old Chrome versions
// 6. Screen dimensions
screen.width === 0 // Some headless configs
// 7. Notification permission
Notification.permission // "denied" in headless without override
Algılama testi sonuçları
Aynı testleri üç yapılandırmada çalıştırınca fark netleşir: eski headless neredeyse her sinyalde ele verir, --headless=new bazılarını düzeltir.
Signal Headed Headless New Headless (v112+)
─────────────────────────────────────────────────────────────
webdriver false true true
chrome object full partial improved
plugins 5 0 0
WebGL renderer ANGLE Swift Swift
screen.width 1920 800 800
UA "HeadlessChrome" no yes no (removed)
Chrome'un "yeni headless" modu (v112+)
Chrome 112 ile gelen --headless=new, başlı Chrome ile aynı kod tabanını kullanarak oluşturmayı gerçekçi hale getirir:
from selenium import webdriver
# Old headless (more detectable)
options = webdriver.ChromeOptions()
options.add_argument("--headless") # Legacy mode
# New headless (less detectable)
options = webdriver.ChromeOptions()
options.add_argument("--headless=new") # Shares headed rendering
driver = webdriver.Chrome(options=options)
Yeni headless mod bazı algılama vektörlerini kapatır ancak webdriver bayrağını hâlâ açığa çıkarır ve varsayılanda eklenti taşımaz — "daha iyi" olsa da "görünmez" değildir.
Headless modda CaptchaAI ile çözüm (Python)
CaptchaAI, CAPTCHA'ları sunucu tarafında çözdüğü için headless modda da eşit derecede iyi çalışır; tarayıcı modu çözme API'sini etkilemez. Aşağıdaki akış sürücüyü oluşturur, sitekey'i çıkarır ve token'ı forma yazar:
import requests
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
API_KEY = "YOUR_API_KEY"
API_URL = "https://ocr.captchaai.com"
def create_headless_driver():
options = webdriver.ChromeOptions()
options.add_argument("--headless=new")
options.add_argument("--no-sandbox")
options.add_argument("--no-sandbox")
options.add_argument("--window-size=1920,1080")
options.add_argument(
"--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
)
return webdriver.Chrome(options=options)
def solve_captcha(site_url, sitekey):
resp = requests.post(f"{API_URL}/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": site_url,
"json": 1,
})
task_id = resp.json()["request"]
for _ in range(60):
time.sleep(5)
resp = requests.get(f"{API_URL}/res.php", params={
"key": API_KEY, "action": "get",
"id": task_id, "json": 1,
})
data = resp.json()
if data["request"] != "CAPCHA_NOT_READY":
return data["request"]
raise TimeoutError("Solve timeout")
# Full headless workflow
driver = create_headless_driver()
try:
driver.get("https://example.com/form")
time.sleep(2)
sitekey = driver.execute_script(
"return document.querySelector('[data-sitekey]')?.getAttribute('data-sitekey')"
)
if sitekey:
token = solve_captcha(driver.current_url, sitekey)
driver.execute_script(f"""
document.querySelector('#g-recaptcha-response').value = '{token}';
""")
driver.find_element(By.CSS_SELECTOR, "form").submit()
finally:
driver.quit()
Sunucularda başlı Chrome: sanal ekran
Ekransız sunucuda başlı seviyesi direnç istiyorsanız çözüm Xvfb'dir: fiziksel ekran olmadan gerçek oluşturma sağlayan sanal bir ekran.
Xvfb ile Linux
# Install
sudo apt-get install xvfb
# Run with virtual display
xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24" python script.py
PyVirtualDisplay ile Python
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(1920, 1080))
display.start()
options = webdriver.ChromeOptions()
# No --headless flag = headed mode in virtual display
options.add_argument("--no-sandbox")
options.add_argument("--window-size=1920,1080")
driver = webdriver.Chrome(options=options)
# Now runs headed Chrome with real rendering, but no physical display
Xvfb ile Docker
FROM python:3.12-slim
RUN apt-get update && apt-get install -y \
xvfb \
chromium \
chromium-driver \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . /app
WORKDIR /app
CMD ["xvfb-run", "--auto-servernum", "python", "main.py"]
Node.js'te headless test profilini güçlendirme
puppeteer-extra ve bir eklentiyle headless profilini gerçek tarayıcıya yaklaştırıp CAPTCHA sıklığını düşürebilirsiniz. Görünen CAPTCHA'ları yine CaptchaAI çözer:
const puppeteer = require("puppeteer-extra");
const StealthPlugin = require("puppeteer (varsayılan yapılandırma)");
puppeteer.use(StealthPlugin());
async function headlessStealth() {
const browser = await puppeteer.launch({
headless: "new",
args: [
"--no-sandbox",
"--window-size=1920,1080",
"--no-sandbox",
],
});
const page = await browser.newPage();
await page.setViewport({ width: 1920, height: 1080 });
// Additional QA testi patches
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, "webdriver", {
get: () => undefined,
});
Object.defineProperty(navigator, "plugins", {
get: () => [1, 2, 3, 4, 5],
});
});
await page.goto("https://example.com/form");
// Detect and solve CAPTCHA with CaptchaAI
const sitekey = await page.evaluate(() =>
document.querySelector("[data-sitekey]")?.getAttribute("data-sitekey")
);
if (sitekey) {
// Call CaptchaAI API (see other guides for full implementation)
const token = await solveCaptchaAI(page.url(), sitekey);
await page.evaluate((t) => {
document.querySelector("#g-recaptcha-response").value = t;
}, token);
}
await browser.close();
}
Sık sorulan sorular
Headless mod CAPTCHA'ların daha sık çıkmasına neden olur mu?
Evet. Headless bot benzeri sinyaller ürettiği için siteler daha sık CAPTCHA gösterir. Sanal ekranlı başlı moda geçmek bu sıklığı azaltır — çıkan CAPTCHA'ları yine CaptchaAI çözer.
Ekranı olmayan bir sunucuda başlı Chrome çalıştırabilir miyim?
Evet. Xvfb ile sanal bir ekran oluşturursunuz; Chrome gerçek oluşturma yapar ama fiziksel monitöre ihtiyaç duymaz. xvfb-run veya PyVirtualDisplay yeterlidir.
Headless modda reCAPTCHA v3 puanları nasıl yükseltilir?
Headless'ta 0,7'nin üzeri nadirdir. Başlı + Xvfb'ye geçmek puanı yükseltir; ayrıca CaptchaAI'nin reCAPTCHA v3 çözümü tarayıcı modundan bağımsız olarak yüksek puanlı token döndürür.
Yüksek eş zamanlılık için hangi CaptchaAI planı yeterli?
Eş zamanlı oturum sayınız thread ihtiyacınızı belirler; her plan thread başına sınırsız çözüm içerir:
- Küçük QA işleri: BASIC ($15/ay, 5 thread)
- 50 oturuma kadar ölçeklenen işler: ADVANCE ($90/ay, 50 thread)
Sorun giderme
| Sorun | Sebep | Düzeltme |
|---|---|---|
| Headless tespit edildi | webdriver bayrağı açıkta | Test profili yamaları veya CDP yapılandırması kullanın |
| Headless'ta düşük v3 puanı | Oluşturma sinyalleri eksik | Başlı + Xvfb'ye geçin |
| Xvfb çökmesi | Ekran numarası çakışması | --auto-servernum kullanın |
| Başlı modda yüksek bellek | GPU süreci | --disable-gpu bayrağını ekleyin |
| Headless'ta boş ekran görüntüsü | Yanlış görünüm alanı | --window-size=1920,1080 ayarlayın |
İlgili kılavuzlar
- CaptchaAI hızlı başlangıç rehberi
- Puppeteer + CaptchaAI tarayıcı otomasyonu
- Chrome DevTools Protokolü + CaptchaAI
İş akışınıza doğru tarayıcı modunu seçin, CaptchaAI anahtarınızı alın ve CAPTCHA'ları her yapılandırmada çözün.