1. Was ist MediaCrawler?

MediaCrawler ist das umfassendste Open-Source-Crawler-Tool für chinesische Social-Media-Plattformen, mit über 64.000 GitHub-Stars, gepflegt vom Entwickler NanmiCoder. Es basiert auf dem Python + Playwright-Browserautomatisierungs-Framework und ruft direkt die Plattform-APIs ab, indem es den Anmeldestatus beibehält, ohne komplexe JS-Verschlüsselungsalgorithmen reverse engineering betreiben zu müssen – was die technische Einstiegshürde erheblich senkt.

Kernpositionierung: Ein Lernwerkzeug für Datenanalysten, Meinungsforschende und Content-Operatoren, das die Ein-Klick-Erfassung öffentlicher Inhaltsdaten von 7 großen chinesischen Social-Media-Plattformen unterstützt.

Im Gegensatz zu allgemeinen Web-Crawlern wie Crawl4AI konzentriert sich MediaCrawler speziell auf chinesische Social-Media-Plattformen und enthält plattformspezifische Signaturlogik und Datenverarbeitungsregeln – sofort einsatzbereit. Wenn du Daten von internationalen Plattformen erfassen möchtest, schau dir die Wiseflow-Analyse an.

2. Unterstützte 7 Plattformen und Funktionsmatrix

Plattform Keyword-Suche Bestimmte Posts Unterkommentare Creator-Profil Anmeldestatus-Cache IP-Proxy-Pool Kommentar-Wortwolke
Xiaohongshu ✅ ✅ ✅ ✅ ✅ ✅ ✅
Douyin ✅ ✅ ✅ ✅ ✅ ✅ ✅
Kuaishou ✅ ✅ ✅ ✅ ✅ ✅ ✅
Bilibili ✅ ✅ ✅ ✅ ✅ ✅ ✅
Weibo ✅ ✅ ✅ ✅ ✅ ✅ ✅
Tieba ✅ ✅ ✅ ✅ ✅ ✅ ✅
Zhihu ✅ ✅ ✅ ✅ ✅ ✅ ✅

Alle sieben Plattformen bieten identischen Funktionsumfang – das ist der größte architektonische Vorteil von MediaCrawler: Ein einheitliches Interface-Design, bei dem der Plattformwechsel nur einen Parameter ändert.

3. Technische Architektur im Detail

Die technische Gestaltung von MediaCrawler ist auf die „Minimierung des Erkennungsrisikos" ausgerichtet:

┌─────────────────────────────────────────────┐
│           MediaCrawler-Architektur           │
├─────────────────────────────────────────────┤
│  Benutzerebene  CLI / WebUI                  │
├─────────────────────────────────────────────┤
│  Steuerungsebene  Plattform-Dispatcher →     │
│                   Einheitliche Crawler-Schnittstelle │
├─────────────────────────────────────────────┤
│  Ausführungsebene  Playwright (CDP-Modus)    │
│           ├─ Anmeldungsverwaltung (QR/Telefon/Cookie) │
│           ├─ JS-Signaturberechnung (Browser-Kontext)  │
│           └─ Anti-Erkennung (Echte Browser-Fingerabdrücke) │
├─────────────────────────────────────────────┤
│  Datenebene   CSV / JSON / JSONL / Excel     │
│              SQLite / MySQL / PostgreSQL      │
└─────────────────────────────────────────────┘

Kernprinzipien:

  1. CDP-Modus (empfohlen): Verbindet sich über das Chrome DevTools Protocol mit einem vorhandenen Chrome-Browser und nutzt echte Cookies, Erweiterungen und den Browserverlauf – optimale Anti-Erkennung
  2. Signatur-Wiederverwendung: Nutzt den Browser-Kontext mit gespeichertem Anmeldestatus, um Plattformsignatur-Parameter direkt über JS-Ausdrücke abzurufen, ohne Verschlüsselungsalgorithmen reverse engineeren zu müssen
  3. Anmeldestatus-Cache: Nach dem ersten QR-Code-Login werden Cookies gespeichert und bei nachfolgenden Ausführungen automatisch wiederverwendet

4. Installation und Schnellstart

4.1 Umgebung vorbereiten

