Excel ist der Arbeitsbereich, in dem ein Großteil der Analyse tatsächlich stattfindet. Sobald ein Datensatz in einer Tabellenkalkulation landet, können Sie ihn sortieren, filtern, als Diagramm darstellen und an einen Kollegen weitergeben, der nie ein Terminal anfassen muss. Das Schwierige ist, saubere, strukturierte Daten zuerst in die Tabelle zu bringen, und Zeilen manuell von einer Webseite zu kopieren ist langsam, fehleranfällig und lässt sich nicht nach einem Zeitplan wiederholen.

Diese Anleitung zeigt Ihnen, wie Sie mit Python Daten von einer Website in Excel scrapen. Sie erstellen ein kleines, lauffähiges Skript, das eine gerenderte Seite über die Crawling API abruft, die gewünschten Datensätze mit BeautifulSoup analysiert und eine saubere .xlsx-Datei mit einer Kopfzeile, einem Datensatz pro Zeile und einfacher Formatierung mit openpyxl schreibt. Die Anleitung bleibt auf einer neutralen Beispielseite und öffentlichen Daten, sodass Sie jeden Schritt von Anfang bis Ende ausführen können, bevor Sie es auf eigene Ziele anwenden.

Was Sie erstellen werden

Ein Python-Skript, das eine öffentliche Angebotseite über die Crawling API abruft, einen strukturierten Datensatz pro Artikel extrahiert und den gesamten Satz in einem formatierten Excel-Arbeitsmappe speichert. Das laufende Beispiel verwendet eine generische öffentliche Katalogseite unter einer Platzhalter-URL, also tauschen Sie Ihr eigenes Ziel ein, sobald der Ablauf funktioniert. Wir lesen diese Felder:

  • Title der Name oder die Überschrift jedes Artikels.
  • Price der aufgeführte Preis, wie er auf der Seite angezeigt wird.
  • Availability das Lager- oder Status-Label.
  • Rating die Rezensionspunktzahl, wenn die Seite eine anzeigt.
  • Link die kanonische URL der eigenen Seite des Artikels.

Die Ausgabe ist eine einzelne Tabellenkalkulation mit diesen Spalten, einer fetten eingefrorenen Kopfzeile und automatisch angepassten Spalten, bereit zum Sortieren, Filtern oder Erstellen von Diagrammen in Excel oder Google Sheets.

Warum eine einfache Anfrage oft scheitert

Die alte Methode, Webdaten in Excel zu bekommen, war die integrierte Aus dem Web-Abfrage: Fügen Sie eine URL ein, lassen Sie Excel die Tabellen abrufen und aktualisieren Sie nach einem Timer. Sie existiert noch, aber sie bricht bei den meisten modernen Seiten aus zwei Gründen, und dieselben zwei Gründe bringen eine naive Python-Anfrage zum Scheitern.

Erstens rendern viele Seiten ihren Inhalt im Browser mit JavaScript. Das initiale HTML, das ein nackter HTTP-Client erhält, ist eine dünne Hülle, und die Preise, Titel und Lagerbestandslabels erscheinen erst, nachdem die Skripte der Seite ausgeführt wurden. Extrahieren Sie die Daten aus dieser ersten Antwort und Sie erfassen eine leere Vorlage anstelle der echten Zeilen. Zweitens beobachten Seiten automatisierten Traffic. Datacenter-IP-Adressen und Anfragemuster, die nicht wie ein echter Browser aussehen, werden ratenbegrenzt, nach IP gesperrt oder mit einem CAPTCHA konfrontiert, bevor sie jemals den Inhalt erreichen, was genau das ist, was passiert, wenn eine Excel-Auto-Aktualisierung eine Seite zu oft von einer Adresse aus trifft.

