Wie man Baidu-SERP-Daten abgreift: 3 Herangehensweisen

Lernen Sie drei Hauptansätze für das Scrapen von Baidu-SERP-Daten kennen, von der Erstellung eines benutzerdefinierten Python-Scrapers bis hin zur Verwendung der SERP-API und Web MCP-Integration von Bright Data.
19 min lesen
Baidu Web Scraping

In diesem Leitfaden lernen Sie:

  1. Alles, was Sie wissen müssen, um mit dem Web-Scraping von Baidu zu beginnen.
  2. Die beliebtesten und effektivsten Methoden für das Scraping von Baidu.
  3. Wie man einen eigenen Baidu Scraper von Grund auf in Python erstellt.
  4. Wie man mit der SERP-API von Bright Data Suchmaschinenergebnisse abruft.
  5. Wie Sie Ihren KI-Agenten über die Web MCP Zugriff auf Baidu-Suchdaten geben.

Tauchen wir ein!

Vertraut werden mit der Baidu SERP

Bevor Sie etwas unternehmen, sollten Sie sich mit der Struktur der Baidu SERP (Search Engine Results Page) vertraut machen, welche Daten sie enthält, wie man darauf zugreift und so weiter.

Baidu SERP URLs und Bot Detection System

Öffnen Sie Baidu in Ihrem Browser und führen Sie einige Suchen durch. Suchen Sie zum Beispiel nach “bright data”. Sie sollten eine URL wie diese erhalten:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=bright%20data&fenlei=256&oq=ai%2520model&rsv_pq=970a74b9001542b3&rsv_t=7f84gPOmZQIjrqRcld6qZUI%2FiqXxDExphd0Tz5ialqM87sc5Falk%2B%2F3hxDs&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=12&rsv_sug1=1&rsv_sug7=100&rsv_btype=t&inputT=1359&rsv_sug4=1358

Unter all diesen Abfrageparametern sind die wichtigsten:

  • Basis-URL: https://www.baidu.com/s.
  • Suchabfrageparameter: wd.

Mit anderen Worten, Sie können die gleichen Ergebnisse mit einer kürzeren URL erhalten:

https://www.baidu.com/s?wd=bright%20data

Außerdem strukturiert Baidu seine URLs für die Paginierung über den Abfrageparameter pn. Im Einzelnen wird auf der zweiten Seite &pn=10 hinzugefügt, und auf jeder weiteren Seite wird dieser Wert um 10 erhöht. Wenn Sie zum Beispiel 3 Seiten mit dem Schlüsselwort “bright data” abrufen möchten, würden Ihre SERP-URLs wie folgt aussehen:

https://www.baidu.com/s?wd=bright%20data -> Seite 1
https://www.baidu.com/s?wd=bright%20data&pn=10 -> Seite 2
https://www.baidu.com/s?wd=bright%20data&pn=20 -> Seite 3

Wenn Sie nun versuchen, mit einer einfachen GET-HTTP-Anfrage in einem HTTP-Client wie Postman direkt auf eine solche URL zuzugreifen, werden Sie wahrscheinlich etwas Ähnliches wie das hier sehen:

Note the resulting error page

Wie Sie sehen können, gibt Baidu eine Seite mit der Meldung “网络不给力,请稍后重试” zurück (was übersetzt “Das Netzwerk funktioniert nicht gut, bitte versuchen Sie es später noch einmal” bedeutet, aber eigentlich eine Anti-Bot-Seite ist).

Dies geschieht selbst dann, wenn Sie einen User-Agent-Header einfügen, der normalerweise für Web-Scraping-Aufgaben unerlässlich ist. Mit anderen Worten: Baidu erkennt, dass Ihre Anfrage automatisiert ist und blockiert sie, so dass eine zusätzliche menschliche Überprüfung erforderlich ist.

Dies zeigt deutlich, dass Sie zum Scrapen von Baidu ein Browser-Automatisierungstool (wie Playwright oder Puppeteer) benötigen. Eine einfache Kombination aus einem HTTP-Client und einem HTML-Parser reicht nicht aus, da sie immer wieder Anti-Bot-Blockierungen auslöst.

Verfügbare Daten in einer Baidu-SERP

