MCPcopy
hub / github.com/NanmiCoder/MediaCrawler

github.com/NanmiCoder/MediaCrawler @main sqlite

repository ↗ · DeepWiki ↗
1,394 symbols 5,333 edges 210 files 722 documented · 52%
README

🔥 MediaCrawler - Rastreador de Plataformas de Redes Sociales 🕷️

🤝 Agradecimientos Especiales a Nuestro Patrocinador Platino

BrowserAct

BrowserAct es una herramienta de automatización de navegador diseñada para Agentes de IA, con manejo de intercepciones anti-bot, transferencia humana cuando las tareas se atascan, aislamiento paralelo de múltiples tareas y gestión independiente de múltiples cuentas, ayudando a los Agentes a completar tareas web reales de manera más estable.


NanmiCoder%2FMediaCrawler | Trendshift

GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests License 中文 English Español

Descargo de responsabilidad:

Por favor, utilice este repositorio únicamente con fines de aprendizaje ⚠️⚠️⚠️⚠️, Casos ilegales de web scraping

Todo el contenido de este repositorio es únicamente para fines de aprendizaje y referencia, y está prohibido el uso comercial. Ninguna persona u organización puede usar el contenido de este repositorio para propósitos ilegales o infringir los derechos e intereses legítimos de otros. La tecnología de web scraping involucrada en este repositorio es solo para aprendizaje e investigación, y no puede ser utilizada para rastreo a gran escala de otras plataformas u otras actividades ilegales. Este repositorio no asume ninguna responsabilidad legal por cualquier responsabilidad legal que surja del uso del contenido de este repositorio. Al usar el contenido de este repositorio, usted acepta todos los términos y condiciones de este descargo de responsabilidad.

Haga clic para ver un descargo de responsabilidad más detallado. Haga clic para saltar

📖 Introducción del Proyecto

Una poderosa herramienta de recolección de datos de redes sociales multiplataforma que soporta el rastreo de información pública de plataformas principales incluyendo Xiaohongshu, Douyin, Kuaishou, Bilibili, Weibo, Tieba, Zhihu, y más.

🔧 Principios Técnicos

  • Tecnología Central: Basado en el framework de automatización de navegador Playwright para login y mantenimiento del estado de login
  • No Requiere Ingeniería Inversa de JS: Utiliza el entorno de contexto del navegador con estado de login preservado para obtener parámetros de firma a través de expresiones JS
  • Ventajas: No necesita hacer ingeniería inversa de algoritmos de encriptación complejos, reduciendo significativamente la barrera técnica

✨ Características

Plataforma Búsqueda por Palabras Clave Rastreo de ID de Publicación Específica Comentarios Secundarios Página de Inicio de Creador Específico Caché de Estado de Login Pool de Proxy IP Generar Nube de Palabras de Comentarios
Xiaohongshu
Douyin
Kuaishou
Bilibili
Weibo
Tieba
Zhihu

¡Lanzamiento Mayor de MediaCrawlerPro! ¡El código abierto no es fácil, bienvenido a suscribirse y apoyar!

Enfócate en aprender el diseño arquitectónico de proyectos maduros, no solo tecnología de rastreo. ¡La filosofía de diseño de código de la versión Pro también vale la pena estudiar en profundidad!

MediaCrawlerPro ventajas principales sobre la versión de código abierto:

🎯 Actualizaciones de Características Principales

  • Agente de Deconstrucción de Contenido (Nueva función)
  • Funcionalidad de reanudación de rastreo (Característica clave)
  • Soporte de múltiples cuentas + pool de proxy IP (Característica clave)
  • Eliminar dependencia de Playwright, más fácil de usar
  • Soporte completo de entorno Linux

🏗️ Optimización de Diseño Arquitectónico

  • Optimización de refactorización de código, más legible y mantenible (lógica de firma JS desacoplada)
  • Calidad de código de nivel empresarial, adecuado para construir proyectos de rastreo a gran escala
  • Diseño arquitectónico perfecto, alta escalabilidad, mayor valor de aprendizaje del código fuente

🎁 Características Adicionales

  • Aplicación de escritorio descargadora de videos de redes sociales (adecuada para aprender desarrollo full-stack)
  • Recomendaciones de feed de página de inicio multiplataforma (HomeFeed)
  • [ ] Agente AI basado en análisis de comentarios está en desarrollo 🚀🚀

