Heim BlogWeb-Scraping Wie man Bot-geschützte Websites mit Python schnell umgeht und durchsucht

Wie man Bot-geschützte Websites mit Python schnell umgeht und durchsucht

von Kadek

Wenn Sie versucht haben, eine Website zu crawlen, nur um dann wiederholt blockiert zu werden, ist die Wahrscheinlichkeit groß, dass Sie auf ein Bot-Schutzsystem wie Fastly gestoßen sind. Fastly ist ein Content Delivery Network (CDN), das viele Websites nicht nur aus Geschwindigkeitsgründen nutzen, sondern auch, um unerwünschte Bots fernzuhalten. Dies kann für Web-Scraper wie Sie ein großes Hindernis darstellen – insbesondere, wenn herkömmliche Scraping-Methoden nicht funktionieren.

In diesem Ratgeber zeige ich Ihnen:

  • So funktioniert der Bot-Manager von Fastly
  • Die wichtigsten Techniken, um die Herausforderungen von Fastly zu umgehen
  • So umgehen Sie den Bot-Schutz von Fastly mit Python und ScraperAPI

Unabhängig davon, ob Sie Artikel, Produktlisten oder andere Daten durchsuchen, hilft Ihnen diese Schritt-für-Schritt-Anleitung dabei, auf Fastly-geschützte Inhalte zuzugreifen, ohne auf Hindernisse zu stoßen.

Klingt gut? Fangen wir an!

Wie schnell Web Scraper blockiert werden

So funktionieren die Abwehrmechanismen von Fastly, um Scraper wie Ihren zu blockieren:

1. Erweiterte Bot-Erkennung

Fastly verwendet eine ausgefeilte Bot-Klassifizierung, um Scraper zu identifizieren. Es geht über grundlegende Prüfungen wie Benutzeragenten hinaus und betrachtet Folgendes:

  • Verkehrsmuster: Erkennt schnell ungewöhnliches Verkehrsverhalten, z. B. zu schnelles Senden von Anfragen oder wiederholter Zugriff auf bestimmte Endpunkte. Diese Muster sind typisch für Bots und fallen im System von Fastly auf.
  • Gerätefingerabdrücke: Fastly sammelt detaillierte Informationen über Ihr Gerät und Ihren Browser, einschließlich Plugins, Bildschirmauflösung und Spracheinstellungen. Wenn Ihr Scraper den Fingerabdruck eines echten Benutzers nicht nachahmt oder inkonsistente Daten anzeigt, wird er wahrscheinlich markiert.
  • IP-Reputation: Bewertet schnell die Reputation der IP-Adressen, die Ihr Scraper verwendet. Wenn Ihre IP-Adresse für Bot-Aktivitäten bekannt ist oder Teil eines Proxy-Netzwerks ist, blockiert Fastly sie möglicherweise sofort. Dies macht rotierende Proxys unerlässlich, wenn Fastly umgangen werden soll.

2. Mehrschichtige Schaberblockierung

Um zu verhindern, dass Scraper auf geschützte Inhalte zugreifen, setzt Fastly eine Kombination aus aktiven und passiven Abwehrmaßnahmen ein:

  • Aktive Herausforderungen (JavaScript und CAPTCHA): Fastly kann Ihren Scraper dazu zwingen, JavaScript-Herausforderungen oder CAPTCHAs zu lösen, um zu beweisen, dass er ein Mensch ist. Scraper, die kein JavaScript ausführen oder CAPTCHAs verarbeiten können, werden blockiert.
  • Passive Verhaltensanalyse: Auch ohne Herausforderungen überwacht Fastly stillschweigend das Besucherverhalten, etwa Mausbewegungen und Scrollmuster. Scraper neigen dazu, auf vorhersehbare oder mechanische Weise mit Websites zu interagieren, wodurch sie leicht zu erkennen sind. Wenn das Verhalten Ihres Bots nicht den Erwartungen eines echten Benutzers entspricht, wird er als verdächtig gekennzeichnet.
  • Ratenbegrenzung und IP-Blockierung: Fastly wendet Ratenbegrenzungen an, um übermäßige Anfragen aus einer einzigen Quelle zu verhindern. Wenn Ihr Schaber diese Grenzwerte überschreitet, wird er blockiert. Fastly führt außerdem eine Liste bekannter bösartiger IP-Adressen. Wenn die IP Ihres Scrapers mit verdächtigem Verhalten in Verbindung gebracht wird, kann sie sofort blockiert werden.

3. Echtzeit-Scraper-Erkennung und -Blockierung

Das Bot-Management-System von Fastly bietet Echtzeit-Einblicke in die Scraping-Aktivitäten. Websitebesitzer können den Datenverkehr über ein intuitives Dashboard überwachen und analysieren, das Trends im Scraper-Verhalten anzeigt. Dadurch können sie die Sicherheitseinstellungen im Handumdrehen anpassen, um Scraper effektiver zu blockieren, indem sie:

  • Benutzerdefinierte Regeln erstellen: Websitebesitzer können spezifische Regeln erstellen, um bestimmte Verhaltensmuster, IPs oder sogar geografische Regionen zu blockieren, die häufig mit Bots in Verbindung gebracht werden. Diese anpassbaren Einstellungen geben Fastly-Benutzern die volle Kontrolle darüber, wie Scraper blockiert werden.
  • Blacklists und Whitelists: Fastly ermöglicht die Erstellung detaillierter Blacklists und Whitelists. Websitebesitzer können genau entscheiden, welcher Datenverkehr blockiert oder zugelassen werden soll, und ihre Abwehrmaßnahmen so anpassen, dass Scraper ferngehalten werden, während legitime Benutzer durchgelassen werden.

Mit diesen fortschrittlichen Erkennungsmethoden und Blockierungsstrategien ist Fastly darauf ausgelegt, Scraper aufzuhalten. Obwohl Fastlys Schutzmaßnahmen leistungsstark sind, sind sie nicht unschlagbar.

Im nächsten Abschnitt zeige ich Ihnen, wie Sie Python und ScraperAPI verwenden, um diese Abwehrmaßnahmen zu umgehen und auf geschützte Inhalte zuzugreifen.

Schnelle Umgehung mit ScraperAPI

ScraperAPI vereinfacht die Umgehung von Fastly, indem es die schwierigsten Aspekte des Web-Scrapings für Sie verwaltet, wie z. B. rotierende Proxys, die Handhabung von Headern und Cookies sowie das Rendern von JavaScript. So können Sie sich auf das Scrapen der benötigten Inhalte konzentrieren, ohne Angst haben zu müssen, blockiert zu werden.

Lassen Sie uns nun in die Funktionsweise von ScraperAPI eintauchen und ein Python-Skript durchgehen, das Top-Schlagzeilen herauskratzt Le Monde.

Hier ist der Code, den Sie verwenden werden:

import requests
from bs4 import BeautifulSoup

API_KEY = "YOUR_SCRAPER_API_KEY"
URL = "https://www.lemonde.fr/"

params = {
    'api_key': API_KEY,
    'url': URL,
    'render': 'true'  # Enable JavaScript rendering to bypass Fastly's challenges
}

response = requests.get("http://api.scraperapi.com", params=params)

if response.status_code == 200:
    print("Successfully bypassed Fastly!")
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # Extract top articles from the page
    top_articles = soup.find_all("li", class_="top-article")  # Extract top articles
    
    for article in top_articles:
        print({"headline": article.find("p").text, "link": article.find("a").get("href")})  
else:
    print(f"Failed to bypass Fastly. Status code: {response.status_code}")

Den Code aufschlüsseln:

  1. ScraperAPI einrichten:
    • Ersetzen "YOUR_SCRAPER_API_KEY" mit Ihrem tatsächlichen ScraperAPI-Schlüssel – Sie müssen ein kostenloses ScraperAPI-Konto erstellen, um das Snippet zu testen. Mit diesem Schlüssel erhalten Sie Zugriff auf die Funktionen von ScraperAPI, z. B. rotierende Proxys und JavaScript-Rendering.
    • Die Ziel-URL lautet Le Monde (https://www.lemonde.fr/), das durch das Bot-Management von Fastly geschützt ist.
  2. JavaScript-Rendering aktivieren:
    • Fastly verwendet JavaScript-Herausforderungen, um Bots zu identifizieren. Daher ist die Aktivierung des JavaScript-Renderings von entscheidender Bedeutung. Der render="true" Der Parameter weist ScraperAPI an, das JavaScript zu verarbeiten, wodurch Ihre Anfragen eher wie echter menschlicher Datenverkehr aussehen.
  3. Senden Sie die Anfrage:
    • Das Skript verwendet requests.get() um eine Anfrage an ScraperAPI zu senden. ScraperAPI übernimmt alle komplexen Aufgaben hinter den Kulissen wie Proxy-Rotation und JavaScript-Ausführung, sodass Sie die Abwehrmaßnahmen von Fastly umgehen können.
  4. Überprüfen Sie die Antwort:
    • Wenn der Statuscode lautet 200 OKbedeutet dies, dass die Anfrage erfolgreich war und Sie Fastly umgangen haben. Wenn nicht, stoßen Sie möglicherweise auf a 403 Forbidden oder 503 Service Unavailablewas darauf hinweist, dass die Anfrage blockiert wurde. Versuchen Sie in solchen Fällen, Ihre Anfragestrategie anzupassen (z. B. das JS-Rendering zu deaktivieren oder die Anfragerate zu verlangsamen). Wenn das Problem weiterhin besteht, wenden Sie sich an das Support-Team von ScraperAPI.
  5. Extrahieren und analysieren Sie den Inhalt:
    • Sobald Sie Fastly erfolgreich umgangen haben, verwenden Sie BeautifulSoup, um den HTML-Inhalt zu analysieren. In diesem Beispiel extrahieren wir die Top-Artikel aus der Seite. Das Skript sucht nach
    • Tags mit der Klasse "top-article" und extrahiert die Schlagzeilen () und Links ().
    • Im letzten Schritt werden die Schlagzeilen und die entsprechenden Links ausgedruckt.

Warum ScraperAPI für Fastly verwenden?

ScraperAPI vereinfacht die Umgehung von Fastly durch die Automatisierung mehrerer wichtiger Aufgaben, die andernfalls komplexe Setups erfordern würden. Deshalb ist ScraperAPI eine leistungsstarke Lösung zum Scrapen von durch Fastly geschützten Websites:

Intelligente IP-Rotation

Fastly blockiert Scraper häufig aufgrund der Reputation der IP-Adresse oder aufgrund von Ratenbegrenzung. ScraperAPI löst dieses Problem durch die automatische Rotation von IPs und stellt für jede Anfrage neue, hochwertige Proxys bereit. Dies hilft Ihrem Scraper, organischen Datenverkehr nachzuahmen, wodurch das Risiko, von den IP-basierten Abwehrmaßnahmen von Fastly blockiert zu werden, erheblich verringert wird.

JavaScript-Rendering mit dem neuen Render-Befehlssatz

Eine der größten Herausforderungen bei Fastly ist der Einsatz der JavaScript-basierten Bot-Erkennung. Viele Scraper scheitern in dieser Phase, weil sie kein JavaScript ausführen können.

ScraperAPI enthält jetzt einen neuen Render-Befehlssatz, der browserähnliches Verhalten auf seinen Servern automatisiert, sodass Ihr Scraper die JavaScript-Prüfungen von Fastly mühelos bestehen kann. Das bedeutet, dass Sie Headless-Browser wie Puppeteer nicht manuell ausführen müssen – ScraperAPI übernimmt das Rendering für Sie, als kämen Ihre Anfragen vom Browser eines echten Benutzers.

Header und Cookie-Verwaltung

Fastly überwacht HTTP-Header und Cookies genau, um Bots zu erkennen. Wenn Ihr Scraper diese nicht richtig verwaltet, wird er wahrscheinlich markiert.

ScraperAPI setzt und verwaltet automatisch Header und Cookies für jede Anfrage und stellt so sicher, dass Ihre Anfragen so aussehen, als kämen sie aus einer echten Browsersitzung. Dadurch verringert sich die Wahrscheinlichkeit, dass Fastly Ihren Scraper anhand inkonsistenter Header oder fehlender Sitzungscookies erkennt.

Benutzerfreundlichkeit und Fokus auf Daten

Durch die Automatisierung der Proxy-Rotation, des JavaScript-Renderings und der Sitzungsverwaltung können Sie sich mit ScraperAPI auf das Wesentliche konzentrieren – das Scrapen der benötigten Daten. Sie müssen sich nicht mehr um die Komplexität der Bot-Erkennung, IP-Blockierung oder JavaScript-Ausführung kümmern. ScraperAPI kümmert sich um diese Herausforderungen und ermöglicht Ihnen die effizientere Extraktion von Inhalten.

4 Techniken zur Umgehung des Fastly-Bot-Schutzes

Der Bot-Schutz von Fastly ist darauf ausgelegt, automatisierten Datenverkehr fernzuhalten, aber mit den richtigen Techniken können Sie seine Abwehrmaßnahmen dennoch umgehen. Hier sind die wichtigsten Strategien, die Sie benötigen:

1. Rotieren Sie Proxys, um IP-Blockierung zu vermeiden

Fastly überwacht und blockiert IP-Adressen, die zu viele Anfragen stellen oder sich verdächtig verhalten. Um dies zu umgehen, sind rotierende Proxys unerlässlich. Durch den Wechsel zwischen verschiedenen IP-Adressen erschweren Sie die Erkennung Ihres Scrapers durch Fastly.

Wohn-Proxys sind besonders effektiv, da sie den echten Benutzerverkehr nachahmen. Dienste wie ScraperAPI stellen rotierende Proxys bereit, die diesen Prozess automatisieren und dabei helfen, Anfragen über verschiedene IPs zu verteilen.

Verwandt:So verwenden und rotieren Sie Proxys mit Python.

2. Rendern Sie JavaScript, um Herausforderungen zu bestehen

Fastly verwendet häufig JavaScript-Herausforderungen, um zu überprüfen, ob Besucher Menschen sind. Herkömmliche Scraper kämpfen mit diesen Herausforderungen, aber durch die Verwendung eines Headless-Browsers wie Puppeteer oder Playwright können Sie echtes Browserverhalten simulieren und JavaScript rendern.

Alternativ verfügen Dienste wie ScraperAPI über integriertes JavaScript-Rendering, sodass Sie diese Herausforderungen automatisch umgehen können, ohne eine vollständige Browserumgebung ausführen zu müssen.

Verwandt: So kratzen Sie große dynamische Websites mithilfe von JS-Rendering.

3. Simulieren Sie menschliches Verhalten

Fastly verfolgt das Benutzerverhalten auf der Website und sucht nach Aktionen, die darauf hinweisen, ob es sich bei einem Besucher um einen Bot oder einen echten Benutzer handelt. Bots weisen häufig sich wiederholende Muster auf – sie senden Anfragen zu schnell oder besuchen Seiten in einer unnatürlichen Reihenfolge.

Um eine Erkennung zu vermeiden, simulieren Sie menschliches Verhalten, indem Sie zufällige Verzögerungen zwischen Anfragen einführen und Ihr Surfverhalten variieren. Tools wie Puppeteer und Selenium können dabei helfen, realistische Aktionen wie Scrollen, Klicken und Mausbewegungen zu simulieren, wodurch Ihr Scraper weniger vorhersehbar wird.

Verwandt: Selenium Web Scraping 101.

Alternativ können Sie die Render-Befehlssätze von ScraperAPI verwenden, um diese ressourcenintensiven Aufgaben auf die Server von ScraperAPI auszulagern, anstatt sie lokal auszuführen.

4. Umgang mit Cookies und Headern

Fastly verwendet Cookies, um Sitzungen zu verfolgen und überwacht HTTP-Header genau, um Bots zu identifizieren. Damit Ihre Anfragen legitimer erscheinen, müssen Sie ordnungsgemäß mit Cookies umgehen und Ihre Header verwalten.

Indem Sie Cookies sitzungsübergreifend speichern und Header wie User-Agent und Referer so einstellen, dass sie dem tatsächlichen Browserverkehr entsprechen, fügt sich Ihr Scraper in die reguläre Benutzeraktivität ein und verringert so die Wahrscheinlichkeit, blockiert zu werden.

Verwandt: So verwenden Sie benutzerdefinierte Header und Cookies für Web Scraping.

Um Fastly effektiv zu umgehen, müssen Sie Proxys rotieren, um IP-Verbote zu vermeiden, JavaScript rendern, um Sicherheitsherausforderungen zu bestehen, menschliches Verhalten simulieren, um eine Markierung zu vermeiden, und Cookies und Header verwalten, um die Sitzungskontinuität aufrechtzuerhalten. Durch die Kombination dieser Techniken können Sie Ihre Chancen, mit Fastly geschützte Websites erfolgreich zu entfernen, ohne blockiert zu werden, erheblich erhöhen.

Related Posts

Hinterlasse einen Kommentar