Konzentrieren Sie sich nun auf die Baidu-SERP für “Bright Data”, die in Ihrem Browser angezeigt wird. Sie sollten etwa so etwas sehen:

The resulting Baidu SERP

Jede Baidu-SERP-Seite ist in zwei Spalten unterteilt. Die linke Spalte enthält eine KI-Übersicht (siehe Wie man KI-Übersichten scrapen kann), gefolgt von den Suchergebnissen. Am unteren Ende dieser Spalte befindet sich der Abschnitt “相关搜索” (“Verwandte Suchanfragen”), und darunter die Navigationselemente für die Seitennavigation.

Die rechte Spalte enthält “百度热搜” (“Baidu Hot Searches”), die die aktuellen oder beliebtesten Themen auf Baidu anzeigt.(Hinweis: Diese Trending-Ergebnisse stehen nicht unbedingt im Zusammenhang mit Ihren Suchbegriffen).

Das sind alle wichtigen Daten, die Sie aus einer Baidu-SERP abrufen können. In diesem Tutorial werden wir uns nur auf die Suchergebnisse konzentrieren, die im Allgemeinen die wichtigsten Informationen sind!

Hauptansätze zum Scraping von Baidu

Es gibt mehrere Möglichkeiten, Baidu-Suchergebnisdaten zu erhalten. Vergleichen Sie die wichtigsten in der folgenden Übersichtstabelle:

Ansatz Integration Komplexität Anforderungen Preisgestaltung Risiko von Blöcken Skalierbarkeit
Erstellen eines benutzerdefinierten Scrapers Mittel/Hoch Python-Programmierkenntnisse + Kenntnisse der Browser-Automatisierung Kostenlos (kann Anti-Bot-Browser erfordern, um Blockierungen zu vermeiden) Möglich Begrenzt
Verwendung der SERP-API von Bright Data Niedrig Jeder HTTP-Client Bezahlt Keine Unbegrenzt
Integrieren Sie den Web-MCP-Server Niedrig KI-Agenten-Framework oder Plattform zur Unterstützung von MCP Kostenlose Stufe verfügbar, dann kostenpflichtig Keine Unbegrenzt

Sie werden im Laufe des Tutorials lernen, wie Sie jeden Ansatz umsetzen können!

Hinweis 1: Unabhängig von der Methode, die Sie wählen, wird die Zielsuchanfrage in diesem Leitfaden “helle Daten” lauten. Das bedeutet, dass Sie sehen werden, wie Sie Baidu-Suchergebnisse speziell für diese Abfrage abrufen können.

Hinweis 2: Wir gehen davon aus, dass Sie Python bereits lokal installiert haben und mit Python-Web-Scripting vertraut sind.

Ansatz #1: Erstellen eines eigenen Scrapers

Verwenden Sie ein Browser-Automatisierungs-Framework oder einen HTTP-Client in Kombination mit einem HTML-Parser, um einen Baidu Scraper von Grund auf zu erstellen.

👍 Vorteile:

  • Volle Kontrolle über die Logik des Parsings von Daten, mit der Möglichkeit, genau das zu extrahieren, was Sie brauchen.
  • Flexibel und anpassbar an Ihre Bedürfnisse.

👎 Nachteile:

  • Erfordert Einrichtungs-, Kodierungs- und Wartungsaufwand.
  • IP-Sperren, CAPTCHAs, Ratenbeschränkungen und andere Herausforderungen beim Web-Scraping können auftreten, wenn es in großem Umfang ausgeführt wird.

Ansatz Nr. 2: Verwendung der SERP-API von Bright Data

Nutzen Sie die Bright Data SERP-API, eine Premium-Lösung, mit der Sie Baidu (und andere Suchmaschinen) über einen einfach aufzurufenden HTTP-Endpunkt abfragen können. Sie übernimmt alle Anti-Bot-Maßnahmen und die Skalierung für Sie. Diese und viele andere Funktionen machen sie zu einer der besten SERP- und Such-APIs auf dem Markt.

👍 Vorteile:

  • Hochgradig skalierbar und zuverlässig, unterstützt durch ein Proxy-Netzwerk mit über 150 Millionen IPs.
  • Keine IP-Sperren oder CAPTCHA-Probleme.
  • Funktioniert mit jedem HTTP-Client (einschließlich visueller Tools wie Postman oder Insomnia).

