OpenClaw ile Anti-Bot Kontrollerini Aşma: Scrapling Kullanımı

Ashley Innocent

Ashley Innocent

5 March 2026

OpenClaw ile Anti-Bot Kontrollerini Aşma: Scrapling Kullanımı

Kurumsal Apidog

Şirket İçi Dağıtım

SSO & RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfet

TL;DR

Scrapling, StealthyFetcher ve DynamicFetcher modları aracılığıyla güçlü bot önleme geçiş yetenekleri sunar. Cloudflare korumalı siteler (otomatik Turnstile çözme, canvas parmak izi rastgeleleştirme, WebRTC engelleme) için StealthyFetcher'ı veya yoğun JavaScript kullanan bot önleme uygulamaları için DynamicFetcher'ı kullanın. Tüm kazıma işlemlerini doğal dil komutları aracılığıyla kontrol etmek için OpenClaw ile entegre edin.

Giriş

Veri toplamak için bir web sitesini ziyaret edersiniz. Sayfa yüklenir. Sonra onu görürsünüz: "Erişim Reddedildi" veya bir CAPTCHA doğrulaması. Site, kazıyıcınızı tespit etti ve erişimi engelledi. Bu senaryo, meşru projeler için web verilerine ihtiyaç duyan geliştiriciler, veri bilimciler ve araştırmacılar için sürekli olarak yaşanır.

Bu, web sitelerinin giderek daha sofistike bot önleme sistemleri kullanması nedeniyle olur. Cloudflare, PerimeterX, Akamai ve benzeri hizmetler, otomatik erişimi tanımlamak için tarayıcı parmak izlerini, davranış kalıplarını ve istek özelliklerini analiz eder. Geleneksel kazıyıcılar, bu savunmalara karşı anında başarısız olur.

Bot tespit endüstrisi, milyarlarca dolarlık bir pazar haline geldi. Şirketler, dijital varlıklarını otomatik erişimden korumak için yoğun yatırım yapıyor. Yalnızca Cloudflare, her gün milyarlarca bot isteğini engellediğini rapor ediyor. Bu durum, pazar araştırması, rekabet analizi, fiyat izleme veya akademik araştırma gibi meşru veri toplama için önemli zorluklar yaratır.

Scrapling bu sorunu çözer. Kütüphane, bu korumaları aşmak için özel olarak tasarlanmış birden fazla tespit önleme modu içerir. OpenClaw'ın doğal dil arayüzü ile birleştiğinde, karmaşık kod yazmadan bot önleme kontrollerini aşması için yapay zeka asistanınıza talimat verebilirsiniz.

💡
API geliştirme ve test iş akışları için Apidog, web kazıma yeteneklerini tamamlayan kapsamlı araçlar sunarak korumalı sitelerden topladığınız verileri test etmenize ve doğrulamanıza olanak tanır.
button

Bot Önleme Tespitini Anlamak

Tespiti aşmadan önce, nasıl çalıştığını anlamanız gerekir. Bot önleme sistemleri birkaç faktörü analiz eder:

Tarayıcı Parmak İzi: Siteler, ekran çözünürlüğü, yüklü yazı tipleri, WebGL işleyici, canvas çıktısı ve yüzlerce diğer sinyal dahil olmak üzere tarayıcınız hakkında bilgi toplar. Otomatik araçlar, gerçek tarayıcılardan farklı olan tutarlı parmak izleri aracılığıyla kendilerini genellikle ifşa eder.

Davranışsal Analiz: İnsan kullanıcılar farelerini öngörülemeyen şekillerde hareket ettirir, farklı hızlarda kaydırır ve doğal zamanlamayla yazarlar. Botlar ise genellikle mekanik kalıplar sergiler: anında sayfa yüklemeleri, tekdüze kaydırma hızları, eylemler arasında mükemmel zamanlama.

İstek Analizi: Her HTTP isteği, başlıkları, TLS parmak izlerini ve bağlantı kalıplarını içerir. 'requests' gibi standart HTTP kütüphaneleri, gerçek tarayıcı trafiğine kıyasla açıkça otomatik görünen istekler yapar.