BASH
# 1. uv installieren (empfohlener Python-Paketmanager)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Node.js >= 16 bestätigen (für Douyin- und Zhihu-Signaturen erforderlich)
node --version

# 3. Projekt klonen
git clone https://github.com/NanmiCoder/MediaCrawler.git
cd MediaCrawler

# 4. Abhängigkeiten installieren (uv verwaltet Python-Version und Abhängigkeiten automatisch)
uv sync

4.2 Chrome-Browser-Konfiguration (CDP-Modus)

MediaCrawler verwendet standardmäßig den CDP-Modus und benötigt eine Chrome-Konfiguration:

  1. Chrome >= 144 installieren
  2. chrome://inspect/#remote-debugging in der Adressleiste eingeben
  3. "Allow remote debugging for this browser instance" aktivieren
  4. Bestätigen, dass Server running at: 127.0.0.1:9222 angezeigt wird

Wenn du den CDP-Modus nicht verwenden möchtest, setze ENABLE_CDP_MODE = False in config/base_config.py.

4.3 Erste Ausführung

BASH
# Xiaohongshu-Keyword-Suche (standardmäßig 15 Beiträge)
uv run main.py --platform xhs --lt qrcode --type search

# Beim ersten Start erscheint ein QR-Code – mit der Xiaohongshu-APP scannen
# Anmeldestatus wird automatisch gespeichert, kein erneutes Scannen nötig

5. Wichtige Konfigurationsoptionen

config/base_config.py ist die zentrale Konfigurationsdatei. Hier die wichtigsten Einstellungen:

PYTHON
# Zielplattform: xhs | dy | ks | bili | wb | tieba | zhihu
PLATFORM = "xhs"

# Suchbegriffe (durch englische Kommas getrennt)
KEYWORDS = "Python教程,编程副业,AI工具推荐"

# Anmeldemethode: qrcode (QR-Scan) | phone (Telefon) | cookie (manuell)
LOGIN_TYPE = "qrcode"

# Crawler-Typ: search (Keyword-Suche) | detail (bestimmter Post) | creator (Creator-Profil)
CRAWLER_TYPE = "search"

# Datenspeicherformat: csv | db | json | jsonl | sqlite | excel | postgres
SAVE_DATA_OPTION = "jsonl"

# Maximale Anzahl der Beiträge pro Keyword
CRAWLER_MAX_NOTES_COUNT = 15

# Parallelität (empfohlen: 1, um Risikosteuerung zu vermeiden)
MAX_CONCURRENCY_NUM = 1

# Kommentar-Crawling aktivieren
ENABLE_GET_COMMENTS = True

# Unterkommentare aktivieren
ENABLE_GET_SUB_COMMENTS = False

# IP-Proxy-Konfiguration
ENABLE_IP_PROXY = False
IP_PROXY_PROVIDER_NAME = "kuaidaili"

6. Plattformspezifische Erfassung

6.1 Xiaohongshu-Erfassung

BASH
# Keyword-Suche nach Beiträgen
uv run main.py --platform xhs --lt qrcode --type search

# Bestimmte Beitrags-ID für Details
uv run main.py --platform xhs --lt qrcode --type detail

# Alle Beiträge des Creator-Profils
uv run main.py --platform xhs --lt qrcode --type creator

Xiaohongshu-Datenfelder umfassen: Beitragstitel, Textinhalt, Bilderliste, Likes, Speicherungen, Kommentare, Autoreninformationen, Veröffentlichungszeitpunkt usw.

6.2 Douyin-Erfassung

BASH
# Video-Suche
uv run main.py --platform dy --lt qrcode --type search

# Bestimmte Video-ID
uv run main.py --platform dy --lt qrcode --type detail

Die Douyin-Erfassung benötigt eine Node.js-Umgebung für die Signaturberechnung. Datenfelder umfassen: Videotitel, Wiedergabe-URL, Vorschaubild, Likes, Kommentare, Shares usw.

6.3 Bilibili-Erfassung

BASH
# Video-Suche
uv run main.py --platform bili --lt qrcode --type search

# Bestimmtes Video (BV-Nummer)
uv run main.py --platform bili --lt qrcode --type detail