Ein zuverlässiger Scraper benötigt also zwei Dinge in einer einzigen Anfrage: einen Browser, der die Seite tatsächlich rendert, und eine IP, die die Seite als echten Besucher liest. Sie können das selbst mit einem Headless Browser plus einem Pool von rotierenden Residential Proxies erstellen, aber die Gesunderhaltung dieses Stacks ist der Großteil der Arbeit. Die Crawling API faltet beides in einen einzigen Aufruf: Sie senden ihr die URL, sie rendert die Seite hinter einer vertrauenswürdigen IP und gibt fertiges HTML zum Analysieren zurück.

Normal vs JS token

Crawlbase gibt Ihnen zwei Token-Typen. Der normale Token ruft statisches HTML ab und ist die richtige Wahl, wenn die Daten bereits in der Seitenquelle vorhanden sind. Der JavaScript (JS)-Token rendert die Seite zuerst in einem echten Browser, was Sie benötigen, wenn Inhalte clientseitig geladen werden. Beginnen Sie mit dem normalen Token; wechseln Sie zum JS-Token nur, wenn die Felder leer zurückkommen.

Voraussetzungen

Sie benötigen ein paar Dinge, bevor Sie Code schreiben. Keines davon nimmt lange in Anspruch.

Python-Grundkenntnisse. Sie sollten in der Lage sein, ein Skript zu schreiben, auszuführen und Pakete mit pip zu installieren. Falls die Parsing-Seite neu für Sie ist, ist die BeautifulSoup-Anleitung ein guter Begleiter, und das umfassendere Scraping mit Python-Tutorial deckt die Grundlagen ab.

Python 3.8 oder neuer. Bestätigen Sie Ihre Version mit python --version. Falls nicht vorhanden, installieren Sie es von python.org oder über eine Distribution wie Anaconda und stellen Sie sicher, dass Python in Ihrem PATH ist.

Ein Crawlbase-Konto und Token. Registrieren Sie sich, öffnen Sie Ihr Dashboard und kopieren Sie Ihr Token von der Konto-Docs-Seite. Crawlbase enthält bis zu 20.000 kostenlose Anfragen zum Starten, was für diese Anleitung mehr als ausreichend ist, und Sie zahlen nur für erfolgreiche Anfragen. Behandeln Sie das Token wie ein Passwort und halten Sie es aus der Versionsverwaltung heraus.

Das Projekt einrichten

Erstellen Sie eine virtuelle Umgebung, damit die Projektabhängigkeiten isoliert bleiben, und installieren Sie dann die drei Bibliotheken, die das Skript benötigt.

bash
python --version

python -m venv excel_env
source excel_env/bin/activate

pip install crawlbase beautifulsoup4 openpyxl

Unter Windows aktivieren Sie die Umgebung mit excel_env\Scripts\activate anstelle der source-Zeile. Drei Abhängigkeiten erledigen die Arbeit: crawlbase ist der offizielle Client für die Crawling API, beautifulsoup4 analysiert das zurückgegebene HTML, sodass Sie einzelne Felder per CSS-Selektor abrufen können, und openpyxl schreibt die .xlsx-Datei mit Formatierung. Falls Sie lieber in DataFrames arbeiten, kann pandas auch Excel schreiben, und dazu gibt es am Ende eine kurze Notiz.

Schritt 1: Eine Seite über Crawlbase abrufen

Beginnen Sie damit, eine fertige Seite zu erhalten. Importieren Sie die CrawlingAPI-Klasse, initialisieren Sie sie mit Ihrem Token und fordern Sie die Ziel-URL an. Die Überprüfung des Crawlbase-cb_status (legacy pc_status) vor dem Parsen hält Fehler auffällig statt still, sodass Sie nie versuchen, eine Fehlerseite zu scrapen.

python
from crawlbase import CrawlingAPI

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"})

def crawl(page_url):
    response = api.get(page_url)
    if response["headers"]["cb_status"] == "200":
        return response["body"].decode("utf-8")
    print(f"Request failed: {response['headers']['cb_status']}")
    return None