JavaScript Zorlukları: Modern siteler, tarayıcı bilgilerini toplamak için JavaScript çalıştırır. Örneğin Cloudflare'ın Turnstile'ı, içeriği göstermeden önce tarayıcı bütünlüğünü doğrulayan görünmez testler yapar.

IP İtibarı: IP adresleri, barındırma sağlayıcısına, şüpheli etkinlik geçmişine ve coğrafi konuma göre işaretlenir. Veri merkezi IP'leri anında şüphe uyandırır.

Scrapling, uzmanlaştırılmış fetcher'ları aracılığıyla bu tespit vektörlerinin her birini ele alır.

Scrapling'in Bot Önleme Yetenekleri

Scrapling, bot önleme sistemlerini aşmak için iki ana fetcher sunar:

image-73

StealthyFetcher, çoğu Cloudflare ve benzeri korumayı yönetir. Yaygın tespit vektörlerini otomatik olarak yamalayan, yerleşik kaçınma teknikleriyle başsız Chrome kullanır.

DynamicFetcher, Playwright aracılığıyla tam tarayıcı otomasyonu sağlar. StealthyFetcher başarısız olduğunda veya site gelişmiş JavaScript tabanlı tespit kullandığında kullanın.

Nasıl seçeceğiniz aşağıdadır:

Senaryo Önerilen Fetcher
Cloudflare koruması StealthyFetcher
Turnstile CAPTCHA StealthyFetcher
Temel bot tespiti StealthyFetcher
Karmaşık JavaScript zorlukları DynamicFetcher
Bot önleme ile sonsuz kaydırma DynamicFetcher
Özel bot önleme çözümleri DynamicFetcher

StealthyFetcher Derinlemesine İnceleme

StealthyFetcher, Scrapling'in bot önleme sistemlerini aşmak için birincil aracıdır. Çoğu yaygın koruma mekanizmasını otomatik olarak yönetir.

Temel Kullanım

from scrapling.fetchers import StealthyFetcher

fetcher = StealthyFetcher()
page = fetcher.get('https://protected-site.com')
print(page.text)

Fetcher, Cloudflare, PerimeterX ve benzeri korumaları otomatik olarak aşmaya çalışır.

Cloudflare Turnstile Aşımı

Cloudflare Turnstile, en yaygın bot önleme zorluklarından biridir. StealthyFetcher bunu otomatik olarak çözer:

page = StealthyFetcher.fetch(
    'https://cloudflare-protected-site.com',
    solve_cloudflare=True
)

solve_cloudflare=True parametresi otomatik zorluk çözümünü tetikler. Bu, hem geçiş zorlukları (siteye erişmeden önce tarayıcınız kontrol ediliyor sayfası) hem de Turnstile widget'ları için çalışır.

Canvas Parmak İzi Rastgeleleştirme

Canvas parmak izi alma, tarayıcınızın grafikleri nasıl işlediğine göre benzersiz tanımlayıcılar oluşturur. StealthyFetcher, canvas işlemlerine rastgele gürültü ekler:

page = StealthyFetcher.fetch(
    'https://site.com',
    hide_canvas=True
)

Her istek farklı canvas çıktısı üreterek parmak izi takibini etkisiz hale getirir.

WebRTC Sızıntı Önleme

WebRTC, proxy kullanırken bile gerçek IP adresinizi açığa çıkarabilir. StealthyFetcher, WebRTC isteklerini engeller:

page = StealthyFetcher.fetch(
    'https://site.com',
    block_webrtc=True
)

Bu, kimliğinizi veya konumunuzu ortaya çıkarabilecek yerel IP sızıntılarını önler.

Google Arama Yönlendirenini Taklit Etme

Birçok site, trafiğin Google aramasından geldiğini düşündüğünde erişime izin verir. StealthyFetcher bu yönlendireni taklit eder:

page = StealthyFetcher.fetch(
    'https://site.com',
    google_search=True
)

Bu, isteğin Google'ın arama sonuçları sayfasından geliyormuş gibi görünmesini sağlar.

Yüklü Chrome Kullanımı

Maksimum kaçınma için, Playwright'ın Chromium'u yerine yüklü Chrome tarayıcınızı kullanın:

page = StealthyFetcher.fetch(
    'https://site.com',
    real_chrome=True
)

Bu, meşru bir tarayıcı parmak izine sahip olan gerçek Chrome kurulumunuzu kullanır.

Coğrafi Taklit

İsteğinizi belirli bir konuma eşleştirin:

page = StealthyFetcher.fetch(
    'https://site.com',
    locale='en-US',
    timezone_id='America/New_York'
)

Bu, tarayıcı saat dilimi ve dil ayarlarını istediğiniz konumla eşleşecek şekilde ayarlar.

Gelişmiş Koruma için DynamicFetcher

Bazı siteler, StealthyFetcher'ın aşamadığı sofistike bot önleme sistemleri kullanır. DynamicFetcher, Playwright ile tam tarayıcı otomasyonu sağlar:

from scrapling.fetchers import DynamicFetcher

fetcher = DynamicFetcher()
page = fetcher.get('https://highly-protected-site.com')
print(page.text)

Sonsuz Kaydırmayı Yönetme

Sonsuz kaydırma ve bot önleme korumasına sahip siteler tarayıcı otomasyonu gerektirir:

from scrapling.fetchers import DynamicFetcher
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    fetcher = DynamicFetcher(playwright=p)
    page = fetcher.get('https://site.com/infinite-scroll')

    # İçeriğin yüklenmesini bekle
    page.wait_for_selector('.content-item')

    # Daha fazla yüklemek için kaydır
    for _ in range(5):
        page.evaluate('window.scrollTo(0, document.body.scrollHeight)')
        page.wait_for_timeout(1000)

JavaScript Yürütmesinin Beklenmesi

Bazı içerikler, başlangıçtaki sayfa yüklemesinden sonra JavaScript aracılığıyla yüklenir:

page = DynamicFetcher.get('https://site.com')
page.wait_for_load_state('networkidle')
content = page.content()

Bu, içeriği çıkarmadan önce tüm JavaScript'in yürütüldüğünden emin olur.

CAPTCHA'ları Manuel Olarak Yönetme

Otomatik olarak çözülemeyen CAPTCHA'lar için:

page = DynamicFetcher.get('https://site.com')

# CAPTCHA'nın mevcut olup olmadığını kontrol et
if page.is_visible('.captcha-container'):
    # Manuel çözüm için ekran görüntüsü al
    page.screenshot(path='captcha.png')
    # Manuel çözümden sonra devam et
    page.click('.captcha-submit')

Manuel müdahale için duraklayabilir, CAPTCHA'yı kendiniz çözebilir ve kazımaya devam edebilirsiniz.

OpenClaw ile Kullanım

OpenClaw, Scrapling'in bot önleme yeteneklerini doğal dil aracılığıyla kontrol etmenizi sağlar (Scrapling'i OpenClaw içinde nasıl kuracağınızı kontrol etmek isterseniz, bu gönderiyi inceleyin):

Bir sitedeki Cloudflare'ı aşın:

"Get the product data from https://shop.example.com, this site has Cloudflare protection"

OpenClaw, solve_cloudflare etkinleştirilmiş olarak StealthyFetcher'ı otomatik olarak kullanır.

Gelişmiş korumalı bir siteyi yönetin:

"Scrape the job listings from https://careers.example.com, use headless browser mode because they have strong anti-bot protection"

OpenClaw, tam tarayıcı otomasyonu için DynamicFetcher'a geçer.

Proxy rotasyonu kullanın:

"Extract data from these 100 URLs, rotate through these proxies: proxy1.com:8080, proxy2.com:8080, proxy3.com:8080"

OpenClaw, istekleri birden fazla proxy'ye dağıtır.

Coğrafi konumu taklit edin:

"Get the price data from https://site.com, use US East Coast settings"

OpenClaw, saat dilimi ve yerel ayarı eşleşecek şekilde yapılandırır.

Bot Önleme Teknikleri Açıklandı

Temel teknikleri anlamak, doğru yaklaşımı seçmenize yardımcı olur:

TLS Parmak İzi Taklit Etme

Tarayıcınız bir web sitesine bağlandığında, bir TLS el sıkışması gerçekleştirir. ClientHello mesajı, istemci kütüphanenizi tanımlayan özellikleri içerir. Standart Python istekleri, bot önleme sistemlerinin tanıdığı belirgin parmak izlerine sahiptir.