👎 Nachteile:

  • Kostenpflichtiger Dienst.

Ansatz #3: Integrieren Sie den Web MCP Server

Ermöglichen Sie Ihrem KI-Agenten den kostenlosen Zugriff auf Baidu-Suchergebnisse über den Web MCP von Bright Data, der unter der Haube mit der SERP-API und dem Web Unlocker von Bright Data verbunden ist.

👍 Vorteile:

  • Integration in KI-Workflows und Agenten.
  • Kostenloses Tier verfügbar.
  • Keine Logik zum Parsen von Daten erforderlich (KI kümmert sich darum).

👎 Nachteile:

  • Begrenzte Kontrolle über das Verhalten von LLMs.

Ansatz #1: Erstellen eines benutzerdefinierten Baidu Scrapers in Python mit Playwright

Führen Sie die folgenden Schritte aus, um ein benutzerdefiniertes Web-Scraping-Skript für Baidu in Python zu erstellen.

Wie bereits erwähnt, erfordert das Scrapen von Baidu eine Browser-Automatisierung, da einfache HTTP-Anfragen blockiert werden. In diesem Tutorial werden wir Playwright verwenden, eine der besten Bibliotheken für die Browser-Automatisierung in Python.

Schritt #1: Einrichten des Scraping-Projekts

Öffnen Sie zunächst Ihr Terminal und erstellen Sie einen neuen Ordner für Ihr Baidu Scraper Projekt:

mkdir baidu-scraper

Der Ordner baidu-scraper/ wird alle Dateien für Ihr Scraper-Projekt enthalten.

Navigieren Sie nun in das Projektverzeichnis und erstellen Sie darin eine virtuelle Python-Umgebung:

cd baidu-scraper
python -m venv .venv

Öffnen Sie nun den Projektordner in Ihrer bevorzugten Python-IDE. Wir empfehlen Visual Studio Code mit der Python-Erweiterung oder PyCharm Community Edition.

Fügen Sie eine neue Datei mit dem Namen scraper.py in das Stammverzeichnis Ihres Projekts ein. Die Struktur Ihres Projekts sollte wie folgt aussehen:

baidu-scraper/
├── .venv/
└── scraper.py

Aktivieren Sie dann die virtuelle Umgebung im Terminal. Unter Linux oder macOS führen Sie aus:

source .venv/bin/activate

Äquivalent dazu führen Sie unter Windows aus:

.venv/Scripts/activate

Wenn Ihre virtuelle Umgebung aktiviert ist, installieren Sie Playwright mit pip über das Paket playwright:

pip install playwright

Installieren Sie anschließend die erforderlichen Playwright-Abhängigkeiten (z. B. die Browser-Binärdateien):

python -m playwright install

Geschafft! Ihre Python-Umgebung ist nun bereit, um mit der Erstellung Ihres Baidu Web Scrapers zu beginnen.

Schritt #2: Initialisieren Sie das Playwright-Skript

Importieren Sie in scraper.py Playwright und verwenden Sie dessen synchrone API, um eine kontrollierte Chromium-Browser-Instanz zu starten:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # Initialisiere eine Chromium-Instanz im Headless-Modus
    browser = p.chromium.launch(headless=True) # headless=False setzen, um den Browser zum Debuggen zu sehen
    Seite = browser.new_page()

    # Scraping-Logik...

    # Schließen Sie den Browser und geben Sie seine Ressourcen frei.
    browser.close()

Das obige Snippet bildet die Grundlage für Ihren Baidu Scraper.

Der Parameter headless=True weist Playwright an, Chromium ohne sichtbare GUI zu starten. Bei Tests hat sich gezeigt, dass diese Einstellung nicht die Bot-Erkennung von Baidu auslöst. Sie funktioniert also gut für Scraping. Beim Entwickeln oder Debuggen Ihres Codes sollten Sie jedoch headless=False einstellen, damit Sie die Vorgänge im Browser in Echtzeit beobachten können.

Großartig! Verbinden Sie sich nun mit der Baidu SERP und beginnen Sie mit dem Abrufen von Suchergebnissen.

Schritt #3: Besuchen Sie die Ziel-SERP

