Kullanım Senaryoları

CAPTCHA Kazıma için Proxy Rotasyonu

Proxy rotasyonu, istekleri birden fazla IP'ye dağıtarak CAPTCHA sıklığını azaltır. Hala görünen CAPTCHA'ları çözmek için CaptchaAI ile birleştirildiğinde, her türlü anti-bot sistemini idare eden güvenilir bir kazıma hattına sahip olursunuz.

Proxy Rotasyonu CAPTCHA'ları Neden Azaltır?

Siteler, IP başına istek modellerine göre CAPTCHA'ları tetikler:

Faktör Tek IP QA test oturumu'ler
Dakika başına istek 10'dan fazla CAPTCHA'yı tetikler IP'ler arasında dağıtılır
IP itibarı Zamanla bozulur Havuzdan yeni IP'ler
Oturum kalıpları Şüpheli desenler görülüyor IP'lere yayılan desenler
Coğrafi tutarlılık Tek konum Doğal coğrafi çeşitlilik

Kazıma için Proxy Türleri

Tür En İyisi CAPTCHA Oranı Maliyet
Konut Yüksek değerli hedefler (Google, Amazon) En düşük $$$
Mobil Ultra düşük algılama En düşük $$$$
ISP/Static Sürekli oturumlar Düşük $$
Veri merkezi Yüksek hacimli, hoşgörülü siteler Daha yüksek $

Öneri: Agresif CAPTCHA tetikleyicilerine sahip siteler için yerleşik proxy'ler kullanın. Veri merkezi proxy'leri daha az korunan siteler için çalışır.

Temel Proxy Rotasyonu (Python)

import requests
import random
import time

PROXIES = [
    "http://user:pass@proxy1.example.com:8080",
    "http://user:pass@proxy2.example.com:8080",
    "http://user:pass@proxy3.example.com:8080",
]

API_KEY = "YOUR_API_KEY"

def get_random_proxy():
    proxy = random.choice(PROXIES)
    return {"http": proxy, "https": proxy}

def scrape_with_rotation(url):
    proxy = get_random_proxy()
    session = requests.Session()
    session.proxies = proxy
    session.headers.update({
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
    })

    resp = session.get(url)

    # If CAPTCHA appears, solve it
    if "g-recaptcha" in resp.text or "captcha" in resp.text.lower():
        from bs4 import BeautifulSoup
        soup = BeautifulSoup(resp.text, "html.parser")
        rc = soup.find("div", class_="g-recaptcha")
        if rc:
            site_key = rc["data-sitekey"]
            token = solve_captcha(site_key, url)
            resp = session.post(url, data={"g-recaptcha-response": token})

    return resp.text

def solve_captcha(site_key, page_url):
    resp = requests.get("https://ocr.captchaai.com/in.php", params={
        "key": API_KEY, "method": "userrecaptcha",
        "googlekey": site_key, "pageurl": page_url
    })
    task_id = resp.text.split("|")[1]

    for _ in range(60):
        time.sleep(5)
        result = requests.get("https://ocr.captchaai.com/res.php", params={
            "key": API_KEY, "action": "get", "id": task_id
        })
        if result.text == "CAPCHA_NOT_READY": continue
        if result.text.startswith("OK|"): return result.text.split("|")[1]
        raise Exception(result.text)
    raise TimeoutError()

Akıllı Proxy Rotasyonu

Hangi proxy'lerin CAPTCHA'ları tetiklediğini takip edin ve bunlardan kaçının:

from collections import defaultdict
import random

class SmartProxyRotator:
    def __init__(self, proxies):
        self.proxies = proxies
        self.captcha_count = defaultdict(int)
        self.success_count = defaultdict(int)

    def get_proxy(self):
        # Prefer proxies with lower CAPTCHA rates
        scored = []
        for proxy in self.proxies:
            total = self.captcha_count[proxy] + self.success_count[proxy]
            if total == 0:
                score = 0.5  # Unknown proxy, neutral score
            else:
                score = self.success_count[proxy] / total
            scored.append((proxy, score))

        # Weight selection by score
        scored.sort(key=lambda x: x[1], reverse=True)
        top_proxies = scored[:max(len(scored) // 2, 1)]
        proxy = random.choice(top_proxies)[0]
        return proxy

    def report_success(self, proxy):
        self.success_count[proxy] += 1

    def report_captcha(self, proxy):
        self.captcha_count[proxy] += 1

# Usage
rotator = SmartProxyRotator(PROXIES)

def scrape(url):
    proxy = rotator.get_proxy()
    resp = requests.get(url, proxies={"http": proxy, "https": proxy})

    if "captcha" in resp.text.lower():
        rotator.report_captcha(proxy)
        # Solve CAPTCHA...
    else:
        rotator.report_success(proxy)

    return resp.text

Selenyum ile Proxy Rotasyonu

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def create_driver_with_proxy(proxy_url):
    options = Options()
    options.add_argument(f"--proxy-server={proxy_url}")
    options.add_argument("--no-sandbox")
    return webdriver.Chrome(options=options)

# Rotate proxy per session
proxy = random.choice(PROXIES)
driver = create_driver_with_proxy(proxy)
driver.get("https://example.com")

Cloudflare için Proxy + CAPTCHA Çözümü

Cloudflare doğrulama akışı çözümü, CaptchaAI'ye bir proxy iletilmesini gerektirir:

proxy = "http://user:pass@proxy.example.com:8080"

resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY,
    "method": "cloudflare_challenge",
    "pageurl": "https://example.com",
    "proxy": proxy,
    "proxytype": "HTTP"
})
task_id = resp.text.split("|")[1]

# Poll for qa_session_cookie cookie
# Use the same proxy for subsequent requests

En İyi Uygulamalar

  1. Proxy coğrafi konumunu hedefle eşleştir - ABD siteleri için ABD proxy'lerini kullanın
  2. Proxy başına bir oturum - Farklı proxy'lerdeki oturumları yeniden kullanmayın
  3. Proxy başına hız sınırı - IP başına maksimum 5-10 istek/minute
  4. CAPTCHA oranlarını izleyin - Hangi proxy'lerin daha fazla CAPTCHA tetiklediğini takip edin
  5. Yapışkan oturumlar kullanın – Çok adımlı iş akışları için aynı proxy'yi koruyun
  6. Proxy hatalarını giderin - Bağlantı hatalarında farklı bir proxy ile yeniden deneyin

Sorun giderme

Sorun Düzeltme
Tüm proxy'ler CAPTCHA'ları tetikler Kendi sunucu altyapınız'lerine geçin; oranı azalt
Proxy zaman aşımı hataları Yavaş proxy'leri havuzdan kaldırın; zaman aşımını artır
Proxy başına farklı içerik Bazı siteler coğrafi bölgeye özgü içerik sunar; normalleştirmek
CAPTCHA belirteçleri proxy ile çalışmıyor Belirtecin aynı oturumdan kullanıldığından emin olun/IP

SSS

CaptchaAI kullanırsam proxy'lere ihtiyacım var mı?

Kesinlikle değil - CaptchaAI, CAPTCHA'ları ne olursa olsun çözebilir. Ancak proxy'ler, CAPTCHA'ların görünme sıklığını azaltarak zamandan ve API maliyetlerinden tasarruf sağlar.

CAPTCHA çözme ve kazıma için aynı proxy'yi kullanmalı mıyım?

Çoğu CAPTCHA türü için belirteç, IP'den bağımsız olarak geçerlidir. Cloudflare doğrulama akışı için, qa_session_cookie çerezi IP'ye bağlı olduğundan aynı proxy'yi kullanmanız gerekir.

Kaç tane proxy'ye ihtiyacım var?

Orta düzeyde kazıma için (1000 sayfa/day), 10-20 adet dönüşümlü kendi sunucu altyapınız'si yeterlidir. Yüksek hacim için otomatik rotasyona sahip bir proxy sağlayıcı kullanın.

İlgili Kılavuzlar

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