Zurück zum Blog
Die Wissenschaft des Web-Scrapings
Anda MiuțescuLast updated on Mar 31, 20269 min read

Web-Scraping vs. Web-Crawling: Den Unterschied verstehen

Web-Scraping vs. Web-Crawling: Den Unterschied verstehen

Was kam zuerst? Der Webcrawler oder der Webscraper?  

Das hängt davon ab, wie man zwischen Extraktion und Herunterladen unterscheidet. Web-Scraping erfordert nicht immer die Nutzung des Internets. Das Extrahieren von Informationen aus einem lokalen System, einer Datenbank oder mithilfe von Data-Scraping-Tools kann als Datenerfassung bezeichnet werden. Web-Crawler hingegen haben in erster Linie die Aufgabe, eine Kopie aller aufgerufenen Seiten für die spätere Verarbeitung durch Suchmaschinen zu erstellen, die die gespeicherten Seiten indexieren und schnell nach nicht indexierten Seiten suchen.

Dieser Artikel soll die Unterschiede und Gemeinsamkeiten von Web-Scraping, Crawling und allem dazwischen erläutern. Als Bonus haben wir einen ausführlichen Leitfaden zum Erstellen eines eigenen Web-Crawlers beigefügt – lesen Sie also weiter!

Was ist Web-Scraping?

Web-Scraping, auch als Datenextraktion bekannt, ist der automatisierte Prozess der Erfassung strukturierter Informationen aus dem Internet. Dieser Oberbegriff umfasst eine breite Palette von Techniken und Anwendungsfällen, die mit der Funktionsweise von Big Data zusammenhängen.

Im Grunde genommen bedeutet Web-Scraping das Kopieren von Daten von einer Website. Anschließend können Nutzer die gescrapten Daten in eine Tabelle oder eine Datenbank importieren oder mithilfe von Software weiterverarbeiten.

Wer profitiert von Web Scraping? Jeder, der umfassendes Wissen zu einem bestimmten Thema benötigt. Wenn Sie sich schon einmal an eine Recherche gewagt haben, war Ihr erster Impuls höchstwahrscheinlich, Daten manuell aus Quellen in Ihre lokale Datenbank zu kopieren und einzufügen.

Heute können Entwickler dank Automatisierungstools problemlos Web-Scraping-Techniken nutzen. Was früher Wochen dauerte, bis ein Team die Arbeit abgeschlossen hatte, kann nun autonom in wenigen Stunden mit absoluter Genauigkeit erledigt werden.

Der Wechsel von manuellem zu automatisiertem Scraping spart Einzelpersonen Zeit. Außerdem verschafft es Entwicklern einen wirtschaftlichen Vorteil. Die durch den Einsatz von Web-Scrapern gesammelten Daten können später in die Formate CSV, HTML, JSON oder XML exportiert werden.

Wie funktioniert Web-Scraping?

Klingt einfach, oder? Nun, einen Scraper von Grund auf neu zu entwickeln, der all das kann, ist zeitaufwändig. Ganz zu schweigen davon, dass der Bot möglicherweise nicht immer funktioniert und Sie Proxys mieten müssen. Wenn Sie es dennoch versuchen möchten, haben wir einige Tutorials, die Ihnen helfen werden.

Einer der attraktivsten Aspekte der Verwendung eines vorgefertigten Tools ist jedoch, wie einfach es sich in Ihr Projekt integrieren lässt. Alles, was Sie benötigen, sind Zugangsdaten und ein grundlegendes Verständnis der API-Dokumentation.

Außerdem bieten vorgefertigte Scraper oft viele weitere Vorteile:

  • Einen integrierten Headless-Browser zur Ausführung von JavaScript
  • Einen Captcha-Löser
  • Ein Proxy-Pool mit Millionen von IP-Adressen
  • Einen Proxy-Rotator
  • Eine einfache Benutzeroberfläche zur Anpassung von Anfragen

Unser Team hat eine Web-Scraping-API entwickelt, die Ihnen viel Zeit sparen wird, indem wir die Branche gründlich recherchiert und unsere Bemühungen darauf konzentriert haben, die bestmögliche Lösung zu entwickeln.

Was ist Web-Crawling?

Wir alle kennen und nutzen Google, Bing oder andere Suchmaschinen. Die Nutzung ist einfach – man fragt sie nach etwas und sie durchsuchen jeden Winkel des Internets, um eine Antwort zu liefern. Letztendlich verdankt Google seinen Erfolg jedoch seinem Googlebot-Crawler.

Web-Crawler werden von Suchmaschinen eingesetzt, um das Internet nach Seiten zu durchsuchen, die den von Ihnen eingegebenen Suchbegriffen entsprechen, und diese durch Indizierung für die spätere Verwendung in Suchergebnissen zu speichern. Crawler unterstützen Suchmaschinen auch beim Sammeln von Website-Daten: URLs, Hyperlinks, Meta-Tags und schriftliche Inhalte sowie die Überprüfung des HTML-Textes.

Sie müssen sich keine Sorgen machen, dass der Bot in einer Endlosschleife stecken bleibt und immer wieder dieselben Seiten besucht, da er den Überblick darüber behält, auf welche Seiten er bereits zugegriffen hat. Ihr Verhalten wird zudem durch eine Kombination verschiedener Kriterien bestimmt, wie zum Beispiel:

  • Richtlinie für erneute Besuche
  • Auswahlrichtlinie
  • Richtlinie zur Duplikatsbereinigung
  • Höflichkeitsrichtlinie

Webcrawler stehen vor zahlreichen Herausforderungen, darunter das riesige und sich ständig verändernde öffentliche Internet sowie die Auswahl von Inhalten. Täglich werden unzählige Informationen veröffentlicht. Daher müssten sie ihre Indizes ständig aktualisieren und Millionen von Seiten durchforsten, um genaue Ergebnisse zu erzielen. Dennoch sind sie unverzichtbare Bestandteile der Systeme, die Website-Inhalte analysieren.

Wie funktioniert das Web-Crawling?

Suchmaschinen haben keine Möglichkeit zu erkennen, welche Webseiten es gibt. Bevor sie die für Suchbegriffe relevanten Seiten finden können, müssen die Roboter diese crawlen und indexieren. Hier sind die 7 umfassenden Schritte:

Web Scraping vs. Web Crawling

Web-Scraping wird häufig mit Web-Crawling verwechselt. Web-Scraping unterscheidet sich vom Web-Crawling dadurch, dass es Daten von jeder Seite, auf die es zugreift, extrahiert und dupliziert, während Web-Crawling Seiten zur Indizierung durchsucht und liest. Crawling sucht nach Seiten und Inhalten, Scraping sorgt dafür, dass die Daten zu Ihnen gelangen.

Der Mythos, dass Web-Scraping und Web-Crawling gleichzeitig funktionieren, ist ein Missverständnis, das wir gerne ausräumen möchten. Web-Scraping ist eine Technik zum Extrahieren von Daten aus Webseiten. Dabei kann es sich um gecrawlte Seiten, alle Seiten hinter einer bestimmten Website oder Seiten in digitalen Archiven handeln, während Web-Crawling eine URL-Liste generieren kann, die der Scraper dann sammelt. Wenn ein Unternehmen beispielsweise Informationen von einer Website sammeln möchte, crawlt es die Seiten und scrapt anschließend diejenigen, die wertvolle Daten enthalten.

Die Kombination von Web-Crawling und Web-Scraping führt zu mehr Automatisierung und weniger Aufwand. Durch das Crawling können Sie eine Linkliste erstellen und diese dann an den Scraper senden, damit dieser weiß, was er extrahieren soll. Der Vorteil besteht darin, Daten von überall im World Wide Web ohne jeglichen manuellen Aufwand zu sammeln.

Anwendungsfälle

Web-Scraping und Web-Crawling bilden eine hervorragende Kombination, um Daten schnell zu sammeln und zu verarbeiten, die ein Mensch in derselben Zeitspanne nicht analysieren könnte. Hier sind einige Beispiele, wie dieses Tandem im Geschäftsleben helfen kann:

Markenschutz. Sie können die Tools nutzen, um schnell für Ihre Marke schädliche Online-Inhalte (wie Patentdiebstahl, Markenrechtsverletzungen oder Fälschungen) aufzufinden und aufzulisten, damit Sie rechtliche Schritte gegen die Verantwortlichen einleiten können.

Markenüberwachung. Die Markenüberwachung ist mit einem Web-Crawler wesentlich einfacher. Der Crawler kann Erwähnungen Ihres Unternehmens im Online-Umfeld aufspüren und diese so kategorisieren, dass sie leichter zu verstehen sind, beispielsweise als Nachrichtenartikel oder Social-Media-Beiträge. Ergänzen Sie den Prozess durch Web-Scraping, um die Informationen zu erhalten.

Preiskontrolle. Unternehmen nutzen Scraping, um Produktdaten zu extrahieren, deren Auswirkungen auf ihr Vertriebsmodell zu analysieren sowie die beste Marketing- und Vertriebsstrategie zu entwickeln. Crawler hingegen suchen nach neuen Produktseiten, die wertvolle Informationen enthalten.

E-Mail-Marketing. Web-Scraping kann Websites, Foren und Kommentarbereiche in rasender Geschwindigkeit durchsuchen und alle E-Mail-Adressen extrahieren, die Sie für Ihre nächste Kampagne benötigen. E-Mail-Crawling kann sogar Foren und Chatgruppen durchsuchen und nach E-Mail-Adressen suchen, die zwar versteckt sind, aber in den Kopfzeilen zu finden sind.

Verarbeitung natürlicher Sprache. In diesem Fall werden die Bots für die Sprachforschung eingesetzt, bei der Maschinen bei der Interpretation der von Menschen verwendeten natürlichen Sprachen helfen.

Crawler und Scraper werden eingesetzt, um diesen Maschinen riesige Mengen an linguistischen Daten zur Verfügung zu stellen, damit sie Erfahrungen sammeln können. Je mehr Daten an die Maschine gesendet werden, desto schneller erreicht sie ihr ideales Verständnisniveau. Foren, Marktplätze und Blogs, die verschiedene Arten von Bewertungen enthalten, sind die häufigsten Websites, um diese Art von Informationen zu erhalten.

Das Internet wird in der Lage sein, die Maschine so zu trainieren, dass sie schließlich Slang aufgreift und erkennt, was im heutigen Marketing entscheidend ist und darauf abzielt, eine Vielzahl von Hintergründen anzusprechen.

Immobilien-Asset-Management: In der Immobilienbranche werden Webcrawler und Scraper häufig aufgrund ihrer Fähigkeit eingesetzt, Marktdaten und Trends zu analysieren. Beide liefern detaillierte Informationen zu Immobilien oder bestimmten Gebäudegruppen, unabhängig von der Anlageklasse (Büro, Industrie oder Einzelhandel), was Vermietungsunternehmen dabei hilft, sich einen Wettbewerbsvorteil zu verschaffen. Um es auf den Punkt zu bringen: Die Bots liefern Erkenntnisse, die zu besseren Marktprognosen und überlegenen Immobilienverwaltungspraktiken führen.

Lead-Generierung: Werbung und Sonderangebote sind nutzlos, wenn sie nicht die richtigen Personen erreichen. Unternehmen nutzen Crawler und Scraper, um diese Personen zu finden, sei es in sozialen Medien oder in Unternehmensregistern. Die Bots können schnell Kontaktdaten finden und sammeln, die dann an das Vertriebs- oder Marketingteam weitergeleitet werden.

So erstellen Sie einen Web-Crawler