Wie bereits analysiert, ist das Erstellen einer Baidu-SERP-URL ganz einfach. Anstatt Playwright anzuweisen, Benutzerinteraktionen zu simulieren (z. B. die Eingabe in das Suchfeld und das Absenden), ist es viel einfacher, die SERP-URL programmatisch zu erstellen und Playwright anzuweisen, direkt zu ihr zu navigieren.

Dies ist die Logik, um eine Baidu-SERP-URL für den Suchbegriff “bright data” zu erstellen:

# Die Basis-URL der Baidu-Suchseite
base_url = "https://www.baidu.com/s"

# Das Suchwort/die Suchphrase
search_query = "helle daten"
params = {"wd": search_query}

# Erstellen Sie die URL der Baidu SERP
url = f"{base_url}?{urlencode(params)}"

Vergessen Sie nicht, die Funktion urlencode() aus der Python Standard Library zu importieren:

from urllib.parse import urlencode

Weisen Sie nun den von Playwright gesteuerten Browser an, die generierte URL über goto() aufzurufen:

page.goto(url)

Wenn Sie das Skript im Headful-Modus (mit headless=False) im Debugger ausführen, werden Sie sehen, wie ein Chromium-Fenster die Baidu-SERP-Seite lädt:

Note the page loaded by the Chromium instance controlled by your Playwright script

Wahnsinn! Das ist genau die SERP, die Sie als nächstes scannen werden.

Schritt #4: Vorbereiten des Scrappens aller SERP-Ergebnisse

Bevor Sie in die Scraping-Logik eintauchen, müssen Sie die Struktur der Baidu-SERPs studieren. Da die Seite mehrere Suchergebniselemente enthält, benötigen Sie zunächst eine Liste, in der Sie die extrahierten Daten speichern. Beginnen Sie daher mit der Initialisierung einer leeren Liste:

serp_results = []

Als nächstes öffnen Sie die Baidu-SERP in einem Inkognito-Fenster (um eine saubere Sitzung zu gewährleisten) in Ihrem Browser:

https://www.baidu.com/s?wd=bright%20data

Klicken Sie mit der rechten Maustaste auf eines der Suchergebniselemente und wählen Sie “Inspect”, um die DevTools des Browsers zu öffnen:

Inspecting a search result element on the target Baidu SERP page

Wenn Sie sich die DOM-Struktur ansehen, werden Sie feststellen, dass jedes Suchergebnis-Element die Klasse result hat. Das bedeutet, dass Sie alle Suchergebnisse auf der Seite mit dem CSS-Selektor .result auswählen können.

Wenden Sie diesen Selektor in Ihrem Playwright-Skript an:

search_result_elements = page.locator(".result")

Hinweis: Wenn Sie mit dieser Syntax nicht vertraut sind, lesen Sie unseren Leitfaden zum Web-Scraping mit Playwright.

Iterieren Sie schließlich über jedes ausgewählte Element:

for search_result_element in search_result_elements.all():
    # Daten-Parsing-Logik...

Bereiten Sie die Anwendung der Data Parsing-Logik vor, um Baidu-Suchergebnisse zu extrahieren und die Liste serp_results aufzufüllen:

Perfekt! Sie sind nun kurz davor, Ihren Baidu-Scraping-Workflow abzuschließen.

Schritt #5: Scrapen von Suchergebnisdaten

Untersuchen Sie die HTML-Struktur eines SERP-Elements auf der Baidu-Ergebnisseite. Konzentrieren Sie sich dieses Mal auf die verschachtelten Elemente, um die Daten zu identifizieren, die Sie extrahieren möchten.

Beginnen Sie mit der Untersuchung des Titelabschnitts:

Inspecting the title section of the Baidu SERP element

Fahren Sie fort, indem Sie feststellen, dass einige Ergebnisse ein “官方” (“Official”) Label anzeigen:

Note the “官方” label

Dann konzentrieren Sie sich auf das Bild der SERP-Ergebnisse:

Inspecting the image section of the Baidu SERP element

Und abschließend auf die Beschreibung/Abstract:

Inspecting the description section of the Baidu SERP element