Bilibili-Daten umfassen: Videotitel, BV-Nummer, Aufrufe, Danmaku-Kommentare, Likes/Coins/Favoriten, UP-Master-Informationen usw.

6.4 Weibo / Tieba / Zhihu / Kuaishou

BASH
# Weibo
uv run main.py --platform wb --lt qrcode --type search

# Baidu Tieba
uv run main.py --platform tieba --lt qrcode --type search

# Zhihu
uv run main.py --platform zhihu --lt qrcode --type search

# Kuaishou
uv run main.py --platform ks --lt qrcode --type search

Das Befehlsformat ist für alle Plattformen identisch – nur der --platform-Parameter wird geändert.

7. Datenspeicherung und Export

MediaCrawler unterstützt 7 Speicherformate. Daten werden standardmäßig im data/-Verzeichnis gespeichert:

Format Anwendungsfall Merkmale
JSONL Tägliche Erfassung (Standard) Zeilenweises Schreiben, fortsetzbar
CSV Excel-Analyse Direkt in Tabellenkalkulation öffnbar
JSON Programm-Anbindung Standardformat, verschachtelte Struktur
Excel Berichtsausgabe Formatierter Tabellenexport
SQLite Lokale Datenbank Leichte Abfragen, kein zusätzlicher Server
MySQL Produktionsumgebung Deduplizierung, für große Datenmengen
PostgreSQL Enterprise Vollständige relationale Datenbank
PYTHON
# Auf MySQL-Speicherung umstellen
SAVE_DATA_OPTION = "db"

# Verbindung in db_config.py konfigurieren
DB_HOST = "localhost"
DB_PORT = 3306
DB_USER = "root"
DB_PASSWORD = "your_password"
DB_NAME = "media_crawler"

8. Erweiterte Funktionen

8.1 WebUI – Visuelle Bedienung

BASH
# Terminal 1: Backend-API starten
uv run uvicorn api.main:app --port 8080 --reload

# Terminal 2: Frontend starten (Entwicklungsmodus)
cd webui && npm install && npm run dev
# Aufrufen: http://localhost:5173/

# Oder Produktions-Build erstellen
cd webui && npm install && npm run build
# Nur API-Server starten, dann: http://localhost:8080

Die WebUI bietet eine visuelle Konfigurationsoberfläche für den Crawler – ohne Befehlszeile.

8.2 IP-Proxy-Pool-Konfiguration

Für großflächige Datenerfassung wird ein Proxy-Pool empfohlen:

PYTHON
ENABLE_IP_PROXY = True
IP_PROXY_POOL_COUNT = 2
IP_PROXY_PROVIDER_NAME = "kuaidaili"  # Unterstützt: kuaidaili | wandouhttp | static

# Statische Proxy-Konfiguration
IP_PROXY_PROVIDER_NAME = "static"
STATIC_PROXY_URL = "http://user:password@your_proxy:port"

8.3 Parallelität und Frequenzsteuerung

PYTHON
# Parallelität (vorsichtig einstellen – zu hoch löst Risikosteuerung aus)
MAX_CONCURRENCY_NUM = 1

# Maximale Erfassungsmenge pro Keyword
CRAWLER_MAX_NOTES_COUNT = 50

# Startseitennummer
START_PAGE = 1

8.4 Kommentar-Wortwolke

MediaCrawler enthält eine integrierte Wortwolken-Funktion für Kommentare:

PYTHON
# In base_config.py aktivieren
# wordcloud und weitere Abhängigkeiten müssen installiert sein
ENABLE_WORD_CLOUD = True

9. Rechtliche Hinweise und Risikowarnung

Wichtiger Hinweis: Bitte informiere dich vor der Nutzung von MediaCrawler über folgende Risiken:

  1. Rechtliche Konformität: Beachte das „Cybersicherheitsgesetz", das „Datensicherheitsgesetz" und das „Gesetz zum Schutz persönlicher Informationen" – keine kommerzielle Nutzung
  2. Plattformregeln: Respektiere die robots.txt und Nutzungsbedingungen der Plattformen, vermeide Massencrawling
  3. Frequenzkontrolle: Passe die Anfragefrequenz vernünftig an, um die Plattformen nicht zu belasten
  4. Datenverwendung: Nur für Lern- und Forschungszwecke, keine illegale Nutzung
  5. Datenschutz: Keine Erfassung oder Verbreitung privater personenbezogener Daten