Haga clic para ver: Página de Inicio del Proyecto MediaCrawlerPro para más información

🚀 Inicio Rápido

💡 ¡El código abierto no es fácil, si este proyecto te ayuda, por favor da una ⭐ Estrella para apoyar!

📋 Prerrequisitos

🚀 Instalación de uv (Recomendado)

Antes de proceder con los siguientes pasos, por favor asegúrese de que uv esté instalado en su computadora:

  • Guía de Instalación: Guía Oficial de Instalación de uv
  • Verificar Instalación: Ingrese el comando uv --version en la terminal. Si el número de versión se muestra normalmente, la instalación fue exitosa
  • Razón de Recomendación: uv es actualmente la herramienta de gestión de paquetes Python más poderosa, con velocidad rápida y resolución de dependencias precisa

🟢 Instalación de Node.js

El proyecto depende de Node.js, por favor descargue e instale desde el sitio web oficial:

  • Enlace de Descarga: https://nodejs.org/en/download/
  • Requisito de Versión: >= 16.0.0

📦 Instalación de Paquetes Python

# Entrar al directorio del proyecto
cd MediaCrawler

# Usar el comando uv sync para asegurar la consistencia de la versión de python y paquetes de dependencias relacionados
uv sync

🌐 Instalación de Controlador de Navegador

# Instalar controlador de navegador
uv run playwright install

💡 Consejo: MediaCrawler ahora soporta usar playwright para conectarse a su navegador Chrome local, resolviendo algunos problemas causados por Webdriver.

Actualmente, xhs y dy están disponibles usando el modo CDP para conectarse a navegadores locales. Si es necesario, verifique los elementos de configuración en config/base_config.py.

🚀 Ejecutar Programa Rastreador

# El proyecto no habilita el modo de rastreo de comentarios por defecto. Si necesita comentarios, por favor modifique la variable ENABLE_GET_COMMENTS en config/base_config.py
# Otras opciones soportadas también pueden verse en config/base_config.py con comentarios en chino

# Leer palabras clave del archivo de configuración para buscar publicaciones relacionadas y rastrear información de publicaciones y comentarios
uv run main.py --platform xhs --lt qrcode --type search

# Leer lista de ID de publicaciones específicas del archivo de configuración para obtener información e información de comentarios de publicaciones específicas
uv run main.py --platform xhs --lt qrcode --type detail

# Abrir la APP correspondiente para escanear código QR para login

# Para ejemplos de uso de rastreador de otras plataformas, ejecute el siguiente comando para ver
uv run main.py --help

Soporte WebUI

🖥️ Interfaz de Operación Visual WebUI

MediaCrawler proporciona una interfaz de operación visual basada en web, permitiéndole usar fácilmente las funciones del rastreador sin línea de comandos.

Desarrollo (recomendado)

Para el desarrollo, debe iniciar tanto el servicio API backend como el servidor de desarrollo Vite frontend:

# Terminal 1: iniciar servidor API (puerto predeterminado 8080)
uv run uvicorn api.main:app --port 8080 --reload

# Terminal 2: iniciar servidor de desarrollo frontend
cd webui
npm install
npm run dev        # se inicia en el puerto 5173 por defecto y redirige /api a 8080

Después de iniciar exitosamente, visite http://localhost:5173/ para abrir la interfaz WebUI.

En el primer inicio, se realiza una verificación de entorno (llama a /api/env/check), así que asegúrese de que el servicio backend esté en ejecución. Si la verificación falla, puede hacer clic en "Omitir verificación" para omitirla temporalmente.

Construir para Producción

Si desea que el servidor API sirva directamente los recursos estáticos de WebUI, construya el frontend primero:

cd webui
npm install
npm run build      # salida en api/webui/

Luego inicie solo el servidor API:

uv run uvicorn api.main:app --port 8080 --reload

Después de iniciar exitosamente, visite http://localhost:8080 para abrir la interfaz WebUI.

Características de WebUI

  • Configuración visual de parámetros del rastreador (plataforma, método de login, tipo de rastreo, etc.)
  • Vista en tiempo real del estado de ejecución del rastreador y logs
  • Vista previa y exportación de datos

Vista Previa de la Interfaz

Vista Previa de Interfaz WebUI

🔗 Usando gestión de entorno venv nativo de Python (No recomendado)

Crear y activar entorno virtual de Python