Aus diesen verschachtelten Elementen können Sie die folgenden Daten extrahieren:

  • Ergebnis-URL aus dem href-Attribut des .sc-link-Elements.
  • Ergebnistitel aus dem Text des .sc-link-Elements.
  • Ergebnisbeschreibung/Abstract aus dem [data-module='abstract'] Text.
  • Ergebnisbild aus dem src-Attribut des img innerhalb von .sc-image.
  • Ergebnisausschnitt aus dem Text .result__snippet.
  • Offizielle Bezeichnung in einem <a>-Element, dessen href mit https://aiqicha.baidu.com/feedback/official beginnt (falls vorhanden).

Verwenden Sie die Locator-API von Playwright, um Elemente auszuwählen und die gewünschten Daten zu extrahieren:

link_element = search_result_element.locator(".sc-link")
link = link_element.get_attribute("href")
title = link_element.inner_text()

beschreibung_element = such_ergebnis_element.locator("[data-module='abstract']")
description = description_element.inner_text() if description_element.count() > 0 else ""

image_element = such_ergebnis_element.locator(".sc-image img")
image = image_element.get_attribute("src") if image_element.count() > 0 else Keine

official_element = search_result_element.locator("a[href^='https://aiqicha.baidu.com/feedback/official']")
official = official_element.count() > 0

Denken Sie daran, dass nicht alle SERP-Elemente gleich sind. Um Fehler zu vermeiden, prüfen Sie immer, ob das Element existiert (.count() > 0), bevor Sie auf seine Attribute oder seinen Text zugreifen.

Großartig! Sie haben gerade die Logik für das Parsing der Baidu SERP-Daten definiert.

Schritt #6: Sammeln der gescrapten Suchergebnisdaten

Schließen Sie die for-Schleife ab, indem Sie ein Wörterbuch für jedes Suchergebnis erstellen und es an die Liste serp_results anhängen:

serp_result = {
    "titel": titel.strip(),
    "href": link.strip(),
    "description": description.strip(),
    "image": image.strip() if image else "",
    "offiziell": offiziell
}
serp_results.append(serp_result)

Wunderbar! Ihre Baidu Web-Scraping Logik ist nun vollständig. Der letzte Schritt besteht darin, die gescrapten Daten zur weiteren Verwendung zu exportieren.

Schritt #7: Exportieren Sie die gescrapten Suchergebnisse in CSV

In diesem Stadium sind Ihre Baidu-Suchergebnisse in einer Python-Liste gespeichert. Um die Daten für andere Teams oder Tools nutzbar zu machen, exportieren Sie sie mit der in Python integrierten csv-Bibliothek in eine CSV-Datei:

with open("baidu_serp_results.csv", mode="w", newline="", encoding="utf-8") as csvfile:
    # Dynamisches Lesen der Feldnamen aus dem ersten Element
    fieldnames = list(serp_results[0].keys())

    # Initialisieren des CSV-Writers
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    # Die Kopfzeile schreiben und die CSV-Ausgabedatei auffüllen
    writer.writeheader()
    writer.writerows(serp_results)

Vergessen Sie nicht, csv zu importieren:

import csv

Auf diese Weise erzeugt Ihr Baidu Scraper eine Ausgabedatei namens baidu_serp_results.csv, die alle gescrapten Ergebnisse im CSV-Format enthält. Mission erfüllt

Schritt #8: Alles zusammenfügen

Der endgültige Code in scraper.py lautet:

# pip install playwright
# python -m playwright installieren

from playwright.sync_api importieren sync_playwright
from urllib.parse import urlencode
csv importieren

# Wo werden die ausgewerteten Daten gespeichert?
serp_results = []

