MediaCrawler - Multi-Plattform Social-Media-Crawler
Projektübersicht
MediaCrawler ist ein leistungsstarkes Multi-Plattform Social-Media-Crawler-Tool, das von NanmiCoder entwickelt und gewartet wird. Das Projekt basiert auf der Playwright-Technologie und kann öffentliche Informationen von mehreren Mainstream-Social-Media-Plattformen erfassen, einschließlich Inhalte, Kommentare und andere Daten.
Technische Architektur
Kerntechnologien
- Playwright: Als Browser-Automatisierungs-Framework, das die Browserumgebung mit erhaltenem Anmeldestatus beibehält.
- Python: Hauptentwicklungssprache, Versionsanforderung 3.9.6+
- JavaScript-Ausführung: Abrufen verschlüsselter Parameter durch Ausführen von JS-Ausdrücken
- Node.js: Versionsanforderung 16+
Funktionsweise
Das Projekt verwendet Playwright als Brücke, um die Browserumgebung mit dem nach erfolgreicher Anmeldung erhaltenen Kontext beizubehalten und einige verschlüsselte Parameter durch Ausführen von JavaScript-Ausdrücken abzurufen. Diese Methode vermeidet die komplexe Aufgabe, den Kern-JS-Verschlüsselungscode zu reproduzieren, und reduziert die Schwierigkeit des Reverse Engineering erheblich.
Systemanforderungen
Systemvoraussetzungen
- Python 3.9.6+
- Node.js 16+
Abhängigkeitsverwaltung
Das Projekt hat uv
hinzugefügt, um Projektabhängigkeiten zu verwalten. Sie können uv verwenden, um pip für die Abhängigkeitsinstallation zu ersetzen, was bequemer und schneller ist.
Installation und Bereitstellung
Grundlegende Installationsschritte
# Wechseln Sie in das Stammverzeichnis des Projekts
cd MediaCrawler
# Erstellen Sie eine virtuelle Umgebung
python -m venv venv
# Aktivieren Sie die virtuelle Umgebung
# macOS & Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# Installieren Sie Abhängigkeiten
pip install -r requirements.txt
# Installieren Sie den Playwright-Browser
playwright install
Datenbankinitialisierung (optional)
# Führen Sie die Datenbankinitialisierung aus (nur beim ersten Mal)
python db.py
Verwendung
Grundlegende Befehle
# Keyword-Such-Crawling
python main.py --platform xhs --lt qrcode --type search
# Crawling mit angegebener Post-ID
python main.py --platform xhs --lt qrcode --type detail
# Hilfeinformationen anzeigen
python main.py --help
Konfigurationsbeschreibung
- Das Projekt startet standardmäßig nicht den Kommentar-Crawling-Modus
- Wenn Sie Kommentare crawlen müssen, ändern Sie die Variable
ENABLE_GET_COMMENTS
in config/base_config.py
- Andere Funktionskonfigurationen können auch in
config/base_config.py
angezeigt werden, alle mit chinesischen Kommentaren
Datenspeicherung
Unterstützte Speichermethoden
- MySQL-Datenbank: Unterstützt relationale Datenbankenspeicherung (Datenbank muss im Voraus erstellt werden)
- CSV-Datei: Speichern Sie in einer CSV-Datei im Verzeichnis
data/
- JSON-Datei: Speichern Sie in einer JSON-Datei im Verzeichnis
data/
Vorteile der Pro-Version
Das Projekt bietet auch die MediaCrawlerPro Version, die im Vergleich zur Open-Source-Version folgende Vorteile bietet:
- Unterstützung für mehrere Konten + IP-Proxy (Schlüsselfunktion)
- Entfernung der Playwright-Abhängigkeit, einfachere Verwendung
- Unterstützung für die Verwendung in Linux-Umgebungen
- Code-Refactoring-Optimierung, leichter zu lesen und zu warten
- Entkopplung der JS-Signaturlogik, höhere Codequalität
- Perfektes Architekturdesign, leichter erweiterbar
- Neuer Desktop-Software für den Download von Social-Media-Videos
- Unterstützung für Empfehlungen von HomeFeed-Informationen auf mehreren Plattformen
Rechtliche Hinweise
Haftungsausschluss
- Dieses Projekt ist nur für Lern- und Forschungszwecke bestimmt und darf nicht für kommerzielle Zwecke verwendet werden.
- Es ist strengstens untersagt, es für illegale Zwecke zu verwenden oder die legitimen Rechte und Interessen anderer zu verletzen.
- Benutzer müssen die einschlägigen Gesetze und Vorschriften einhalten und die rechtliche Verantwortung selbst tragen.
- Der Entwickler übernimmt keine rechtliche Verantwortung für die Verwendung dieses Projekts.
Projektwert
MediaCrawler ist nicht nur ein Crawler-Tool, sondern auch ein exzellentes Lernprojekt:
- Architekturdesign-Lernen: Das Architekturdesign des Projekts ist ausgereift und es lohnt sich, es zu lernen und zu übernehmen.
- Technische Praxis: Umfasst die umfassende Anwendung verschiedener Technologie-Stacks.
- Engineering-Denken: Vollständige Engineering-Praxis von der Codeorganisation bis zur Bereitstellung.
- Anti-Crawling-Technologie: Lernen Sie die Bewältigungsstrategien moderner Anti-Crawling-Technologien.