Referenz: Sammlung von Crawler-Rechtsfällen

10. Vergleich mit anderen Tools

Feature MediaCrawler Snscrape Tweepy Eigener Crawler
Zielplattform 7 große chinesische Plattformen Twitter/X Twitter/X Beliebig
Anti-Erkennung CDP-Echt-Browser Keine Offizielle API Selbst implementieren
Anmeldungsverwaltung QR/Telefon/Cookie Nicht erforderlich OAuth Manuell
Datenspeicherung 7 Formate CLI-Ausgabe JSON Selbst implementieren
Einstiegshürde Niedrig (Konfiguration genügt) Niedrig Mittel Hoch
Kommentar-Erfassung ✅ Inkl. Unterkommentare ❌ ✅ Entwicklung nötig
Wartungsstatus Aktiv (64K+ Stars) Eingestellt Aktiv Eigenverantwortlich

Für allgemeines Web-Crawling empfehle ich Crawl4AI; für Information-Flow-Monitoring und KI-Zusammenfassungen Wiseflow. MediaCrawlers einzigartiger Wert liegt in der tiefgreifenden Anpassung an chinesische Social-Media-Plattformen.

11. Häufig gestellte Fragen (FAQ)

Welche Python-Versionen unterstützt MediaCrawler?

Empfohlen wird Python 3.11 – dies ist die Haupt-Testversion für die Projekt-Abhängigkeiten. Bei der Installation mit uv wird automatisch die passende Python-Version verwendet.

Was tun, wenn der QR-Code-Login fehlschlägt?

Im CDP-Modus: Stelle sicher, dass Chrome >= 144 installiert und Remote-Debugging aktiviert ist. Wenn wiederholt ein QR-Code angefordert wird, schließe den Browser und aktiviere Remote-Debugging erneut. Alternativ kann HEADLESS = False gesetzt und die Schieberegler-Verifizierung manuell durchgeführt werden.

Kann ich gleichzeitig auf mehreren Plattformen crawlen?

Ja, aber serielle Ausführung wird empfohlen. Gib bei jeder Ausführung einen --platform-Parameter an und wechsle erst zur nächsten Plattform, wenn die aktuelle abgeschlossen ist. Paralleles Crawling auf mehreren Plattformen kann Risikosteuerung auslösen.

Wo werden die Daten gespeichert?

Standardmäßig im data/-Ordner im Projektstammverzeichnis, aufgeteilt in Plattform-Unterverzeichnisse. Der Speicherpfad kann über SAVE_DATA_PATH angepasst werden.

Darf MediaCrawler kommerziell genutzt werden?

Nein. Das Projekt verwendet eine „NON-COMMERCIAL LEARNING LICENSE 1.1", die kommerzielle Nutzung ausdrücklich untersagt. Für kommerzielle Nutzung kontaktiere bitte den Autor für eine Lizenz.

12. Zusammenfassung

MediaCrawler ist das derzeit umfassendste Open-Source-Tool zur Erfassung chinesischer Social-Media-Daten – über 64.000 GitHub-Stars belegen seinen praktischen Wert. Die Kernvorteile:

  • Breite Abdeckung: Einheitliche Schnittstelle für 7 Plattformen, wechsel ohne Aufwand
  • Starke Anti-Erkennung: CDP-Modus nutzt echte Browser-Umgebungen
  • Einfacher Einstieg: Ein-Klick-Installation mit uv, sofort einsatzbereit
  • Flexible Speicherung: 7 Datenformate für verschiedene Szenarien
  • Aktive Community: Kontinuierliche Updates, schnelle Problemlösung

Für Datenanalysten, Meinungsforschende und Content-Operatoren ist MediaCrawler der beste Ausgangspunkt zum Erlernen von Social-Media-Datenerfassung. Bitte nutze es stets rechtskonform und respektiere Plattformregeln und Benutzerdatenschutz.