with sync_playwright() as p:
    # Initialisieren einer Chromium-Instanz im Headless-Modus
    browser = p.chromium.launch(headless=True) # setze headless=False, um den Browser zum Debuggen zu sehen
    Seite = browser.new_page()

    # Die Basis-URL der Baidu-Suchseite
    base_url = "https://www.baidu.com/s"

    # Das Suchwort/die Suchphrase
    search_query = "helle Daten"
    params = {"wd": search_query}

    # Erstellen Sie die URL der Baidu SERP
    url = f"{base_url}?{urlencode(params)}"

    # Besuche die Zielseite im Browser
    page.goto(url)

    # Alle Elemente des Suchergebnisses auswählen
    search_result_elements = page.locator(".result")
    for search_result_element in search_result_elements.all():
        # Logik für das Parsing der Daten
        link_element = such_ergebnis_element.locator(".sc-link")
        link = link_element.get_attribute("href")
        title = link_element.inner_text()

        beschreibung_element = such_ergebnis_element.locator("[data-module='abstract']")
        description = description_element.inner_text() if description_element.count() > 0 else ""

        image_element = such_ergebnis_element.locator(".sc-image img")
        image = image_element.get_attribute("src") if image_element.count() > 0 else Keine

        official_element = search_result_element.locator("a[href^='https://aiqicha.baidu.com/feedback/official']")
        official = official_element.count() > 0

        # Ein neues Suchergebnisobjekt mit den ausgewerteten Daten füllen
        serp_result = {
            "title": title.strip(),
            "href": link.strip(),
            "description": description.strip(),
            "image": image.strip() if image else "",
            "offiziell": offiziell
        }
        # Anhängen des gescrapten Baidu SERP-Ergebnisses an die Liste
        serp_results.append(serp_result)

    # Schließen Sie den Browser und geben Sie seine Ressourcen frei
    browser.close()

with open("baidu_serp_results.csv", mode="w", newline="", encoding="utf-8") as csvfile:
    # Dynamisches Lesen der Feldnamen aus dem ersten Element
    fieldnames = list(serp_results[0].keys())

    # Initialisieren des CSV-Writers
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    # Die Kopfzeile schreiben und die CSV-Ausgabedatei auffüllen
    writer.writeheader()
    writer.writerows(serp_results)

Wahnsinn! In nur etwa 70 Zeilen Code haben Sie ein Skript zum Scannen von Baidu-Daten erstellt.

Testen Sie das Skript mit:

python scraper.py

Die Ausgabe ist eine baidu_serp_results.csv-Datei in Ihrem Projektordner. Öffnen Sie sie, um die strukturierten Daten zu sehen, die aus den Baidu-Suchergebnissen extrahiert wurden:

The baidu_serp_results.csv produced by the script

Hinweis: Um weitere Ergebnisse zu scrapen, wiederholen Sie den Vorgang mit dem Abfrageparameter pn, um eine Paginierung zu erreichen.

Et voilà! Sie haben erfolgreich unstrukturierte Baidu-Suchergebnisse in eine strukturierte CSV-Datei umgewandelt.

[Extra] Verwenden Sie einen entfernten Browserdienst, um Blockierungen zu vermeiden

Der oben gezeigte Scraper funktioniert gut für kleine Serien, aber er ist nicht gut skalierbar. Baidu fängt an, Anfragen zu blockieren, wenn es zu viel Traffic von der gleichen IP sieht und Fehlerseiten oder Herausforderungen zurückgibt. Der Betrieb vieler lokaler Chromium-Instanzen ist außerdem ressourcenintensiv (viel RAM) und schwer zu koordinieren.

Eine skalierbarere und leichter zu verwaltende Lösung besteht darin, Ihre Playwright-Instanz mit einer Remote-Browser-as-a-Service-Scraping-Lösung wie der Browser API von Bright Data zu verbinden. Diese bietet automatische Proxy-Rotation, CAPTCHA-Behandlung und Anti-Bot-Umgehung, echte Browser-Instanzen zur Vermeidung von Fingerprinting-Problemen und unbegrenzte Skalierung.

Folgen Sie der Anleitung zur Einrichtung der Browser-API von Bright Data, und Sie erhalten eine WSS-Verbindungszeichenfolge, die wie folgt aussieht:

wss://<BRIGHT_DATA_PROXY_USERNAME>:<BRIGHT_DATA_PROXY_PASSWORD>@brd.superproxy.io:9222
The Browser API product page in your Bright Data account

Verwenden Sie diese WSS-URL, um Playwright über das CDP(Chrome DevTools Protocol) mit den Remote-Browser-Instanzen zu verbinden:

wss_url = "wss://<BRIGHT_DATA_PROXY_USERNAME>:<BRIGHT_DATA_PROXY_PASSWORD>@brd.superproxy.io:9222"
browser = playwright.chromium.connect_over_cdp(wss_url)
Seite = browser.new_page()
# ...

