xhs-comment-analyzer
Инструмент анализа комментариев Xiaohongshu (XHS Comment Analyzer)
Инструмент для автоматического сбора и анализа UGC-комментариев на Xiaohongshu, ориентированный на команды бренд-маркетинга. Поддерживает поиск заметок по комбинации брендовых и категорийных слов, массовое извлечение комментариев (включая подкомментарии), трёхмерный анализ (ключевые слова / эмоции / популярность) и экспорт отчётов в форматах Excel+JSON. Работает в виде MCP-сервера, может вызываться напрямую AI-клиентами (TRAE / Claude / Cursor), а также поддерживает автономный запуск через CLI.
Ключевые возможности
Автоматический поиск заметок: поиск по комбинации брендовых и категорийных слов, автоматическая подгрузка прокруткой, интеллектуальная фильтрация нерелевантного контента.
Массовый сбор комментариев: последовательное открытие страниц деталей заметок, извлечение полной информации о родительских и дочерних комментариях, поддержка возобновления прерванного сбора.
Трёхмерный движок анализа: извлечение ключевых слов с помощью jieba+TF-IDF, классификация эмоций на основе словаря + правил, оценка популярности (взаимодействие × временное затухание).
Экспорт отчётов в двух форматах: отчёт Excel из 5 листов + структурированные данные JSON.
Интеграция с AI-рабочими процессами: MCP-сервер предоставляет 4 инструмента, поддерживает управление всем процессом на естественном языке.
Related MCP server: Xiaohongshu (RedBook) MCP Server
Быстрый старт
Установка
pip install -e .
playwright install chromiumЗапуск тестов
python -m pytest tests/ -vИспользование 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.jsonКонфигурация MCP
Добавьте в конфигурацию MCP в TRAE / Claude / Cursor:
{
"mcpServers": {
"xhs-comment-analyzer": {
"command": "python",
"args": ["-m", "src.mcp_server"],
"cwd": "/path/to/xhs-comment-analyzer-package"
}
}
}После настройки AI-клиент может вызывать на естественном языке: "Помоги найти комментарии о мелкой бытовой технике Bear Electric и сгенерировать аналитический отчёт".
Список инструментов MCP
Инструмент | Функция |
| Массовый поиск заметок по бренду+категории, сбор комментариев, анализ и экспорт |
| Сбор комментариев с одной заметки Xiaohongshu и их анализ |
| Повторный анализ ключевых слов/эмоций/популярности для уже собранного JSON-файла |
| Проверка статуса входа в Xiaohongshu |
Структура проекта
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.mdФормат вывода
Отчёт Excel (5 листов)
Лист | Содержание |
Детали комментариев | Все комментарии, отсортированные по популярности, включая заголовок заметки/URL/текст комментария/автора/время/лайки/ответы/эмоцию/популярность |
Аналитическое резюме | Количество собранных заметок, общее количество комментариев, комментарии, связанные с продуктом, статистика распределения эмоций |
Топ-10 ключевых слов | Высокочастотные ключевые слова и их доля |
Топ-10 горячих комментариев | 10 комментариев с наивысшим баллом популярности |
Сводка по заметкам | Количество лайков, комментариев и общий балл популярности для каждой заметки |
Отчёт JSON
Структурированные полные данные, включающие конфигурацию задачи, статистику сводки, список ключевых слов, полный список комментариев и пути к файлам, удобно для повторного использования программами.
Ключевые алгоритмы
Извлечение ключевых слов (jieba + TF-IDF)
Каждый комментарий рассматривается как отдельный документ. После сегментации jieba удаляются стоп-слова и односимвольные слова, вычисляется вес TF-IDF (сглаживание в стиле sklearn), возвращаются топ-10 ключевых слов и их доля. Встроенный словарь предметной области мелкой бытовой техники (69 терминов) предотвращает разбиение составных слов.
Анализ эмоций (словарь + правила)
Основан на словаре положительных/отрицательных эмоций + инверсия отрицаний (окно из 2 предшествующих слов, поддержка двойного отрицания) + взвешивание наречий степени ("очень" ×1.5, "особенно" ×2.0 и т.д.). Нормализация до диапазона [-1, 1], отображение на метки положительный/отрицательный/нейтральный.
Оценка популярности (взаимодействие × временное затухание)
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) × 100Вес количества ответов самый высокий (3), так как ответы указывают на глубокое обсуждение; лайки — средний (2); дочерние комментарии — самый низкий (1). Затухание 5% в день, чтобы недавние высокоактивные комментарии были в приоритете.
Безопасность
Не обходит проверки: инструмент не вводит логин/пароль, не имитирует сканирование QR-кода, не обрабатывает капчу автоматически.
Приоритет ручного вмешательства: все операции входа и капчи выполняются человеком в видимом окне браузера.
Видимый браузер: всегда используется headless=False, пользователь может видеть и вмешиваться в любой момент.
Предупреждение о рисках: автоматическая остановка после 3 последовательных появлений капчи для предотвращения срабатывания защиты.
Возобновление с точки останова: поддержка прерывания и восстановления, прогресс сохраняется в
progress.json.Персистентность Cookie: состояние входа сохраняется в
xhs_cookies.json, избегая частого повторного входа.
Технологический стек
Зависимость | Назначение |
Python 3.12+ | Среда выполнения |
Playwright | Автоматизация браузера |
MCP SDK | Протокол MCP-сервера |
jieba | Сегментация китайского текста |
openpyxl | Экспорт Excel |
Pydantic | Валидация моделей данных |
Документация продукта
Полная интерактивная документация находится в docs/xhs-product-doc.html, открывается в браузере. Включает 9 разделов:
Обзор продукта
Документ требований к продукту (PRD)
Архитектура системы
Рабочий процесс
Ключевые алгоритмы
Безопасность и антидетект
Модели данных
Интерфейс MCP
Руководство пользователя
Пример данных
Каталог data/output/ содержит пример вывода реального запуска (категория мелкой бытовой техники Bear Electric), который можно использовать как справочный:
Количество заметок: 8 (после фильтрации)
Количество комментариев: 58 (включая дочерние)
Распределение эмоций: положительные 22.4%, отрицательные 10.3%, нейтральные 67.2%
Ключевые слова: Bear, нравится, пароварка
Конфигурация и переменные окружения
Инструмент по умолчанию не требует никаких переменных окружения или ключей для работы; все состояния входа выполняются человеком в видимом браузере, Cookie сохраняются в
data/cookies/.Если в дальнейшем потребуется подключение внешних сервисов (прокси, API-ключи и т.д.), поместите конфигурацию в файл
.env(игнорируется.gitignore) и используйте шаблон.env.example. Никогда не загружайте реальные ключи.Следующие каталоги/файлы исключены из
.gitignoreи не попадут в репозиторий:data/cookies/*.json(состояние входа),data/output/*(результаты сбора),data/progress.json,data/error.log,.envи т.д.
Описание каталогов и файлов
Путь | В репозитории? | Описание |
| ✅ | Весь исходный код |
| ✅ | Модульные тесты |
| ✅ | Словари эмоций/сегментации (текстовые) |
| ❌ (только | Cookie входа, конфиденциально |
| ❌ (только | Результаты сбора и анализа |
| ✅ | Документация продукта |
| ❌ | Конфиденциальные настройки |
Лицензия
Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE (если он не предоставлен, свяжитесь с автором).
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