MediaCrawler - Herramienta de rastreo de redes sociales multiplataforma
Resumen del proyecto
MediaCrawler es una potente herramienta de rastreo de redes sociales multiplataforma, desarrollada y mantenida por NanmiCoder. Este proyecto se basa en la tecnología Playwright y es capaz de capturar información pública de múltiples plataformas de redes sociales populares, incluyendo contenido, comentarios y otros datos.
Arquitectura técnica
Tecnologías clave
- Playwright: Como framework de automatización de navegadores, mantiene el entorno del navegador con el estado de inicio de sesión.
- Python: Lenguaje de desarrollo principal, requiere la versión 3.9.6+.
- Ejecución de JavaScript: Obtiene parámetros de cifrado mediante la ejecución de expresiones JS.
- Node.js: Requiere la versión 16+.
Principio de funcionamiento
El proyecto adopta un enfoque de puente con Playwright, manteniendo el entorno del navegador con el contexto después de un inicio de sesión exitoso, y obteniendo algunos parámetros de cifrado mediante la ejecución de expresiones JavaScript. Este enfoque evita el complejo trabajo de reproducir el código JS de cifrado central, reduciendo en gran medida la dificultad de la ingeniería inversa.
Requisitos del entorno
Requisitos del sistema
- Python 3.9.6+
- Node.js 16+
Gestión de dependencias
El proyecto ha añadido uv
para gestionar las dependencias del proyecto. Puede utilizar uv para reemplazar el tradicional pip para la instalación de dependencias, lo que es más conveniente y rápido.
Instalación y despliegue
Pasos básicos de instalación
# Entrar al directorio raíz del proyecto
cd MediaCrawler
# Crear un entorno virtual
python -m venv venv
# Activar el entorno virtual
# macOS & Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# Instalar dependencias
pip install -r requirements.txt
# Instalar el navegador playwright
playwright install
Inicialización de la base de datos (opcional)
# Ejecutar la inicialización de la base de datos (solo la primera vez)
python db.py
Modo de empleo
Comandos básicos
# Rastreo de búsqueda por palabras clave
python main.py --platform xhs --lt qrcode --type search
# Rastreo de un ID de publicación específico
python main.py --platform xhs --lt qrcode --type detail
# Ver información de ayuda
python main.py --help
Descripción de la configuración
- El proyecto no activa el modo de rastreo de comentarios por defecto.
- Si necesita rastrear comentarios, modifique la variable
ENABLE_GET_COMMENTS
en config/base_config.py
.
- Otras configuraciones de funciones también se pueden ver en
config/base_config.py
, todas con comentarios explicativos en chino.
Almacenamiento de datos
Métodos de almacenamiento soportados
- Base de datos MySQL: Soporta el almacenamiento en bases de datos relacionales (necesita crear la base de datos con antelación).
- Archivos CSV: Guardado en archivos de formato CSV en el directorio
data/
.
- Archivos JSON: Guardado en archivos de formato JSON en el directorio
data/
.
Ventajas de la versión Pro
El proyecto también ofrece la versión MediaCrawlerPro, que tiene las siguientes ventajas en comparación con la versión de código abierto:
- Soporte para múltiples cuentas + proxy IP (función clave)
- Eliminación de la dependencia de Playwright, lo que facilita su uso.
- Soporte para el uso en entornos Linux.
- Refactorización y optimización del código, más fácil de leer y mantener.
- Desacoplamiento de la lógica de firma JS, mayor calidad del código.
- Diseño de arquitectura perfecto, más fácil de ampliar.
- Nuevo software de escritorio para descargar vídeos de redes sociales.
- Soporte para la recomendación de flujo de información de la página de inicio de múltiples plataformas (HomeFeed).
Declaración legal
Exención de responsabilidad
- Este proyecto es solo para fines de aprendizaje e investigación, y está prohibido su uso comercial.
- Está estrictamente prohibido su uso para fines ilegales o para infringir los derechos e intereses legítimos de otros.
- Los usuarios deben cumplir con las leyes y regulaciones pertinentes y asumir la responsabilidad legal.
- Los desarrolladores no asumen ninguna responsabilidad legal por cualquier consecuencia derivada del uso de este proyecto.
Valor del proyecto
MediaCrawler no es solo una herramienta de rastreo, sino también un excelente proyecto de aprendizaje:
- Aprendizaje del diseño de la arquitectura: El diseño de la arquitectura del proyecto es maduro y vale la pena aprenderlo y emularlo.
- Práctica técnica: Cubre la aplicación integral de múltiples pilas de tecnología.
- Pensamiento de ingeniería: Práctica completa de ingeniería desde la organización del código hasta el despliegue.
- Tecnología anti-rastreo: Aprender soluciones para las modernas tecnologías anti-rastreo.