Jetzt werden Ihre Playwright-Anfragen an Baidu über die Browser-API-Remote-Infrastruktur von Bright Data geleitet, die durch ein Residential-Proxy-Netzwerk mit 150 Millionen IPs und echte Browserinstanzen unterstützt wird. Dies gewährleistet eine neue IP für jede Sitzung und ein realistisches Browser-Fingerprinting.

Ansatz Nr. 2: Verwendung der SERP-API von Bright Data

In diesem Kapitel erfahren Sie, wie Sie die umfassende Baidu SERP-API von Bright Data verwenden, um Suchergebnisse programmatisch abzurufen.

Hinweis: Der Einfachheit halber gehen wir davon aus, dass Sie bereits ein Python-Projekt mit der Request-Bibliothek installiert haben.

Schritt 1: Einrichten einer SERP-API Zone in Ihrem Bright Data-Konto

Richten Sie zunächst das SERP-API-Produkt in Bright Data für das Scraping von Baidu-Suchergebnissen ein. Erstellen Siezunächst ein Bright Data-Konto – oder melden Sie sich an, wenn Sie bereits eines haben.

Für eine schnellere Einrichtung können Sie die offizielle Schnellstartanleitung für die SERP-API von Bright Data verwenden. Ansonsten fahren Sie mit den folgenden Schritten fort.

Navigieren Sie nach der Anmeldung in Ihrem Bright Data-Konto zu “Proxies & Scraping”, um die Produktseite aufzurufen:

Note the serp_api zone in the “My zones” table

Werfen Sie einen Blick auf die Tabelle “Meine Zonen”, in der Ihre konfigurierten Bright Data-Produkte aufgeführt sind. Wenn bereits eine aktive SERP-API-Zone vorhanden ist, können Sie loslegen. Kopieren Sie einfach den Zonennamen (z. B. serp_api), da Sie ihn später benötigen werden.

Wenn noch keine SERP-API-Zone existiert, scrollen Sie zum Abschnitt “Scraping-Lösungen” und klicken Sie auf der Karte “SERP-API” auf “Zone erstellen”:

Creating a new “SERP API” zone

Geben Sie Ihrer Zone einen Namen (z. B. serp-api) und klicken Sie auf die Schaltfläche “Hinzufügen”:

Pressing the “Add” button

Gehen Sie dann auf die Produktseite der Zone und stellen Sie sicher, dass sie aktiviert ist, indem Sie den Schalter auf “Aktiv” stellen:

Making sure the zone is enabled

Super! Ihre Bright Data SERP-API-Zone ist nun erfolgreich konfiguriert und einsatzbereit.

Schritt 2: Abrufen des Bright Data-API-Schlüssels

Die empfohlene Methode zur Authentifizierung von Anforderungen an die SERP-API ist die Verwendung Ihres Bright Data-API-Schlüssels. Wenn Sie noch keinen generiert haben, folgen Sie der offiziellen Anleitung von Bright Data, um Ihren API-Schlüssel zu erstellen.

Geben Sie bei einer POST-Anforderung an die SERP-API Ihren API-Schlüssel wie folgt in den Authorization-Header ein:

"Authorization: Überbringer <Ihr_BRIGHT_DATA_API_KEY>"

Erstaunlich! Jetzt haben Sie alles, was Sie brauchen, um die SERP-API von Bright Data von einem Python-Skript mit Anfragen - oderjedem anderen Python-HTTP-Client– aufzurufen.

Jetzt können wir alles zusammenfügen!

Schritt Nr. 3: Aufrufen der SERP-API

Verwenden Sie die SERP-API von Bright Data in Python, um Baidu-Suchergebnisse für das Schlüsselwort “Bright Data” abzurufen:

# pip install requests

importiere Anfragen
from urllib.parse import urlencode

# Bright Data-Anmeldedaten (TODO: durch eigene Werte ersetzen)
bright_data_api_key = "<YOUR_BRIGHT_DATA_API_KEY>"
bright_data_serp_api_zone_name = "<YOUR_SERP_API_ZONE_NAME>" # (z.B. "serp_api") 

# Basis-URL der Baidu-Suchseite
base_url = "https://www.baidu.com/s"

# Suchbegriff/Keyphrase
search_query = "helle Daten"
params = {"wd": search_query}

# Erstellen Sie die Baidu SERP URL
url = f"{base_url}?{urlencode(params)}"