if __name__ == "__main__":
    catalog_url = "https://example.com/products"
    html = crawl(catalog_url)
    print(html[:500] if html else "No HTML returned")

Führen Sie dies mit python excel_scraper.py aus und Sie sollten die ersten 500 Zeichen des echten Seiten-Markups sehen, was bestätigt, dass die Anfrage funktioniert, bevor Sie einen einzigen Selektor schreiben. Falls die Seite ihre Daten clientseitig rendert, sieht der Body wie eine leere Vorlage aus; fügen Sie in diesem Fall den JS-Token hinzu, indem Sie {"token": "YOUR_CRAWLBASE_TOKEN", "javascript": "true"} übergeben, wenn Sie den Client erstellen, und die API rendert ihn zuerst in einem Browser. Für das neutrale Katalogbeispiel hier ist der normale Token ausreichend.

Crawlbase Crawling API

Der obige Abrufschritt ist der Teil, der Excels eigene Aus dem Web-Abfrage bei jedem Volumen still zum Scheitern bringt: eine einzelne IP, die eine Seite aktualisiert, wird gedrosselt, und clientseitige Seiten geben eine leere Hülle zurück. Die Crawling API nimmt Ihr Token, rendert die Seite bei Bedarf und rotiert serverseitig durch Residential IPs, dann gibt sie fertiges HTML zurück, sodass Sie keine eigene Headless-Browser-Flotte und keinen Proxy-Pool betreiben müssen. Richten Sie es zuerst auf eine öffentliche Seite im kostenlosen Kontingent aus.

Schritt 2: Die gewünschten Datensätze analysieren

Eine Katalogseite ist ein Raster von Artikelkarten, jede mit einem Titel, einem Preis, einem Lageretikett und einem Link. Laden Sie das gerenderte HTML in BeautifulSoup, wählen Sie jede Karte aus und lesen Sie die Felder aus jeder heraus. Jede Suche zu absichern bedeutet, dass eine Karte mit einem fehlenden Feld None zurückgibt anstatt die Schleife zum Absturz zu bringen.

python
from bs4 import BeautifulSoup

def text_of(card, selector):
    el = card.select_one(selector)
    return el.get_text(strip=True) if el else None

def parse_records(html, base_url):
    soup = BeautifulSoup(html, "html.parser")
    records = []
    for card in soup.select("article.product"):
        link_el = card.select_one("a.product-link")
        href = link_el["href"] if link_el else None
        records.append({
            "title": text_of(card, "h2.product-title"),
            "price": text_of(card, "span.price"),
            "availability": text_of(card, "span.stock"),
            "rating": text_of(card, "span.rating"),
            "link": urljoin(base_url, href) if href else None,
        })
    return records

Der text_of-Helfer fragt ein Element innerhalb einer Karte ab und gibt seinen bereinigten Text zurück, oder None, wenn das Element fehlt. Der select("article.product")-Aufruf gibt jede Artikelkarte zurück und die Schleife liest Titel, Preis, Verfügbarkeit und Bewertung aus jeder. urljoin verwandelt ein relatives href in eine vollständige URL, sodass die Link-Spalte eigenständig verwendbar ist. Die Selektoren hier (article.product, h2.product-title, span.price) sind illustrativ; bei einem echten Ziel untersuchen Sie die Seite in den Dev-Tools Ihres Browsers und ersetzen Sie sie mit den tatsächlichen Klassennamen.

Selektoren driften

Generierte Klassennamen und Layout-Markup ändern sich ohne Vorankündigung auf Produktionsseiten. Behandeln Sie jeden Selektor als Startvorlage, nicht als Vertrag. Wenn Datensätze leer zurückkommen, untersuchen Sie die Live-Seite erneut in den Dev-Tools und aktualisieren Sie den Selektor. Regelmäßige Selektor-Pflege ist bei jedem Scraper normal, kein Zeichen dafür, dass etwas kaputt ist.

Schritt 3: Die Datensätze mit openpyxl in Excel schreiben

