xhs-comment-analyzer
Herramienta de análisis de comentarios de Xiaohongshu (XHS Comment Analyzer)
Herramienta automatizada de extracción y análisis de comentarios UGC de Xiaohongshu orientada a equipos de marketing de marca. Admite buscar notas por combinación de palabra de marca + palabra de categoría, extraer comentarios por lotes (incluyendo subcomentarios), análisis tridimensional de palabras clave / sentimiento / popularidad, y exportar informes en formato Excel+JSON. Se ejecuta como un MCP Server y puede ser llamado directamente por clientes de IA como TRAE / Claude / Cursor, también admite ejecución independiente mediante CLI.
Capacidades principales
Búsqueda automática de notas: busca por combinación de palabra de marca + palabra de categoría, carga automáticamente desplazándose, filtra inteligentemente contenido irrelevante
Extracción de comentarios por lotes: abre la página de detalles de cada nota una por una, extrae información completa de comentarios principales y subcomentarios, admite reanudación de pausa
Motor de análisis tridimensional: extracción de palabras clave con jieba+TF-IDF, clasificación de sentimiento mediante diccionario + reglas, puntuación de popularidad basada en interacciones × decaimiento temporal
Exportación de informes en doble formato: informe Excel de 5 hojas + datos JSON estructurados
Integración con flujo de trabajo de IA: el MCP Server expone 4 herramientas, admite impulso de todo el proceso mediante lenguaje natural
Related MCP server: Xiaohongshu (RedBook) MCP Server
Inicio rápido
Instalación
pip install -e .
playwright install chromiumEjecutar pruebas
python -m pytest tests/ -vUso CLI
# 首次使用:检查登录状态(会打开浏览器,手动完成登录)
python run.py login
# 搜索并抓取评论(使用预设配置)
python run.py search
# 抓取单篇笔记评论
python run.py single "https://www.xiaohongshu.com/search_result/xxx?xsec_token=yyy"
# 对已有 JSON 重新分析
python run.py analyze data/output/report.jsonConfiguración MCP
En la configuración MCP de TRAE / Claude / Cursor, añada:
{
"mcpServers": {
"xhs-comment-analyzer": {
"command": "python",
"args": ["-m", "src.mcp_server"],
"cwd": "/path/to/xhs-comment-analyzer-package"
}
}
}Una vez configurado, el cliente de IA puede llamar mediante lenguaje natural: "Ayúdame a buscar comentarios de electrodomésticos pequeños de Bear Electric y generar un informe de análisis".
Lista de herramientas MCP
Herramienta | Función |
| Buscar notas por lotes por palabra de marca + categoría, extraer comentarios, analizar y exportar |
| Extraer comentarios de una sola nota de Xiaohongshu y analizarlos |
| Reanalizar palabras clave / sentimiento / popularidad de un archivo JSON ya extraído |
| Verificar estado de inicio de sesión en Xiaohongshu |
Estructura del proyecto
xhs-comment-analyzer-package/
├── src/ # 源代码
│ ├── scraper/ # 抓取层
│ │ ├── browser.py # Playwright 浏览器管理 (登录态持久化、反检测)
│ │ ├── comment_scraper.py # 评论抓取核心 (搜索/单篇/批量/断点续抓)
│ │ └── models.py # 数据模型 (7 个 Pydantic 模型)
│ ├── analyzer/ # 分析层
│ │ ├── keywords.py # 关键词提取 (jieba + TF-IDF)
│ │ ├── sentiment.py # 情感分类 (词典 + 规则)
│ │ └── heat.py # 热度评分 (互动量 × 时效衰减)
│ ├── exporter/
│ │ └── excel_exporter.py # 导出 Excel (5 Sheet) + JSON
│ └── mcp_server.py # MCP Server (4 个工具)
├── tests/ # 单元测试 (38 个用例)
├── data/
│ ├── cookies/ # 登录 cookie 持久化
│ ├── dictionaries/ # 自定义词典
│ │ ├── domain_words.txt # 领域词典 (69 个小家电术语)
│ │ ├── stopwords.txt # 停用词表
│ │ ├── positive_words.txt # 正面情感词
│ │ ├── negative_words.txt # 负面情感词
│ │ ├── negation_words.txt # 否定词
│ │ └── degree_adverbs.txt # 程度副词 (词<TAB>权重)
│ └── output/ # 导出文件 (Excel/JSON)
├── docs/ # 产品文档
│ └── xhs-product-doc.html # 完整产品文档 (PRD/架构/工作流/算法/接口)
├── run.py # CLI 入口 (login/search/single/analyze)
├── conftest.py # pytest 配置
├── pyproject.toml # 依赖管理
├── .gitignore
└── README.mdFormato de salida
Informe Excel (5 hojas)
Hoja | Contenido |
Detalle de comentarios | Todos los comentarios ordenados por popularidad, incluye título de nota/URL/contenido/autor/hora/me gusta/respuestas/sentimiento/popularidad |
Resumen de análisis | Número de notas extraídas, total de comentarios, comentarios relacionados con el producto, distribución de sentimiento |
Top 10 palabras clave | Palabras clave de alta frecuencia y su proporción |
Top 10 comentarios populares | Los 10 comentarios con mayor puntuación de popularidad |
Resumen de notas | Me gusta, comentarios y puntuación total de popularidad de cada nota |
Informe JSON
Datos completos estructurados, que incluyen configuración de la tarea, resumen estadístico, lista de palabras clave, lista completa de comentarios y rutas de archivos, facilitando el consumo secundario por parte de programas.
Algoritmos principales
Extracción de palabras clave (jieba + TF-IDF)
Cada comentario se trata como un documento independiente. Después de la segmentación con jieba, se filtran palabras vacías y caracteres individuales, se calcula el peso TF-IDF (suavizado estilo sklearn), y se devuelven las 10 palabras clave principales junto con su proporción. Un diccionario integrado de electrodomésticos pequeños (69 términos) evita que las palabras compuestas se dividan.
Análisis de sentimiento (diccionario + reglas)
Basado en diccionarios de sentimiento positivo/negativo + inversión de negación (ventana de 2 palabras anteriores, admite doble negación) + ponderación de adverbios de grado ("muy" ×1.5, "especialmente" ×2.0, etc.), normalizado al intervalo [-1, 1], mapeado a etiquetas positivo/negativo/neutral.
Puntuación de popularidad (interacciones × decaimiento temporal)
base_score = like_count × 2 + reply_count × 3 + sub_comment_count × 1
time_decay = 0.95 ^ days_ago
heat_score = (base_score × time_decay / max_raw_heat) × 100El peso de respuestas es el más alto (3), porque las respuestas indican discusión profunda; le siguen los me gusta (2); los subcomentarios tienen el peso más bajo (1). Decae un 5% cada día, asegurando que los comentarios recientes con alta interacción aparezcan primero.
Diseño de seguridad
No elude la verificación: la herramienta no completa nombre de usuario/contraseña, no simula escaneo de códigos, no maneja códigos de verificación automáticamente
Intervención manual prioritaria: todas las operaciones de inicio de sesión y verificación de códigos las realiza el usuario en una ventana visible del navegador
Navegador visible: siempre se usa headless=False, el usuario puede ver e intervenir en cualquier momento
Alerta de riesgo: se detiene automáticamente después de encontrar un código de verificación 3 veces consecutivas, evitando activar controles de riesgo
Reanudación de pausa: admite reanudar después de interrupción, el progreso se guarda en
progress.jsonPersistencia de cookies: el estado de inicio de sesión se guarda en
xhs_cookies.json, evitando inicios de sesión frecuentes
Stack tecnológico
Dependencia | Uso |
Python 3.12+ | Entorno de ejecución |
Playwright | Automatización del navegador |
MCP SDK | Protocolo MCP Server |
jieba | Segmentación de chino |
openpyxl | Exportación a Excel |
Pydantic | Validación de modelos de datos |
Documentación del producto
La documentación completa e interactiva del producto se encuentra en docs/xhs-product-doc.html, ábrala con un navegador. La documentación contiene 9 capítulos:
Resumen del producto
Documento de requisitos del producto (PRD)
Arquitectura del sistema
Flujo de trabajo
Algoritmos principales
Seguridad y antidetección
Modelo de datos
Interfaz MCP
Guía de uso
Datos de ejemplo
El directorio data/output/ contiene una salida de ejemplo de una ejecución real (categoría de electrodomésticos pequeños de Bear Electric), que puede servir como referencia:
Número de notas: 8 (después de filtrar)
Número de comentarios: 58 (incluyendo subcomentarios)
Distribución de sentimiento: positivo 22.4%, negativo 10.3%, neutral 67.2%
Palabras clave: Bear, gusta, vaporera
Configuración y variables de entorno
La herramienta no requiere ninguna variable de entorno ni clave para funcionar de forma predeterminada; todo el inicio de sesión se realiza manualmente en un navegador visible, las cookies se persisten en
data/cookies/.Si en el futuro se integran servicios externos (proxy, clave API, etc.), escriba la configuración en el archivo
.env(ignorado por.gitignore) y consulte la plantilla.env.example. No envíe claves reales.Los siguientes directorios/archivos están excluidos por
.gitignorey no entrarán en el repositorio:data/cookies/*.json(estado de inicio de sesión),data/output/*(productos de extracción),data/progress.json,data/error.log,.env, etc.
Descripción de directorios y archivos
Ruta | ¿En repositorio? | Descripción |
| ✅ | Código fuente completo |
| ✅ | Pruebas unitarias |
| ✅ | Diccionarios de sentimiento/segmentación (texto) |
| ❌ (solo | Cookies de inicio de sesión, sensible |
| ❌ (solo | Productos de extracción y análisis |
| ✅ | Documentación del producto |
| ❌ | Configuración sensible |
Licencia
Este proyecto se publica bajo la licencia MIT. Consulte el archivo LICENSE (si no se proporciona, puede contactar al autor para obtenerlo).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables users to search and retrieve content from Xiaohongshu (Red Book) platform with smart search capabilities and rich data extraction including note content, author information, and images.19327MIT
- Flicense-qualityDmaintenanceEnables automated interaction with Xiaohongshu (Little Red Book) platform including searching posts, retrieving content and comments, and posting AI-generated comments with persistent login support.444
- Flicense-qualityCmaintenanceEnables automated searching and commenting on Xiaohongshu with AI-generated comments via MCP clients like Claude, supporting login persistence, note analysis, and four comment types.
- Alicense-qualityDmaintenanceEnables automated interaction and data scraping for Xiaohongshu (RedNote), including posting, liking, commenting, following, and retrieving user and note data.5MIT
Related MCP Connectors
搜索笔记、浏览首页推荐、查看笔记内容与评论,并发表你的评论。直接在工作流中与小红书内容互动,高效跟进话题。
Social media analytics, post insights, and competitor benchmarking for AI agents.
Scrape customer comments and reviews from Reddit, YouTube, Amazon, TikTok, and 25+ platforms.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nideaon/xhs-comment-analyzer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server