# Senden Sie eine POST-Anfrage an die SERP-API von Bright Data
response = requests.post(
    "https://api.brightdata.com/request",
    headers={
        "Authorization": f "Bearer {bright_data_api_key}",
        "Content-Type": "application/json"
    },
    json={
        "zone": bright_data_serp_api_zone_name,
        "url": url,
        "format": "raw"
    }
)

# Abrufen des vollständig gerenderten HTML
html = antwort.text

# Die Parsing-Logik beginnt hier.

Ein weiteres Beispiel finden Sie im “Bright Data SERP-API Python Project” auf GitHub.

Die Bright Data SERP-API kümmert sich um das Rendering von JavaScript, integriert sich in ein Proxy-Netzwerk für automatische IP-Rotation und verwaltet Anti-Scraping-Maßnahmen wie Browser-Fingerprinting, CAPTCHAs und andere. Das bedeutet, dass Sie nicht auf die Fehlerseite “网络不给力,请稍后重试” (“Das Netzwerk funktioniert nicht gut, bitte versuchen Sie es später noch einmal.”) stoßen werden, die Sie normalerweise erhalten würden, wenn Sie Baidu mit einem einfachen HTTP-Client wie Anfragen scrapen.

Einfacher ausgedrückt: Die Variable html enthält die vollständig gerenderte Baidu-Suchergebnisseite. Überprüfen Sie dies, indem Sie den HTML-Code mit:

print(html)

Sie erhalten eine Ausgabe wie die unten stehende:

The HTML page returned by SERP API

Von hier aus können Sie das HTML wie im ersten Ansatz gezeigt parsen, um die benötigten Baidu-Suchdaten zu extrahieren. Wie versprochen, verhindert die Bright Data SERP-API Blockierungen und ermöglicht Ihnen eine unbegrenzte Skalierbarkeit!

Ansatz Nr. 3: Integrieren Sie den Web MCP Server

Denken Sie daran, dass die SERP-API (und viele andere Bright Data-Produkte) auch über das search_engine-Tool in der Bright Data Web MCP zugänglich ist.

Dieser Open-Source-Web-MCP-Server bietet einen KI-freundlichen Zugriff auf die Webdatenabfragelösungen von Bright Data, einschließlich Baidu-Scraping. Insbesondere die Tools search_engine und scrape_as_markdown sind in der kostenlosen Web MCP-Stufe verfügbar, sodass Sie sie in KI-Agenten oder -Workflows kostenlos verwenden können.

Um die Web MCP in Ihre KI-Lösung zu integrieren, benötigen Sie lediglich ein lokal installiertes Node.js und eine Konfigurationsdatei wie diese:

{
  "mcpServer": {
    "Bright Data Web MCP": {
      "command": "npx",
      "args": ["-y", "@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<IHR_BRIGHT_DATA_API_KEY>"
      }
    }
  }
}

Dieses Setup funktioniert zum Beispiel mit Claude Desktop und Code (und vielen anderen KI-Bibliotheken und -Lösungen). Weitere Integrationen finden Sie in den Dokumentationen.

Alternativ können Sie eine Verbindung über den Bright Data-Remoteserver herstellen, ohne dass lokale Voraussetzungen erforderlich sind.

Mit dieser Integration können Ihre KI-gesteuerten Workflows oder Agenten selbstständig SERP-Daten von Baidu (oder anderen unterstützten Suchmaschinen) abrufen und diese on the fly verarbeiten.

Fazit

In diesem Tutorial haben Sie drei empfohlene Methoden zum Scrapen von Baidu kennengelernt:

  1. Verwendung eines benutzerdefinierten Scrapers.
  2. Nutzung der SERP-API von Baidu.
  3. Über die Bright Data Web MCP.

Wie gezeigt, ist die Verwendung einer strukturierten Scraping-Lösung die zuverlässigste Methode, um Baidu in großem Umfang zu scrapen und gleichzeitig Blockierungen zu vermeiden. Diese muss durch eine fortschrittliche Anti-Bot-Bypass-Technologie und ein robustes Proxy-Netzwerk, wie z. B. Bright Data-Produkte, unterstützt werden.

Erstellen Sie ein kostenloses Bright Data-Konto und erkunden Sie unsere Scraping-Lösungen noch heute!