Wandeln Sie nun die Liste der Datensätze in eine Tabellenkalkulation um. openpyxl erstellt eine Arbeitsmappe im Speicher: Sie erstellen ein Blatt, schreiben eine fette Kopfzeile, hängen eine Zeile pro Datensatz an, frieren die Kopfzeile ein, passen die Spalten an ihren Inhalt an und speichern dann. Die folgende Funktion nimmt die Datensätze und einen Dateinamen entgegen und erledigt all das.

python
from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.utils import get_column_letter

HEADERS = ["Title", "Price", "Availability", "Rating", "Link"]
KEYS = ["title", "price", "availability", "rating", "link"]

def save_to_excel(records, filename="products.xlsx"):
    wb = Workbook()
    ws = wb.active
    ws.title = "Products"

    ws.append(HEADERS)
    for cell in ws[1]:
        cell.font = Font(bold=True)

    for record in records:
        ws.append([record.get(key) for key in KEYS])

    ws.freeze_panes = "A2"
    for i, header in enumerate(HEADERS, start=1):
        column = ws[get_column_letter(i)]
        width = max(len(str(c.value)) for c in column if c.value)
        ws.column_dimensions[get_column_letter(i)].width = width + 2

    wb.save(filename)
    print(f"Saved {len(records)} rows to {filename}")

Ein paar Details machen das Blatt angenehm zu verwenden. ws.append(HEADERS) schreibt die Spaltentitel, und die Schleife über ws[1] macht diese erste Zeile fett. freeze_panes = "A2" heftet die Kopfzeile an, sodass sie beim Scrollen sichtbar bleibt. Die Spaltenbreiten-Schleife misst den längsten Wert in jeder Spalte und setzt die Breite so, dass er passt, mit etwas Abstand, sodass nichts abgeschnitten wird. Werte über record.get(key) zu lesen bedeutet, dass ein Datensatz mit einem fehlenden Feld eine leere Zelle schreibt anstatt einen Fehler auszulösen. Das Ergebnis ist eine ordentliche Arbeitsmappe, die Sie in Excel, Numbers oder Google Sheets öffnen können.

Schritt 4: Das vollständige Skript zusammensetzen

Verbinden Sie nun die drei Teile in einer einzigen lauffähigen Datei: Seite abrufen, Datensätze analysieren und Tabellenkalkulation speichern.

python
from urllib.parse import urljoin
from crawlbase import CrawlingAPI
from bs4 import BeautifulSoup
from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.utils import get_column_letter

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"})

HEADERS = ["Title", "Price", "Availability", "Rating", "Link"]
KEYS = ["title", "price", "availability", "rating", "link"]

def crawl(page_url):
    response = api.get(page_url)
    if response["headers"]["cb_status"] == "200":
        return response["body"].decode("utf-8")
    print(f"Request failed: {response['headers']['cb_status']}")
    return None

def text_of(card, selector):
    el = card.select_one(selector)
    return el.get_text(strip=True) if el else None

def parse_records(html, base_url):
    soup = BeautifulSoup(html, "html.parser")
    records = []
    for card in soup.select("article.product"):
        link_el = card.select_one("a.product-link")
        href = link_el["href"] if link_el else None
        records.append({
            "title": text_of(card, "h2.product-title"),
            "price": text_of(card, "span.price"),
            "availability": text_of(card, "span.stock"),
            "rating": text_of(card, "span.rating"),
            "link": urljoin(base_url, href) if href else None,
        })
    return records

def save_to_excel(records, filename="products.xlsx"):
    wb = Workbook()
    ws = wb.active
    ws.title = "Products"
    ws.append(HEADERS)
    for cell in ws[1]:
        cell.font = Font(bold=True)
    for record in records:
        ws.append([record.get(key) for key in KEYS])
    ws.freeze_panes = "A2"
    for i, header in enumerate(HEADERS, start=1):
        column = ws[get_column_letter(i)]
        width = max(len(str(c.value)) for c in column if c.value)
        ws.column_dimensions[get_column_letter(i)].width = width + 2
    wb.save(filename)
    print(f"Saved {len(records)} rows to {filename}")

