Ventajas de MediaCrawler
La captura de datos de múltiples plataformas sociales es esencial para análisis de mercado y monitoreo de marcas. MediaCrawler simplifica este proceso evitando técnicas complejas de ingeniería inversa mediante la automatización con Playwright, permitiendo extraer información de plataformas como Xiaohongshu, Douyin, Kuaishou, Bilibili y Weibo.
Cobertura de Plataformas
| Plataforma | Contenido | Autenticación | Protección |
|---|---|---|---|
| Xiaohongshu | Publicaciones, usuarios, comentarios | Código QR, móvil, Cookie | Rotación de IP |
| Douyin | Videos, usuarios, comentarios | Código QR, móvil, Cookie | Captchas |
| Kuaishou | Videos, usuarios, comentarios | Código QR, Cookie | Parámetros dinámicos |
| Bilibili | Videos, creadores, comentarios | Código QR, Cookie | Huella navegador |
| Publicaciones, usuarios, tendencias | Código QR, Cookie | Control de frecuencia |
Configuración Inicial
# Clonar repositorio
git clone https://gitcode.com/GitHub_Trending/mediacr/MediaCrawler
cd MediaCrawler
# Entorno virtual
python3 -m venv entorno
source entorno/bin/activate
# Instalar dependencias
pip install -r requirements.txt
playwright install
Personalización
# config/config_base.py
PLATAFORMA_META = "xhs"
TERMINOS_BUSQUEDA = "tutoriales maquillaje"
METODO_ACCESO = "qrcode"
MAX_ELEMENTOS = 100
FORMATO_SALIDA = "csv"
Ejecución
# Captura basada en términos
python principal.py --plataforma xhs --metodo qrcode --tipo busqueda
# Captura por creador
python principal.py --plataforma dy --metodo cookie --tipo creador
Gestión de Proxies
El sistema gestiona proxies mediante:
- Obtención desde servicios externos
- Validación automática
- Rotación inteligente
# proxy/gestion_proxy.py
TAMANIO_GRUPO_PROXY = 7
TIEMPO_EXPIRACION = 1200
ROTACION_AUTO = True
Almacenamiento
- JSON para integraciones
- CSV para análisis
- Bases de datos para almacenamiento prolongado
Casos de Uso
- Monitoreo de competencia en redes
- Identificación de tendencias de contenido
- Recopilación académica de datos
Optimizaciones
# Intervalos aleatorios
import random
import time
def pausa_aleatoria():
time.sleep(random.uniform(1.2, 4.8))
Estructura del Proyecto
MediaCrawler/
├── plataformas/
├── almacenamiento/
├── proxy/
└── utilidades/
Consideraciones
- Respetar políticas de plataformas
- Evitar recolección masiva agresiva
- Proteger datos sensiblse