Jetzt, da Sie wissen, wie das Ganze funktioniert, fragen Sie sich wahrscheinlich, wie man Websites tatsächlich crawlt. Einen eigenen Crawler zu erstellen spart Geld und ist einfacher, als Sie vielleicht denken. Auf dieser Grundlage haben wir einen detaillierten Leitfaden zu den Grundlagen, den Vorgehensweisen und allem dazwischen erstellt.

Voraussetzungen

  • Python 3.
  • Python-IDE. Empfehlung: In dieser Anleitung verwenden wir Visual Studio Code, aber jede andere IDE ist ebenfalls geeignet.
  • Selenium: zum Scrapen des HTML-Codes dynamischer Websites.
  • BeautifulSoup: zum Parsen des HTML-Dokuments.
  • ChromeDriver: ein Web-Treiber zur Konfiguration von Selenium. Lade die richtige Version herunter und merke dir den Pfad, in dem du sie gespeichert hast!

Einrichten der Umgebung

Zunächst installieren wir die benötigten Bibliotheken. Öffnen Sie ein Terminal in der IDE Ihrer Wahl und führen Sie die folgenden Befehle aus:

> pip install selenium
> pip install beautifulsoup4

Nun importieren wir die installierten Bibliotheken in unseren Python-Code. Außerdem definieren wir die URL, die wir crawlen wollen, und fügen die Konfiguration für Selenium hinzu. Erstelle einfach eine Datei namens crawler.py und füge Folgendes hinzu:

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

CHROMEDRIVER_PATH = "your/path/here/chromedriver_win32/chromedriver"
BASE_URL = "https://ecoroots.us"
SECTION = "/collections/home-kitchen"
FULL_START_URL = BASE_URL + SECTION

options = Options()
options.headless = True
driver = webdriver.Chrome(CHROMEDRIVER_PATH, options=options)

Wähle eine Website aus und untersuche den HTML-Code

Wir haben uns für eine E-Commerce-Website entschieden, die Zero-Waste-Produkte verkauft, und wir werden auf die Seite jedes Produkts zugreifen und dessen HTML extrahieren. Daher suchen wir nach allen internen Links auf der Website des Shops und greifen rekursiv darauf zu. Aber schauen wir uns zunächst die Seitenstruktur an und stellen sicher, dass wir auf keine Crawling-Probleme stoßen. Klicken Sie mit der rechten Maustaste an einer beliebigen Stelle auf der Seite, dann auf „Element untersuchen“, und voilà! Der HTML-Code gehört uns.

Den Crawler erstellen

Jetzt können wir mit dem Schreiben des Codes beginnen. Um unseren Crawler zu erstellen, folgen wir einem rekursiven Ablauf, sodass wir auf alle Links zugreifen, auf die wir stoßen. Aber zuerst definieren wir unseren Einstiegspunkt:

def crawl(url, filename):
    page_body = get_page_source(url, filename)
    soup = BeautifulSoup(page_body, 'html.parser')
    start_crawling(soup)

crawl(FULL_START_URL, 'ecoroots.txt')

Wir implementieren die Crawl-Funktion, die die HTML-Dokumente über unsere get_page_source-Prozedur extrahiert. Anschließend erstellt sie das BeautifulSoup-Objekt, das uns das Parsen erleichtert, und ruft die start_crawling-Funktion auf, die mit der Navigation auf der Website beginnt.

def get_page_source(url, filename):
    driver.get(url)
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    body = soup.find('body')

    file_source = open(filename, mode='w', encoding='utf-8')
    file_source.write(str(body))
    file_source.close()

    return str(body)

Wie bereits erwähnt, nutzt die Funktion „get_page_source“ Selenium, um den HTML-Inhalt der Website abzurufen, und schreibt diesen in eine Textdatei im <body>-Bereich, da dieser alle internen Links enthält, die für uns von Interesse sind.

unique_links = {}

def start_crawling(soup):
    links = soup.find_all(lambda tag: is_internal_link(tag))

    for link in links:
        link_href = link.get('href')

        if not link_href in unique_links.keys() or unique_links[link_href] == 0:
            unique_links[link_href] = 0

            link_url = BASE_URL + link_href
            link_filename = link_href.replace(SECTION + '/products/', '') + '.txt'
            crawl(link_url, link_filename)

            unique_links[link_href] = 1

Dies ist die Hauptlogik des Crawlers. Sobald er das BeautifulSoup-Objekt erhält, extrahiert er alle internen Links. Dazu verwenden wir eine Lambda-Funktion mit einigen Bedingungen, die wir in der Funktion `is_internal_link` definiert haben:

def is_internal_link(tag):
    if not tag.name == 'a': return False
    if tag.get('href') is None: return False
    if not tag.get('href').startswith(SECTION + '/products'): return False
    return True

Das bedeutet, dass wir für jedes HTML-Element, auf das wir stoßen, zunächst prüfen, ob es sich um ein <a>-Tag handelt, ob es ein href-Attribut besitzt und dann, ob der Wert des href-Attributs einen internen Link enthält.

Nachdem wir die Liste der Links erhalten haben, durchlaufen wir jeden einzelnen, bauen die vollständige URL auf und extrahieren den Produktnamen. Mit diesen neuen Daten haben wir eine neue Website, die wir von unserem Einstiegspunkt aus an die Crawl-Funktion übergeben, sodass der Prozess von vorne beginnt.

Aber was passiert, wenn wir auf einen Link stoßen, den wir bereits besucht haben? Wie vermeiden wir einen Endloszyklus? Nun, für diesen Fall haben wir die Datenstruktur „unique_links“. Bei jedem Link, den wir durchlaufen, prüfen wir vor dem Crawlen, ob er bereits aufgerufen wurde. Handelt es sich um einen neuen Link, markieren wir ihn nach Abschluss des Crawlings einfach als besucht.

Sobald Sie Ihr Skript ausführen, beginnt der Crawler, die Produkte der Website zu durchsuchen. Je nach Größe der von Ihnen gewählten Website kann dies einige Minuten dauern. Schließlich sollten Sie nun eine Reihe von Textdateien haben, die den HTML-Code jeder Seite enthalten, die Ihr Crawler besucht.

Abschließende Gedanken

Web-Crawling und Web-Scraping sind eng miteinander verflochten und beeinflussen gegenseitig ihren Erfolg, indem sie zu den Informationen beitragen, die letztendlich verarbeitet werden. Hoffentlich hilft Ihnen dieser Artikel dabei, den Einsatz dieser verwandten Mechanismen und die Umgebungen, in denen sie eingesetzt werden können, einzuschätzen.

Automatisierung ist die Zukunft der Datenerfassung. Allein aus diesem Grund haben wir eine Lösung entwickelt, die Ihnen das mühsame Schreiben von Code erspart, Ihnen schnellen Zugriff auf Webinhalte ermöglicht und IP-Sperren umgeht. Bevor Sie Ihr Budget aufstellen, probieren Sie doch unser kostenloses Testpaket aus, das von Anfang an Residential- und Mobile-Proxys enthält. Viel Spaß beim Scraping!

Über den Autor
Anda Miuțescu, Autor für technische Inhalte @ WebScrapingAPI
Anda MiuțescuAutor für technische Inhalte

Anda Miuțescu ist Technical Content Writer bei WebScrapingAPI und verfasst verständliche, nützliche Inhalte, die Entwicklern helfen, das Produkt und seine Funktionen besser zu verstehen.

Los geht’s

Sind Sie bereit, Ihre Datenerfassung zu erweitern?

Schließen Sie sich den über 2.000 Unternehmen an, die WebScrapingAPI nutzen, um Webdaten im Unternehmensmaßstab ohne zusätzlichen Infrastrukturaufwand zu extrahieren.