def main():
    catalog_url = "https://example.com/products"
    html = crawl(catalog_url)
    if not html:
        return
    records = parse_records(html, catalog_url)
    save_to_excel(records)

if __name__ == "__main__":
    main()

Die main-Funktion ruft die Katalogseite ab, analysiert sie in eine Liste von Datensätzen und speichert die Tabellenkalkulation. Das vorzeitige Beenden, wenn der Abruf fehlschlägt, verhindert, dass der Durchlauf bei einer schlechten Antwort eine leere Datei schreibt. Passen Sie die catalog_url und die Selektoren in parse_records an Ihr eigenes Ziel an, und der Rest des Skripts bleibt gleich.

So sieht die Ausgabe aus

Führen Sie das vollständige Skript mit python excel_scraper.py aus und Sie erhalten eine products.xlsx-Datei mit einer fetten Kopfzeile, einer Zeile pro Artikel und auf ihren Inhalt angepassten Spalten. Konzeptionell landen die Daten so:

csv
Title,Price,Availability,Rating,Link
Wireless Mouse,$24.99,In stock,4.5,https://example.com/products/wireless-mouse
Mechanical Keyboard,$79.00,In stock,4.7,https://example.com/products/mechanical-keyboard
USB-C Hub,$39.50,Out of stock,4.2,https://example.com/products/usb-c-hub
Laptop Stand,$32.00,In stock,4.6,https://example.com/products/laptop-stand

Die Tabellenkalkulation enthält dieselben fünf Spalten mit eingefrorener Kopfzeile, sodass Sie nach Preis sortieren, nach Verfügbarkeit filtern oder die Bewertungen als Diagramm darstellen können, ohne weitere Bereinigung. Von hier aus sind die Daten einfache tabellarische Inhalte, was bedeutet, dass sie auch sauber in andere Formate verschoben werden können; für die Abwägungen zwischen tabellenkalkulations- und codefreundlichen Formen siehe JSON vs CSV.

Über mehrere Seiten skalieren

Eine Katalogseite ist in der Regel ein Ausschnitt eines größeren Satzes. Die meisten Angebote paginieren mit einem Abfrageparameter oder einem Pfadsegment, also rufen Sie jede Seite ab, analysieren sie und sammeln die Datensätze in einer Liste, bevor Sie die Arbeitsmappe schreiben. Eine kurze Pause zwischen den Anfragen hält den Durchlauf respektvoll.

python
import time

def collect_all(base_url, max_pages):
    all_records = []
    for page in range(1, max_pages + 1):
        page_url = f"{base_url}?page={page}"
        html = crawl(page_url)
        if not html:
            break
        records = parse_records(html, page_url)
        if not records:
            break
        all_records.extend(records)
        time.sleep(2)
    return all_records

Tauschen Sie collect_all(catalog_url, max_pages=5) für den einzelnen crawl-Aufruf in main ein und übergeben Sie die kombinierte Liste dann an save_to_excel. Die Schleife hält früh an, wenn eine Seite nichts oder keine Datensätze zurückgibt, sodass Sie die genaue Seitenanzahl nicht im Voraus kennen müssen. Das time.sleep(2) zwischen Anfragen taktet den Durchlauf. Für viel größere Jobs stellt der asynchrone Crawler Anfragen in die Warteschlange und liefert Ergebnisse an einen Webhook, was für das Crawlen vieler Seiten ohne offene Verbindungen geeignet ist.

Pandas bevorzugen?

Wenn Sie bereits in DataFrames arbeiten, können Sie das manuelle Sheet-Building von openpyxl überspringen: pandas.DataFrame(records).to_excel("products.xlsx", index=False) schreibt dieselben Spalten in einer Zeile (es verwendet openpyxl im Hintergrund). Sie verlieren die Spaltenformatierung aus Schritt 3, gewinnen aber alles, was pandas für Bereinigung und Analyse bietet. Siehe die pandas-Analyse-Anleitung für das, was als nächstes kommt.

Verantwortungsvoll scrapen

Daten in eine Tabellenkalkulation zu bekommen ist der einfache Teil; verantwortungsvoll zu sammeln ist der Teil, der Ihr Projekt vertretbar hält. Halten Sie ein paar Regeln ein, egal welches Ziel. Scrapen Sie nur öffentliche Daten, die jeder Besucher ohne Anmeldung sehen kann, und bleiben Sie von allem hinter Authentifizierung fern. Lesen Sie die Nutzungsbedingungen der Seite und ihre robots.txt und behandeln Sie beides als Grenze für das, was Sie sammeln. Halten Sie Ihre Anfragerate vernünftig, sodass Sie die Server der Seite nicht belasten; die kurzen Pausen in der Paginierungsschleife oben sind ein vernünftiger Boden, kein Deckenbegrenzer.

Wenn die Daten Personen betreffen, ist die Grenze höher. Personenbezogene Daten sind unter Rahmenwerken wie der DSGVO und dem CCPA geregelt, also vermeiden Sie es, Namen, Kontaktdaten oder alles, das mit identifizierbaren Personen verbunden ist, zu sammeln, es sei denn, Sie haben eine klare Rechtsgrundlage und einen echten Bedarf. Für die meisten Analysearbeiten haben Sie das nicht, und ein Katalog öffentlicher Produktfelder wie der in dieser Anleitung bleibt weit von dieser Grenze entfernt. Auf diese Weise verwendet, ist das Scrapen in Excel eine routinemäßige, risikoarme Methode, um einen Datensatz aktuell zu halten.

Zusammenfassung

Wichtigste Erkenntnisse

  • Excels eigene Aus-dem-Web-Abfrage bricht im Maßstab. Eine einzelne IP, die eine Seite aktualisiert, wird gedrosselt und clientseitige Seiten geben eine leere Hülle zurück, weshalb ein codegesteuerter Scraper zuverlässiger ist.
  • Über die Crawling API abrufen. Ein einziger Aufruf rendert die Seite bei Bedarf und rotiert IPs serverseitig und gibt fertiges HTML zurück; prüfen Sie cb_status vor dem Parsen, damit Fehler auffällig bleiben.
  • Defensiv analysieren. Wählen Sie jede Karte aus, lesen Sie Felder mit einem gesicherten Helfer, der bei einem Fehlschlag None zurückgibt, und rechnen Sie damit, Selektoren zu aktualisieren, wenn das Markup einer Seite driftet.
  • Eine saubere Arbeitsmappe mit openpyxl schreiben. Eine fette eingefrorene Kopfzeile, eine Zeile pro Datensatz und automatisch angepasste Spalten geben Ihnen ein Blatt, das bereit zum Sortieren, Filtern oder Erstellen von Diagrammen ist, oder verwenden Sie pandas to_excel für eine einzeilige Lösung.
  • Verantwortungsvoll scrapen. Bleiben Sie bei öffentlichen Daten, respektieren Sie Nutzungsbedingungen und robots.txt, takten Sie Ihre Anfragen und wenden Sie DSGVO- oder CCPA-Sorgfalt an, wann immer personenbezogene Daten betroffen sind.

Häufig gestellte Fragen

Kann ich eine Website ohne Code direkt in Excel scrapen?

Excels integrierte Aus dem Web-Abfrage (unter dem Daten-Menüband) kann Tabellen von einer URL ohne Code abrufen und funktioniert für einfache, statische, tabellenbasierte Seiten. Sie kämpft mit modernen Seiten, die Inhalte mit JavaScript rendern, und eine geplante Auto-Aktualisierung von einer einzelnen IP wird tendenziell ratenbegrenzt oder blockiert. Für alles jenseits einfacher statischer Tabellen ist ein kleines Python-Skript, das über die Crawling API abruft und die Arbeitsmappe schreibt, weitaus zuverlässiger.

