Anti-Bot Schutz umgehen mit Scrapling in OpenClaw

Ashley Innocent

Ashley Innocent

5 March 2026

Anti-Bot Schutz umgehen mit Scrapling in OpenClaw

Apidog für Unternehmen

On-Premises-Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

TL;DR

Scrapling bietet durch seine Modi StealthyFetcher und DynamicFetcher leistungsstarke Anti-Bot-Bypass-Funktionen. Verwenden Sie StealthyFetcher für Cloudflare-geschützte Websites (automatische Turnstile-Lösung, Canvas-Fingerprint-Randomisierung, WebRTC-Blockierung) oder DynamicFetcher für JavaScript-intensive Anti-Bot-Implementierungen. Integrieren Sie es mit OpenClaw, um alle Scraping-Operationen über natürliche Sprachbefehle zu steuern.

Einleitung

Sie besuchen eine Website, um Daten zu sammeln. Die Seite lädt. Dann sehen Sie es: "Zugriff verweigert" oder eine CAPTCHA-Herausforderung. Die Website hat Ihren Scraper erkannt und den Zugriff blockiert. Dieses Szenario tritt ständig bei Entwicklern, Datenwissenschaftlern und Forschern auf, die Webdaten für legitime Projekte benötigen.

Dies geschieht, weil Websites zunehmend ausgeklügelte Anti-Bot-Systeme einsetzen. Cloudflare, PerimeterX, Akamai und ähnliche Dienste analysieren Browser-Fingerabdrücke, Verhaltensmuster und Anforderungsmerkmale, um automatisierte Zugriffe zu identifizieren. Traditionelle Scraper versagen sofort gegen diese Abwehrmaßnahmen.\nDie Bot-Erkennungsbranche ist zu einem Multi-Milliarden-Dollar-Markt herangewachsen. Unternehmen investieren stark in den Schutz ihrer digitalen Assets vor automatisiertem Zugriff. Allein Cloudflare meldet die tägliche Blockierung von Milliarden von Bot-Anfragen. Dies stellt eine erhebliche Herausforderung für die legitime Datenerfassung dar, sei es für Marktforschung, Wettbewerbsanalyse, Preisüberwachung oder akademische Forschung.

Scrapling löst dieses Problem. Die Bibliothek enthält mehrere Anti-Erkennungs-Modi, die speziell darauf ausgelegt sind, diese Schutzmaßnahmen zu umgehen. In Kombination mit der natürlichen Sprachschnittstelle von OpenClaw können Sie Ihren KI-Assistenten anweisen, Anti-Bot-Prüfungen zu umgehen, ohne komplexen Code schreiben zu müssen.

💡
Für API-Entwicklungs- und Test-Workflows bietet Apidog umfassende Tools, die Web-Scraping-Funktionen ergänzen und es Ihnen ermöglichen, die von Ihnen gesammelten Daten von geschützten Websites zu testen und zu validieren.
button

Anti-Bot-Erkennung verstehen

Bevor Sie die Erkennung umgehen, müssen Sie verstehen, wie sie funktioniert. Anti-Bot-Systeme analysieren mehrere Faktoren:

Browser-Fingerprinting: Websites sammeln Informationen über Ihren Browser, einschließlich Bildschirmauflösung, installierten Schriftarten, WebGL-Renderer, Canvas-Ausgabe und Hunderten weiterer Signale. Automatisierte Tools verraten sich oft durch konsistente Fingerabdrücke, die sich von echten Browsern unterscheiden.

Verhaltensanalyse: Menschliche Benutzer bewegen Mäuse unvorhersehbar, scrollen mit variablen Geschwindigkeiten und tippen mit natürlicher Zeitmessung. Bots zeigen oft mechanische Muster: sofortige Seitenladevorgänge, gleichmäßige Scrollgeschwindigkeiten, perfekte Zeitabstimmung zwischen Aktionen.

Analyse von Anfragen: Jede HTTP-Anfrage enthält Header, TLS-Fingerabdrücke und Verbindungsmuster. Standard-HTTP-Bibliotheken wie `requests` senden Anfragen, die im Vergleich zu echtem Browser-Traffic eindeutig automatisiert aussehen.

JavaScript-Herausforderungen: Moderne Websites führen JavaScript aus, um Browserinformationen zu sammeln. Cloudflares Turnstile beispielsweise führt unsichtbare Tests durch, die die Browser-Integrität überprüfen, bevor Inhalte angezeigt werden.

IP-Reputation: IP-Adressen werden basierend auf dem Hosting-Provider, der Historie verdächtiger Aktivitäten und dem geografischen Standort gekennzeichnet. Rechenzentrums-IPs lösen sofort Misstrauen aus.

Scrapling adressiert jeden dieser Erkennungsvektoren durch seine spezialisierten Fetcher.

Scraplings Anti-Bot-Fähigkeiten

Scrapling bietet zwei Haupt-Fetcher zum Umgehen von Anti-Bot-Systemen:

StealthyFetcher bewältigt die meisten Cloudflare- und ähnlichen Schutzmaßnahmen. Er verwendet headless Chrome mit integrierten Umgehungstechniken, die gängige Erkennungsvektoren automatisch patchen.

DynamicFetcher bietet vollständige Browser-Automatisierung über Playwright. Verwenden Sie ihn, wenn StealthyFetcher fehlschlägt oder wenn die Website erweiterte JavaScript-basierte Erkennung verwendet.

So wählen Sie aus:

Szenario Empfohlener Fetcher
Cloudflare-Schutz StealthyFetcher
Turnstile CAPTCHA StealthyFetcher
Grundlegende Bot-Erkennung StealthyFetcher
Komplexe JavaScript-Herausforderungen DynamicFetcher
Unendliches Scrollen mit Anti-Bot DynamicFetcher
Benutzerdefinierte Anti-Bot-Lösungen DynamicFetcher

StealthyFetcher im Detail

StealthyFetcher ist Scraplings Hauptwerkzeug zum Umgehen von Anti-Bot-Systemen. Er handhabt die meisten gängigen Schutzmechanismen automatisch.

Grundlegende Verwendung

from scrapling.fetchers import StealthyFetcher

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

Der Fetcher versucht automatisch, Cloudflare, PerimeterX und ähnliche Schutzmaßnahmen zu umgehen.

Cloudflare Turnstile-Umgehung

Cloudflare Turnstile ist eine der häufigsten Anti-Bot-Herausforderungen. StealthyFetcher löst sie automatisch:

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

Der Parameter solve_cloudflare=True löst die automatische Lösung der Herausforderung aus. Dies funktioniert sowohl für interstitielle Herausforderungen (die Seite "Checking your browser before accessing") als auch für Turnstile-Widgets.

Canvas-Fingerprint-Randomisierung

Canvas-Fingerprinting erstellt eindeutige Identifikatoren basierend darauf, wie Ihr Browser Grafiken rendert. StealthyFetcher fügt Canvas-Operationen zufälliges Rauschen hinzu:

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

Jede Anfrage erzeugt eine andere Canvas-Ausgabe, was das Fingerprint-Tracking unwirksam macht.

WebRTC-Leck-Prävention

WebRTC kann Ihre echte IP-Adresse preisgeben, selbst wenn Sie Proxys verwenden. StealthyFetcher blockiert WebRTC-Anfragen:

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

Dies verhindert lokale IP-Lecks, die Ihre Identität oder Ihren Standort preisgeben könnten.

Google-Such-Referer-Spoofing

Viele Websites erlauben den Zugriff, wenn sie denken, dass der Traffic von der Google-Suche kommt. StealthyFetcher fälscht diesen Referer:

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

Dies lässt die Anfrage so aussehen, als käme sie von der Google-Suchergebnisseite.

Verwenden von installiertem Chrome

Für maximale Umgehung verwenden Sie Ihren installierten Chrome-Browser anstelle von Playwrights Chromium:

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

Dies verwendet Ihre tatsächliche Chrome-Installation, die einen legitimen Browser-Fingerabdruck besitzt.

Geografisches Spoofing

Passen Sie Ihre Anfrage an einen bestimmten Standort an:

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

Dies stellt die Zeitzonen- und Spracheinstellungen des Browsers auf den gewünschten Standort ein.

DynamicFetcher für erweiterten Schutz

Einige Websites verwenden ausgeklügelte Anti-Bot-Systeme, die StealthyFetcher nicht umgehen kann. DynamicFetcher bietet vollständige Browser-Automatisierung mit Playwright:

from scrapling.fetchers import DynamicFetcher

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

Umgang mit unendlichem Scrollen

Websites mit unendlichem Scrollen und Anti-Bot-Schutz erfordern Browser-Automatisierung:

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')

    # Auf das Laden des Inhalts warten
    page.wait_for_selector('.content-item')

    # Scrollen, um mehr zu laden
    for _ in range(5):
        page.evaluate('window.scrollTo(0, document.body.scrollHeight)')
        page.wait_for_timeout(1000)

Warten auf JavaScript-Ausführung

Einige Inhalte werden nach dem ersten Laden der Seite über JavaScript geladen:

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

Dies stellt sicher, dass das gesamte JavaScript ausgeführt wurde, bevor der Inhalt extrahiert wird.

Manuelles Bearbeiten von CAPTCHAs

Für CAPTCHAs, die nicht automatisch gelöst werden können:

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

# Prüfen, ob CAPTCHA vorhanden ist
if page.is_visible('.captcha-container'):
    # Screenshot für manuelle Lösung erstellen
    page.screenshot(path='captcha.png')
    # Nach manueller Lösung fortfahren
    page.click('.captcha-submit')

Sie können für manuelle Eingriffe anhalten, das CAPTCHA selbst lösen und das Scraping fortsetzen.

Verwendung mit OpenClaw

OpenClaw ermöglicht es Ihnen, Scraplings Anti-Bot-Funktionen über natürliche Sprache zu steuern (wenn Sie wissen möchten, wie Scrapling in OpenClaw eingerichtet wird, sehen Sie sich diesen Beitrag an):

Cloudflare auf einer Website umgehen:

"Hole die Produktdaten von https://shop.example.com, diese Seite hat Cloudflare-Schutz"

OpenClaw verwendet automatisch StealthyFetcher mit aktiviertem `solve_cloudflare`.

Eine Website mit erweitertem Schutz behandeln:

"Scrape die Stellenangebote von https://careers.example.com, verwende den Headless-Browser-Modus, da sie einen starken Anti-Bot-Schutz haben"

OpenClaw wechselt zu DynamicFetcher für die vollständige Browser-Automatisierung.

Proxy-Rotation verwenden:

"Extrahiere Daten aus diesen 100 URLs, rotiere durch diese Proxys: proxy1.com:8080, proxy2.com:8080, proxy3.com:8080"

OpenClaw verteilt Anfragen auf mehrere Proxys.

Geografischen Standort spoofen:

"Hole die Preisdaten von https://site.com, verwende die Einstellungen der US-Ostküste"

OpenClaw konfiguriert Zeitzone und Gebietsschema entsprechend.

Anti-Bot-Techniken erklärt

Das Verständnis der zugrundeliegenden Techniken hilft Ihnen, den richtigen Ansatz zu wählen:

TLS-Fingerprint-Spoofing

Wenn Ihr Browser eine Website verbindet, führt er einen TLS-Handshake durch. Die ClientHello-Nachricht enthält Merkmale, die Ihre Client-Bibliothek identifizieren. Standard-Python-Anfragen haben unverwechselbare Fingerabdrücke, die Anti-Bot-Systeme erkennen.

Scrapling spoofs TLS-Fingerabdrücke, um als legitime Browser zu erscheinen. Dies geschieht automatisch mit StealthyFetcher und DynamicFetcher.

User-Agent-Rotation

Das Senden von Anfragen mit der gleichen User-Agent-Zeichenfolge löst die Erkennung aus. Scrapling rotiert User-Agents automatisch:

# User-Agent wird automatisch rotiert
page = StealthyFetcher.get('https://site.com')

Jede Anfrage scheint von einer anderen Browser-Version zu stammen.

Header-Spoofing

Echte Browser senden bestimmte Header in bestimmten Reihenfolgen. Scrapling stellt automatisch sicher, dass die Header dem legitimen Browser-Verhalten entsprechen.

Canvas-Randomisierung

Wenn eine Website Ihren Browser auffordert, etwas zu zeichnen, zeigen die genauen Pixel Ihren Browser und Ihre GPU. Scrapling fügt den Canvas-Operationen unmerkliches Rauschen hinzu, wodurch jeder Fingerabdruck einzigartig wird.

Bildschirmauflösung und Fenstergröße

Headless-Browser melden oft Standardbildschirmgrößen. Scrapling randomisiert die Viewport-Dimensionen, um echten Benutzeranzeigen zu entsprechen.

Mausbewegungs-Simulation

DynamicFetcher kann menschenähnliche Mausbewegungen simulieren:

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

Dies fügt realistische Bewegungsmuster hinzu, die die Verhaltensanalyse bestehen.

Proxy-Integration

Die Verwendung von Proxys hilft, IP-basierte Blockierung zu vermeiden und geografisches Scraping zu ermöglichen:

Grundlegende Proxy-Nutzung

from scrapling.fetchers import StealthyFetcher

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

Proxy-Rotation

Für großflächiges Scraping rotieren Sie durch mehrere Proxys:

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)
    # Seite verarbeiten

Residential Proxys

Residential Proxys verwenden IP-Adressen von echten Internetdienstanbietern. Sie sind schwerer zu erkennen als Rechenzentrums-IPs:

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

Residential Proxys kosten mehr, bieten aber deutlich höhere Erfolgsraten auf geschützten Websites.

Häufige Anti-Bot-Szenarien

Cloudflare-Schutz

Cloudflare ist die gängigste Anti-Bot-Lösung. Die meisten Websites funktionieren mit dem grundlegenden StealthyFetcher:

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

Wenn Cloudflare eine Herausforderungsseite anzeigt, löst der Fetcher sie automatisch und versucht es erneut.

PerimeterX (jetzt Ownl)

PerimeterX (jetzt Teil von Ownl) verwendet Verhaltensanalysen:

# DynamicFetcher für PerimeterX verwenden
page = DynamicFetcher.get('https://perimeterx-site.com')

Die vollständige Browser-Automatisierung bewältigt Verhaltensherausforderungen besser.

Akamai

Akamai bietet erstklassiges Bot-Management:

# Akamai erfordert oft Residential Proxys
page = StealthyFetcher.get(
    'https://akamai-protected.com',
    proxy='http://residential-proxy:port',
    solve_cloudflare=True
)

Akamai-geschützte Websites erfordern oft die Kombination mehrerer Umgehungstechniken.

Benutzerdefinierte Anti-Bot-Lösungen

Einige Websites entwickeln ihre eigenen Erkennungssysteme:

# Maximale Stealth-Einstellungen verwenden
page = StealthyFetcher.fetch(
    'https://custom-protected.com',
    solve_cloudflare=True,
    block_webrtc=True,
    hide_canvas=True,
    google_search=True,
    real_chrome=True
)

Wenn dies fehlschlägt, wechseln Sie zu DynamicFetcher mit vollständiger Browser-Automatisierung.

Best Practices

Einfach anfangen

Beginnen Sie mit dem einfachen StealthyFetcher. Fügen Sie nur Komplexität hinzu, wenn Sie auf Blockaden stoßen:

# Zuerst das Grundlegende ausprobieren
page = StealthyFetcher.get('https://site.com')

# Falls nötig, Umgehung hinzufügen
if 'blocked' in page.text.lower():
    page = StealthyFetcher.fetch('https://site.com', solve_cloudflare=True)

Ratenbegrenzungen respektieren

Auch mit Anti-Bot-Funktionen lösen zu viele Anfragen Schutzmaßnahmen aus:

import time

for url in urls:
    page = StealthyFetcher.get(url)
    time.sleep(2)  # Zwischen den Anfragen warten

Residential Proxys für die Produktion verwenden

Kostenlose oder billige Proxys haben oft einen schlechten Ruf. Investieren Sie in hochwertige Residential Proxys für zuverlässiges Scraping:

# Hochwertiger Residential Proxy
page = StealthyFetcher.get(
    'https://site.com',
    proxy='http://premium-residential-proxy:port'
)

robots.txt prüfen

Prüfen Sie immer, ob die Website das Scraping erlaubt:

# robots.txt vor dem Scraping prüfen
from urllib.parse import urlparse

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

Fehler elegant behandeln

Bauen Sie eine Fehlerbehandlung in Ihren Scraper ein:

from scrapling.fetchers import StealthyFetcher

fetcher = StealthyFetcher()

try:
    page = fetcher.get('https://site.com')
except Exception as e:
    print(f'Fehler: {e}')
    # Auf DynamicFetcher zurückgreifen
    from scrapling.fetchers import DynamicFetcher
    fetcher = DynamicFetcher()
    page = fetcher.get('https://site.com')

Fehlerbehebung

Immer noch blockiert

Wenn Sie trotz der Verwendung von StealthyFetcher auf Blockaden stoßen:

  1. Alle Umgehungsoptionen aktivieren:
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    block_webrtc=True,
    hide_canvas=True,
    google_search=True,
    real_chrome=True
)
  1. Zu DynamicFetcher wechseln:
from scrapling.fetchers import DynamicFetcher
page = DynamicFetcher.get('https://site.com')
  1. Proxy-Rotation hinzufügen:
page = StealthyFetcher.get(
    'https://site.com',
    proxy='http://residential-proxy:port'
)

Cloudflare-Challenge-Schleife

Manchmal bleibt StealthyFetcher in einer Herausforderungsschleife stecken:

  1. Timeout erhöhen:
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    timeout=120
)
  1. `real_chrome` verwenden:
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    real_chrome=True
)

CAPTCHAs werden nicht gelöst

Einige CAPTCHAs erfordern manuelles Eingreifen:

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

if page.is_visible('[class*="captcha"]'):
    page.screenshot(path='manual_captcha.png')
    # Manuell lösen, dann fortfahren
    input('Drücken Sie Enter, nachdem Sie das CAPTCHA gelöst haben...')
    page.click('.submit-button')

Langsame Leistung

Anti-Bot-Umgehung verursacht Overhead. Für schnelleres Scraping:

  1. Verwenden Sie StealthyFetcher anstelle von DynamicFetcher, wenn möglich
  2. Verbindungs-Pooling hinzufügen
  3. Schnellere Proxys verwenden
  4. Unnötige Umgehungsoptionen reduzieren

Fazit

Das Umgehen von Anti-Bot-Prüfungen erfordert ein Verständnis dafür, wie die Erkennung funktioniert, und die Verwendung der richtigen Tools für jede Situation. Scrapling bietet umfassende Lösungen durch StealthyFetcher für die meisten Schutzsysteme und DynamicFetcher für fortgeschrittene Szenarien.

Die wichtigsten Erkenntnisse:

Mit der OpenClaw-Integration steuern Sie all diese Funktionen über natürliche Sprache. Sagen Sie Ihrem KI-Assistenten, was Sie benötigen, und er wählt automatisch den geeigneten Anti-Bot-Ansatz aus. Sobald Sie Ihre Daten gesammelt haben, können Sie Apidog verwenden, um APIs zu testen und zu validieren, automatisierte Testsuiten zu erstellen und Dokumentation für die von Ihnen entdeckten Endpunkte zu generieren.

button

FAQ

Was ist der Unterschied zwischen StealthyFetcher und DynamicFetcher?

StealthyFetcher verwendet einen modifizierten Headless Chrome mit integrierten Umgehungspatches. DynamicFetcher verwendet die vollständige Playwright-Automatisierung. StealthyFetcher ist schneller, kann aber bei fortgeschrittener Erkennung fehlschlagen. DynamicFetcher ist zuverlässiger, aber langsamer.

Funktioniert Scrapling gegen alle Anti-Bot-Systeme?

Keine Anti-Bot-Lösung funktioniert zu 100 % der Zeit. Scrapling handhabt die gängigsten Systeme (Cloudflare, PerimeterX, Akamai) zuverlässig. Benutzerdefinierte oder Unternehmenslösungen erfordern möglicherweise zusätzliche Techniken oder manuelle Eingriffe.

Die Gesetze variieren je nach Gerichtsbarkeit und den Nutzungsbedingungen der Website. Im Allgemeinen ist das Scraping öffentlicher Daten akzeptabel. Das Umgehen der Authentifizierung oder der Zugriff auf private Daten ohne Genehmigung überschreitet jedoch rechtliche Grenzen.

Warum wird mein Scraping immer noch blockiert?

Überprüfen Sie diese häufigen Probleme: IP-Reputation (verwenden Sie Residential Proxys), Ratenbegrenzung (fügen Sie Verzögerungen hinzu), unzureichende Umgehung (aktivieren Sie mehr Optionen) oder JavaScript-Herausforderungen (verwenden Sie DynamicFetcher).

Wie gehe ich mit CAPTCHAs um?

StealthyFetcher löst Cloudflare Turnstile automatisch. Für andere CAPTCHAs verwenden Sie DynamicFetcher und pausieren Sie für die manuelle Lösung oder integrieren Sie Drittanbieterdienste zur CAPTCHA-Lösung.

Kann ich meinen eigenen Chrome-Browser verwenden?

Ja. Setzen Sie real_chrome=True in StealthyFetcher, um Ihren installierten Chrome anstelle von Playwrights Chromium zu verwenden. Dies bietet einen legitimeren Browser-Fingerabdruck.

Brauche ich Proxys?

Für kleines Scraping nicht. Für den Produktionseinsatz oder große Operationen verbessern Residential Proxys die Erfolgsraten erheblich, indem sie IP-basierte Blockierung vermeiden.

Wie rotiere ich User-Agents?

StealthyFetcher rotiert User-Agents automatisch. Für manuelle Kontrolle:

fetcher = StealthyFetcher(headers={'User-Agent': 'Ihr-Benutzerdefinierter-UA'})

Wie hoch ist die Erfolgsrate gegen Cloudflare?

Mit der richtigen Konfiguration überschreiten die Erfolgsraten für die meisten Cloudflare-geschützten Websites 90 %. Turnstile-Herausforderungen werden automatisch gelöst.

Kann ich von mehreren geografischen Standorten aus scrapen?

Ja. Verwenden Sie die Parameter timezone_id und locale:

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

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen

Anti-Bot Schutz umgehen mit Scrapling in OpenClaw