Si rastrea Douyin y Zhihu, necesita instalar el entorno nodejs con anticipación, versión mayor o igual a: 16

# Entrar al directorio raíz del proyecto
cd MediaCrawler

# Crear entorno virtual
# Mi versión de python es: 3.9.6, las librerías en requirements.txt están basadas en esta versión
# Si usa otras versiones de python, las librerías en requirements.txt pueden no ser compatibles, por favor resuelva por su cuenta
python -m venv venv

# macOS & Linux activar entorno virtual
source venv/bin/activate

# Windows activar entorno virtual
venv\Scripts\activate

Instalar librerías de dependencias

pip install -r requirements.txt

Instalar controlador de navegador playwright

playwright install

Ejecutar programa rastreador (entorno nativo)

# El proyecto no habilita el modo de rastreo de comentarios por defecto. Si necesita comentarios, por favor modifique la variable ENABLE_GET_COMMENTS en config/base_config.py
# Otras opciones soportadas también pueden verse en config/base_config.py con comentarios en chino

# Leer palabras clave del archivo de configuración para buscar publicaciones relacionadas y rastrear información de publicaciones y comentarios
python main.py --platform xhs --lt qrcode --type search

# Leer lista de ID de publicaciones específicas del archivo de configuración para obtener información e información de comentarios de publicaciones específicas
python main.py --platform xhs --lt qrcode --type detail

# Abrir la APP correspondiente para escanear código QR para login

# Para ejemplos de uso de rastreador de otras plataformas, ejecute el siguiente comando para ver
python main.py --help

💾 Almacenamiento de Datos

MediaCrawler soporta múltiples métodos de almacenamiento de datos, incluyendo CSV, JSON, JSONL, Excel, SQLite y bases de datos MySQL.

📖 Para instrucciones de uso detalladas, por favor vea: Guía de Almacenamiento de Datos

🚀 ¡Lanzamiento Mayor de MediaCrawlerPro 🚀! ¡Más características, mejor diseño arquitectónico!

💬 Grupos de Discusión

💰 Exhibición de Patrocinadores

<img width="500" src="do

Extension points exported contracts — how you extend this code

CrawlerConfig (Interface)
(no doc)
webui/src/types/crawler.ts
CrawlerStatus (Interface)
(no doc)
webui/src/types/crawler.ts
LogEntry (Interface)
(no doc)
webui/src/types/crawler.ts
DataFile (Interface)
(no doc)
webui/src/types/crawler.ts
Platform (Interface)
(no doc)
webui/src/types/crawler.ts

Core symbols most depended-on inside this repo

get
called by 421
cache/redis_cache.py
get
called by 154
media_platform/tieba/client.py
get
called by 132
media_platform/zhihu/client.py
Field
called by 90
webui/src/components/config/CrawlerConfigPanel.tsx
get
called by 60
media_platform/xhs/client.py
get
called by 45
media_platform/bilibili/client.py
get
called by 45
media_platform/weibo/client.py
get
called by 45
media_platform/douyin/client.py

Shape

Method 750
Function 383
Class 206
Interface 30
Route 25

Languages

Python91%
TypeScript9%

Modules by API surface

media_platform/tieba/help.py42 symbols
store/xhs/_store_impl.py40 symbols
store/bilibili/_store_impl.py35 symbols
store/weibo/_store_impl.py29 symbols
store/kuaishou/_store_impl.py29 symbols
store/zhihu/_store_impl.py28 symbols
store/tieba/_store_impl.py28 symbols
store/douyin/_store_impl.py27 symbols
media_platform/tieba/client.py25 symbols
media_platform/bilibili/client.py25 symbols
media_platform/zhihu/client.py23 symbols
media_platform/bilibili/core.py23 symbols

Dependencies from manifests, versioned

@radix-ui/react-accordion1.2.2 · 1×
@radix-ui/react-dialog1.1.4 · 1×
@radix-ui/react-label2.1.1 · 1×
@radix-ui/react-scroll-area1.2.2 · 1×
@radix-ui/react-slot1.1.1 · 1×
@tanstack/react-query5.62.7 · 1×
@types/react18.3.16 · 1×
@types/react-dom18.3.5 · 1×
@vitejs/plugin-react4.3.4 · 1×
autoprefixer10.4.20 · 1×

Datastores touched

(mongodb)Database · 1 repos
(mysql)Database · 1 repos

For agents

$ claude mcp add MediaCrawler \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact