MediaCrawler - Outil d'extraction de données de médias sociaux multiplateformes
Aperçu du projet
MediaCrawler est un outil puissant d'extraction de données de médias sociaux multiplateformes, développé et maintenu par NanmiCoder. Ce projet est basé sur la technologie Playwright et permet de récupérer des informations publiques provenant de plusieurs plateformes de médias sociaux populaires, notamment le contenu, les commentaires, etc.
Architecture technique
Technologies clés
- Playwright: Framework d'automatisation de navigateur, conservant l'environnement de navigateur avec l'état de connexion.
- Python: Langage de développement principal, version requise 3.9.6+.
- Exécution JavaScript: Obtention de paramètres chiffrés en exécutant des expressions JS.
- Node.js: Version requise 16+.
Principe de fonctionnement
Le projet utilise Playwright comme pont, conservant l'environnement de navigateur contextuel après une connexion réussie, et obtient certains paramètres chiffrés en exécutant des expressions JavaScript. Cette approche évite le travail complexe de reproduction du code JS de chiffrement principal, réduisant considérablement la difficulté de l'ingénierie inverse.
Exigences environnementales
Exigences système
- Python 3.9.6+
- Node.js 16+
Gestion des dépendances
Le projet a ajouté uv
pour gérer les dépendances du projet. Vous pouvez utiliser uv pour remplacer pip traditionnel pour l'installation des dépendances, ce qui est plus pratique et rapide.
Installation et déploiement
Étapes d'installation de base
# Accéder au répertoire racine du projet
cd MediaCrawler
# Créer un environnement virtuel
python -m venv venv
# Activer l'environnement virtuel
# macOS & Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
# Installer le navigateur Playwright
playwright install
Initialisation de la base de données (facultatif)
# Exécuter l'initialisation de la base de données (uniquement lors de la première exécution)
python db.py
Utilisation
Commandes de base
# Extraction par recherche de mots-clés
python main.py --platform xhs --lt qrcode --type search
# Extraction par ID de publication spécifié
python main.py --platform xhs --lt qrcode --type detail
# Afficher l'aide
python main.py --help
Configuration
- Le projet ne démarre pas par défaut le mode d'extraction des commentaires.
- Si vous devez extraire les commentaires, veuillez modifier la variable
ENABLE_GET_COMMENTS
dans config/base_config.py
.
- D'autres configurations de fonctionnalités peuvent également être consultées dans
config/base_config.py
, toutes avec des commentaires en chinois.
Stockage des données
Méthodes de stockage prises en charge
- Base de données MySQL: Prend en charge le stockage de base de données relationnelle (la base de données doit être créée à l'avance).
- Fichiers CSV: Enregistrés dans des fichiers au format CSV dans le répertoire
data/
.
- Fichiers JSON: Enregistrés dans des fichiers au format JSON dans le répertoire
data/
.
Avantages de la version Pro
Le projet propose également la version MediaCrawlerPro, qui présente les avantages suivants par rapport à la version open source :
- Prise en charge de plusieurs comptes + proxy IP (fonctionnalité clé)
- Suppression de la dépendance à Playwright, utilisation plus simple
- Prise en charge de l'utilisation dans un environnement Linux
- Refactorisation et optimisation du code, plus facile à lire et à maintenir
- Découplage de la logique de signature JS, meilleure qualité du code
- Conception d'architecture parfaite, plus facile à étendre
- Nouveau logiciel de bureau pour le téléchargement de vidéos de médias sociaux
- Prise en charge de la recommandation de flux d'informations de la page d'accueil multiplateforme (HomeFeed)
Déclaration légale
Clause de non-responsabilité
- Ce projet est uniquement destiné à l'apprentissage et à la recherche, et il est interdit de l'utiliser à des fins commerciales.
- Il est strictement interdit de l'utiliser à des fins illégales ou de violer les droits et intérêts légitimes d'autrui.
- Les utilisateurs doivent se conformer aux lois et réglementations pertinentes et assumer leurs propres responsabilités légales.
- Le développeur n'assume aucune responsabilité légale pour les dommages causés par l'utilisation de ce projet.
Valeur du projet
MediaCrawler n'est pas seulement un outil d'extraction de données, mais aussi un excellent projet d'apprentissage :
- Apprentissage de la conception d'architecture: La conception de l'architecture du projet est mature et mérite d'être étudiée et apprise.
- Pratique technique: Couvre l'application complète de diverses piles technologiques.
- Pensée d'ingénierie: Pratique d'ingénierie complète de l'organisation du code au déploiement.
- Technologie anti-crawler: Apprendre les solutions aux technologies anti-crawler modernes.