Soll ich openpyxl oder pandas verwenden, um die Excel-Datei zu schreiben?

Beides funktioniert, und pandas verwendet openpyxl im Hintergrund. Verwenden Sie openpyxl direkt, wenn Sie die Kontrolle über die Formatierung wie fette Kopfzeilen, eingefrorene Bereiche und Spaltenbreiten haben möchten, wie in Schritt 3 gezeigt. Verwenden Sie pandas.to_excel, wenn Sie bereits in DataFrames arbeiten und einen einzeiligen Export wollen; Sie verlieren die manuelle Formatierung, gewinnen aber alles, was pandas für Bereinigung und Analyse bietet.

Brauche ich den normalen Token oder den JS-Token?

Beginnen Sie mit dem normalen Token. Er ruft statisches HTML ab und ist ausreichend, wenn die Daten bereits in der Seitenquelle vorhanden sind, was viele Katalog- und Angebotseiten abdeckt. Wechseln Sie zum JS-Token nur, wenn die Felder leer zurückkommen, was bedeutet, dass die Seite ihren Inhalt clientseitig rendert und einen echten Browser benötigt. Der JS-Token rendert die Seite zuerst und gibt dann das fertige HTML zurück.

Meine analysierten Datensätze sind leer. Was ist schiefgelaufen?

Normalerweise eines von zwei Dingen. Entweder stimmen die Selektoren nicht mit der Live-Seite überein, in diesem Fall untersuchen Sie sie erneut in den Dev-Tools Ihres Browsers und aktualisieren Sie sie, oder die Seite rendert clientseitig und der normale Token hat eine leere Hülle zurückgegeben, in diesem Fall wechseln Sie zum JS-Token. Drucken Sie die ersten paar hundert Zeichen des HTML aus, um zu sehen, in welchem Fall Sie sich befinden, bevor Sie etwas anderes ändern.

Wie scrape ich mehr als eine Seite mit Ergebnissen in dieselbe Tabellenkalkulation?

Iterieren Sie über die Seiten, analysieren Sie jede und sammeln Sie die Datensätze in einer einzigen Liste, bevor Sie die Arbeitsmappe schreiben. Die collect_all-Funktion im Skalierungsabschnitt zeigt das Muster: Sie geht durch die Seiten, bis eine keine Datensätze zurückgibt, mit einer kurzen Pause zwischen Anfragen, und Sie übergeben die kombinierte Liste dann einmal an save_to_excel.

Das Scrapen öffentlicher Daten für Ihre eigene Analyse ist grundsätzlich in Ordnung, aber es hängt von den Nutzungsbedingungen der Seite, Ihrer Gerichtsbarkeit und dem Verwendungszweck der Daten ab. Bleiben Sie bei öffentlichen Seiten, respektieren Sie die Bedingungen der Seite und robots.txt, halten Sie Ihre Anfragerate vernünftig und wenden Sie DSGVO- oder CCPA-Sorgfalt an, wenn die Daten identifizierbare Personen betreffen. Für den Massen- oder kommerziellen Gebrauch prüfen Sie, ob die Seite eine offizielle API oder Datenlizenz anbietet.

Jetzt loslegen

Crawlen Sie jede Website im großen Maßstab, ohne gegen die Infrastruktur zu kämpfen.

Crawlbase übernimmt Proxys, Fingerprints und CAPTCHAs, damit Ihr Team Datenpipelines ausliefert, statt Crawl-Infrastruktur zu pflegen. 1.000 Anfragen kostenlos, keine Karte erforderlich.

Self-Service · Kein Verkaufsgespräch erforderlich · Enterprise-Crawl-Volumen verfügbar