Scrapling, meşru tarayıcılar gibi görünmek için TLS parmak izlerini taklit eder. Bu, StealthyFetcher ve DynamicFetcher ile otomatik olarak gerçekleşir.

User-Agent Rotasyonu

Aynı User-Agent dizisi ile istek göndermek tespiti tetikler. Scrapling, User-Agent'ları otomatik olarak döndürür:

# User-Agent otomatik olarak döndürülür
page = StealthyFetcher.get('https://site.com')

Her istek farklı bir tarayıcı sürümünden geliyormuş gibi görünür.

Başlık Taklit Etme

Gerçek tarayıcılar belirli başlıklarda belirli sıralarda gönderir. Scrapling, başlıkların meşru tarayıcı davranışıyla otomatik olarak eşleşmesini sağlar.

Canvas Rastgeleleştirme

Bir web sitesi tarayıcınızdan bir şey çizmesini istediğinde, kesin pikseller tarayıcınızı ve GPU'nuzu ortaya çıkarır. Scrapling, canvas işlemlerine algılanamayan gürültü ekleyerek her parmak izini benzersiz kılar.

Ekran Çözünürlüğü ve Pencere Boyutu

Başsız tarayıcılar genellikle varsayılan ekran boyutlarını rapor eder. Scrapling, görüntü alanı boyutlarını gerçek kullanıcı ekranlarıyla eşleşecek şekilde rastgeleleştirir.

Fare Hareketi Simülasyonu

DynamicFetcher, insan benzeri fare hareketlerini simüle edebilir:

page.mouse.move_to_element('.button')
page.mouse.move_by_offset(50, 20)
page.click('.submit')

Bu, davranışsal analizi geçen gerçekçi hareket kalıpları ekler.

Proxy Entegrasyonu

Proxy kullanmak, IP tabanlı engellemeyi önlemeye ve coğrafi kazımayı etkinleştirmeye yardımcı olur:

Temel Proxy Kullanımı

from scrapling.fetchers import StealthyFetcher

fetcher = StealthyFetcher()
page = fetcher.get(
    'https://site.com',
    proxy='http://username:password@proxy.example.com:8080'
)

Proxy Rotasyonu

Büyük ölçekli kazıma için birden fazla proxy arasında geçiş yapın:

import random
from scrapling.fetchers import StealthyFetcher

proxies = [
    'http://proxy1.com:8080',
    'http://proxy2.com:8080',
    'http://proxy3.com:8080'
]

fetcher = StealthyFetcher()

for url in urls:
    proxy = random.choice(proxies)
    page = fetcher.get(url, proxy=proxy)
    # Sayfayı işle

Konut Proxy'leri

Konut proxy'leri, gerçek internet servis sağlayıcılarından IP adresleri kullanır. Veri merkezi IP'lerinden daha zor tespit edilirler:

page = StealthyFetcher.get(
    'https://site.com',
    proxy='http://residential-proxy-provider:port'
)

Konut proxy'leri daha pahalıdır ancak korumalı sitelerde önemli ölçüde daha yüksek başarı oranları sağlar.

Yaygın Bot Önleme Senaryoları

Cloudflare Koruması

Cloudflare, en yaygın bot önleme çözümüdür. Çoğu site temel StealthyFetcher ile çalışır:

page = StealthyFetcher.fetch('https://cloudflare-site.com', solve_cloudflare=True)

Cloudflare bir zorluk sayfası gösterirse, fetcher bunu otomatik olarak çözer ve tekrar dener.

PerimeterX (Şimdi Ownl)

PerimeterX (şimdi Ownl'ın bir parçası), davranışsal analiz kullanır:

# PerimeterX için DynamicFetcher kullanın
page = DynamicFetcher.get('https://perimeterx-site.com')

Tam tarayıcı otomasyonu, davranışsal zorlukları daha iyi yönetir.

Akamai

Akamai, kurumsal düzeyde bot yönetimi sağlar:

# Akamai genellikle konut proxy'leri gerektirir
page = StealthyFetcher.get(
    'https://akamai-protected.com',
    proxy='http://residential-proxy:port',
    solve_cloudflare=True
)

Akamai korumalı siteler genellikle birden fazla kaçınma tekniğini birleştirmeyi gerektirir.

Özel Bot Önleme Çözümleri

Bazı siteler kendi tespit sistemlerini oluşturur:

# Maksimum gizlilik ayarlarını kullanın
page = StealthyFetcher.fetch(
    'https://custom-protected.com',
    solve_cloudflare=True,
    block_webrtc=True,
    hide_canvas=True,
    google_search=True,
    real_chrome=True
)

Bu başarısız olursa, tam tarayıcı otomasyonu ile DynamicFetcher'a geçin.

En İyi Uygulamalar

Basit Başlayın

Temel StealthyFetcher ile başlayın. Yalnızca engellemelerle karşılaştığınızda karmaşıklık ekleyin:

# Önce temeli dene
page = StealthyFetcher.get('https://site.com')

# Gerekirse kaçınma ekle
if 'blocked' in page.text.lower():
    page = StealthyFetcher.fetch('https://site.com', solve_cloudflare=True)

Oran Sınırlarına Saygı Gösterin

Bot önleme yetenekleriyle bile, çok fazla istek göndermek korumayı tetikler:

import time

for url in urls:
    page = StealthyFetcher.get(url)
    time.sleep(2)  # İstekler arasında bekle

Üretim için Konut Proxy'leri Kullanın

Ücretsiz veya ucuz proxy'lerin genellikle kötü itibarları vardır. Güvenilir kazıma için kaliteli konut proxy'lerine yatırım yapın:

# Kaliteli konut proxy'si
page = StealthyFetcher.get(
    'https://site.com',
    proxy='http://premium-residential-proxy:port'
)

robots.txt'yi Kontrol Edin

Sitenin kazımaya izin verip vermediğini her zaman kontrol edin:

# Kazımadan önce robots.txt'yi kontrol edin
from urllib.parse import urlparse

domain = urlparse('https://site.com').netloc
robots_url = f'https://{domain}/robots.txt'

Hataları Zarif Bir Şekilde Yönetin

Kazıyıcınıza hata yönetimini dahil edin:

from scrapling.fetchers import StealthyFetcher

fetcher = StealthyFetcher()

try:
    page = fetcher.get('https://site.com')
except Exception as e:
    print(f'Error: {e}')
    # DynamicFetcher'a geri dön
    from scrapling.fetchers import DynamicFetcher
    fetcher = DynamicFetcher()
    page = fetcher.get('https://site.com')

Sorun Giderme

Hala Engelleniyor musunuz?

StealthyFetcher kullanmanıza rağmen engellemelerle karşılaşırsanız:

  1. Tüm kaçınma seçeneklerini etkinleştirin:
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    block_webrtc=True,
    hide_canvas=True,
    google_search=True,
    real_chrome=True
)
  1. DynamicFetcher'a geçin:
from scrapling.fetchers import DynamicFetcher
page = DynamicFetcher.get('https://site.com')
  1. Proxy rotasyonu ekleyin:
page = StealthyFetcher.get(
    'https://site.com',
    proxy='http://residential-proxy:port'
)

Cloudflare Zorluk Döngüsü

Bazen StealthyFetcher bir zorluk döngüsünde takılı kalır:

  1. Zaman aşımını artırın:
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    timeout=120
)
  1. real_chrome kullanın:
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    real_chrome=True
)

CAPTCHA'lar Çözülmüyor

Bazı CAPTCHA'lar manuel müdahale gerektirir:

page = DynamicFetcher.get('https://site.com')

if page.is_visible('[class*="captcha"]'):
    page.screenshot(path='manual_captcha.png')
    # Manuel olarak çözün, sonra devam edin
    input('CAPTCHA\'yı çözdükten sonra Enter tuşuna basın...')
    page.click('.submit-button')

Yavaş Performans

Bot önleme kaçınması ek yük getirir. Daha hızlı kazıma için:

  1. Mümkün olduğunda DynamicFetcher yerine StealthyFetcher kullanın
  2. Bağlantı havuzu ekleyin
  3. Daha hızlı proxy'ler kullanın
  4. Gereksiz kaçınma seçeneklerini azaltın

Sonuç

Bot önleme kontrollerini aşmak, tespitin nasıl çalıştığını anlamayı ve her durum için doğru araçları kullanmayı gerektirir. Scrapling, çoğu koruma sistemi için StealthyFetcher ve gelişmiş senaryolar için DynamicFetcher aracılığıyla kapsamlı çözümler sunar.

Temel çıkarımlar:

OpenClaw entegrasyonu ile tüm bu yetenekleri doğal dil aracılığıyla kontrol edersiniz. Yapay zeka asistanınıza neye ihtiyacınız olduğunu söyleyin, o da uygun bot önleme yaklaşımını otomatik olarak seçsin. Verilerinizi topladıktan sonra, API'leri test etmek ve doğrulamak, otomatik test paketleri oluşturmak ve keşfettiğiniz uç noktalar için dokümantasyon oluşturmak üzere Apidog'u kullanabilirsiniz.

button

Sıkça Sorulan Sorular

StealthyFetcher ve DynamicFetcher arasındaki fark nedir?

StealthyFetcher, yerleşik kaçınma yamalarına sahip değiştirilmiş başsız Chrome kullanır. DynamicFetcher tam Playwright otomasyonunu kullanır. StealthyFetcher daha hızlıdır ancak gelişmiş tespitte başarısız olabilir. DynamicFetcher daha güvenilirdir ancak daha yavaştır.

Scrapling tüm bot önleme sistemlerine karşı çalışır mı?

Hiçbir bot önleme çözümü her zaman %100 çalışmaz. Scrapling, çoğu yaygın sistemi (Cloudflare, PerimeterX, Akamai) güvenilir bir şekilde yönetir. Özel veya kurumsal çözümler ek teknikler veya manuel müdahale gerektirebilir.

Bot önlemeyi aşmak yasal mı?

Yasalar yargı yetkisine ve sitenin hizmet şartlarına göre değişir. Genellikle, halka açık verilerin kazınması kabul edilebilir. Ancak, kimlik doğrulamasını aşmak veya yetkisiz olarak özel verilere erişmek yasal sınırları aşar.

Kazımam neden hala engelleniyor?

Bu yaygın sorunları kontrol edin: IP itibarı (konut proxy'leri kullanın), oran sınırlaması (gecikmeler ekleyin), yetersiz kaçınma (daha fazla seçenek etkinleştirin) veya JavaScript zorlukları (DynamicFetcher kullanın).

CAPTCHA'ları nasıl yönetirim?

StealthyFetcher, Cloudflare Turnstile'ı otomatik olarak çözer. Diğer CAPTCHA'lar için DynamicFetcher'ı kullanın ve manuel çözüm için duraklatın veya üçüncü taraf CAPTCHA çözme hizmetlerini entegre edin.

Kendi Chrome tarayıcımı kullanabilir miyim?

Evet. Playwright'ın Chromium'u yerine yüklü Chrome'unuzu kullanmak için StealthyFetcher'da real_chrome=True değerini ayarlayın. Bu, daha meşru bir tarayıcı parmak izi sağlar.

Proxy'lere ihtiyacım var mı?

Küçük ölçekli kazıma için hayır. Üretim veya büyük ölçekli işlemler için, konut proxy'leri IP tabanlı engellemeyi önleyerek başarı oranlarını önemli ölçüde artırır.

User-Agent'ları nasıl döndürürüm?

StealthyFetcher, User-Agent'ları otomatik olarak döndürür. Manuel kontrol için:

fetcher = StealthyFetcher(headers={'User-Agent': 'Your-Custom-UA'})

Cloudflare'a karşı başarı oranı nedir?

Uygun yapılandırma ile, çoğu Cloudflare korumalı site için başarı oranları %90'ı aşar. Turnstile zorlukları otomatik olarak çözülür.

Birden fazla coğrafi konumdan kazıma yapabilir miyim?

Evet. timezone_id ve locale parametrelerini kullanın:

page = StealthyFetcher.fetch(
    'https://site.com',
    timezone_id='Europe/London',
    locale='en-GB'
)

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin