Skip to main content
Glama
nideaon

xhs-comment-analyzer

by nideaon

샤오홍슈 댓글 분석 도구 (XHS Comment Analyzer)

브랜드 마케팅 팀을 위한 샤오홍슈 UGC 댓글 자동 수집 및 분석 도구입니다. 브랜드 키워드 + 카테고리 키워드로 노트를 검색하고, 댓글(하위 댓글 포함)을 일괄 추출하며, 키워드/감성/인기도 3차원 분석을 수행하고, Excel+JSON 이중 형식으로 보고서를 내보냅니다. MCP Server 형태로 실행되어 TRAE / Claude / Cursor 등 AI 클라이언트에서 직접 호출할 수 있으며, CLI 독립 실행도 지원합니다.

핵심 기능

  • 자동 노트 검색: 브랜드 키워드+카테고리 키워드 조합으로 검색, 자동 스크롤 로딩, 관련 없는 내용 스마트 필터링

  • 일괄 댓글 수집: 노트 상세 페이지를 하나씩 열어 부모 댓글과 하위 댓글의 전체 정보를 추출, 중단 지점부터 이어서 수집 지원

  • 3차원 분석 엔진: jieba+TF-IDF 키워드 추출, 감성 사전+규칙 감성 분류, 상호작용량×시간 감쇠 인기도 점수

  • 이중 형식 보고서 내보내기: 5-Sheet Excel 보고서 + 구조화된 JSON 데이터

  • AI 워크플로우 통합: MCP Server가 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 설정

TRAE / Claude / Cursor의 MCP 설정에 다음을 추가:

{
    "mcpServers": {
        "xhs-comment-analyzer": {
            "command": "python",
            "args": ["-m", "src.mcp_server"],
            "cwd": "/path/to/xhs-comment-analyzer-package"
        }
    }
}

설정이 완료되면 AI 클라이언트가 자연어로 호출 가능: "샤오슝 전기기기 소형가전의 댓글을 검색하고 분석 보고서를 생성해줘."

MCP 도구 목록

도구

기능

run_search_task

브랜드 키워드+카테고리 키워드로 노트 일괄 검색, 댓글 수집, 분석 및 내보내기

scrape_single_note

단일 샤오홍슈 노트의 댓글 수집 및 분석

analyze_comments

이미 수집된 JSON 파일에 대해 키워드/감성/인기도 재분석

check_login_status

샤오홍슈 로그인 상태 확인

프로젝트 구조

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개 Sheet)

Sheet

내용

댓글 상세

전체 댓글을 인기도순으로 정렬, 노트 제목/URL/댓글 내용/작성자/시간/좋아요/답글/감성/인기도 포함

분석 요약

수집 노트 수, 총 댓글 수, 제품 관련 댓글, 감성 분포 통계

키워드 Top10

고빈도 키워드 및 비율

인기 댓글 Top10

인기도 점수가 가장 높은 10개 댓글

노트 요약

각 노트의 좋아요 수, 댓글 수, 인기도 총점

JSON 보고서

구조화된 전체 데이터로, task 설정, summary 통계, keywords 목록, comments 전체 목록 및 파일 경로를 포함하여 프로그램에서 2차 소비하기 용이합니다.

핵심 알고리즘

키워드 추출 (jieba + TF-IDF)

각 댓글을 독립 문서로 간주, jieba로 형태소 분석 후 불용어 및 단일 문자 단어를 필터링하고 TF-IDF 가중치(sklearn 스타일 평활화)를 계산하여 Top 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에 저장.

  • 쿠키 지속: 로그인 상태를 xhs_cookies.json에 저장하여 빈번한 로그인 방지.

기술 스택

의존성

용도

Python 3.12+

런타임

Playwright

브라우저 자동화

MCP SDK

MCP Server 프로토콜

jieba

중국어 형태소 분석

openpyxl

Excel 내보내기

Pydantic

데이터 모델 검증

제품 문서

전체 대화형 제품 문서는 docs/xhs-product-doc.html에 있으며, 브라우저로 열어서 확인할 수 있습니다. 문서는 9개 장으로 구성:

  1. 제품 개요

  2. 제품 요구 사항 문서 (PRD)

  3. 시스템 아키텍처

  4. 워크플로우

  5. 핵심 알고리즘

  6. 보안 및 안티 디텍션

  7. 데이터 모델

  8. MCP 인터페이스

  9. 사용 가이드

예시 데이터

data/output/ 디렉토리에 실제 실행 예시 출력(샤오슝 전기기기 소형가전 카테고리)이 포함되어 있으며, 참고용으로 사용 가능:

  • 노트 수: 8편 (필터링 후)

  • 댓글 수: 58개 (하위 댓글 포함)

  • 감성 분포: 긍정 22.4%, 부정 10.3%, 중립 67.2%

  • 키워드: 샤오슝, 좋아, 찜기

설정 및 환경 변수

  • 도구는 기본적으로 어떠한 환경 변수나 API 키도 필요하지 않음; 모든 로그인 상태는 보이는 브라우저 방식으로 수동 완료, 쿠키는 data/cookies/에 지속 저장.

  • 향후 외부 서비스(프록시, API Key 등)를 연동할 경우 .env 파일(.gitignore에 의해 무시됨)에 설정을 작성하고 .env.example 템플릿을 참고하며, 실제 키를 커밋하지 마십시오.

  • 다음 디렉토리/파일은 .gitignore에 의해 제외되어 버전 관리에 포함되지 않습니다: data/cookies/*.json(로그인 상태), data/output/*(수집 산출물), data/progress.json, data/error.log, .env 등.

디렉토리 및 파일 설명

경로

저장 여부

설명

src/

✅

모든 소스 코드

tests/

✅

단위 테스트

data/dictionaries/

✅

감성/형태소 분석 사전 (텍스트)

data/cookies/

❌ (.gitkeep만)

로그인 쿠키, 민감

data/output/

❌ (.gitkeep만)

수집 및 분석 산출물

docs/

✅

제품 문서

.env / *.json 키

❌

민감 설정

라이선스

이 프로젝트는 MIT 라이선스로 오픈소스입니다. 자세한 내용은 LICENSE 파일을 참조하세요 (제공되지 않은 경우 저자에게 문의하여 확인 가능).

Available Tools

4 tools
analyze_commentsA

对已抓取的评论JSON文件重新进行关键词/情感/热度分析。

适用于需要用不同参数重新分析已有数据的场景。

Args: file_path: 已抓取的评论JSON文件路径

Returns: JSON 格式的分析结果

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden. It states the tool reads a JSON file and returns JSON analysis results, implying it is read-only and does not modify the original file. However, it does not disclose any potential side effects, required permissions, or error handling (e.g., missing file). The behavioral traits are partially transparent but lack depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—three short sentences that cover the tool's purpose, usage scenario, and parameter. There is no wasted text, and the structure is front-loaded with the core action. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description claims re-analysis with 'different parameters' but only exposes the file_path parameter, suggesting the analysis parameters are embedded in the file or tool configuration—this is unclear. The return type is mentioned but not detailed. Given the tool's simplicity, the description is moderately complete but leaves ambiguity about how analysis parameters are controlled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'file_path' has a description in the tool description ('path to scraped comment JSON file') that adds meaning beyond the schema's title 'File Path'. The schema coverage is 0%, so the description compensates well. It could be more specific (e.g., absolute path, supported formats), but it is sufficient for the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool re-analyzes scraped comment JSON files for keyword, sentiment, and popularity. It distinguishes from sibling tools (run_search_task, scrape_single_note, check_login_status) which are for different tasks. However, the exact nature of 'analysis' is not fully specified, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says it is suitable for re-analyzing existing data with different parameters. This provides clear context for when to use it. It does not mention exclusions or alternatives, but no sibling tool directly competes for this re-analysis purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_login_statusA

检查小红书登录状态,返回是否需要人工登录。

如果未登录,会自动打开浏览器窗口供用户手动登录。

Returns: JSON 格式的登录状态信息

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the key side effect of automatically opening a browser window for manual login if not logged in. It also mentions the return format. However, it does not clarify whether the tool blocks until login completes or times out, which is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three short sentences plus a return line. Every sentence serves a clear purpose: stating the function, describing the automatic behavior, and indicating the output format. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description adequately covers the core functionality and side effect. It could be improved by explicitly linking to sibling tools as a prerequisite, but overall it provides sufficient context for an agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so schema coverage is trivially 100%. The baseline is 4 per the rubric. The description does not add parameter-specific information but that is unnecessary. It provides context about the return value format, which is beneficial but not part of parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: checking Xiaohongshu login status and determining whether manual login is needed. It distinguishes itself from sibling tools like 'run_search_task' or 'scrape_single_note' by focusing on authentication rather than data operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used to verify login status before performing other tasks, and it explains the automated browser opening when not logged in. However, it does not explicitly state when to use this tool versus alternatives or mention prerequisites, leaving some implicit inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_search_taskA

搜索小红书笔记并批量抓取产品评论,返回分析结果和文件路径。

自动化流程: 搜索匹配笔记 → 逐篇抓取评论 → 关键词提取 + 情感分类 + 热度评分 → 导出 Excel + JSON

Args: brand_keywords: 品牌词列表 (必须匹配), 如 ["小熊"] category_keywords: 品类词列表 (必须匹配), 如 ["小家电"] product_keywords: 具体产品词列表 (可选), 如 ["酸奶机", "蒸蛋器"] max_notes: 最多抓取笔记数 (1-200), 默认20 max_comments_per_note: 每篇最多评论数 (1-1000), 默认100 sort_by: 排序方式, general=综合, popularity=热门, time=最新 min_likes: 笔记最低点赞门槛, 默认0 comment_filter: 是否过滤产品相关评论, 默认True

Returns: JSON 格式的分析结果摘要,包含统计信息、关键词、情感分布和导出文件路径

ParametersJSON Schema
NameRequiredDescriptionDefault
sort_byNogeneral
max_notesNo
min_likesNo
brand_keywordsYes
comment_filterNo
product_keywordsNo
category_keywordsYes
max_comments_per_noteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

描述公开了核心行为(搜索、抓取、分析、导出)和返回结果(JSON摘要和文件路径),但由于缺少annotation,其未说明是否需前置登录、文件写入的持久性/位置、速率限制或错误处理等副作用,整体透明度中等。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述以功能概述开头,后跟一行自动化流程,再按列表形式列出参数,结构清晰。但参数描述较详细,可适当精简,整体无冗余,信息密度合理。

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

描述覆盖了核心操作和所有参数,但缺少对错误处理、前提条件(如登录状态)、输出模式的具体字段说明以及文件路径的显式描述,导致在复杂场景下代理可能无法完全预知调用后的完整结果。

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

输入模式description coverage为0%,描述完全补偿了参数的语义缺失。为所有8个参数提供了清晰的定义、可选范围(如max_notes 1-200)、默认值和必填/可选标记,使代理能准确理解每个参数的作用。

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

描述以“搜索小红书笔记并批量抓取产品评论”开头,明确说明了动词+资源,随后列出了详细的自动化流程(搜索、抓取、分析、导出),直接与兄弟工具(scrape_single_note)形成对比,清晰标识了工具的整体范围和输出。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

描述详细说明了参数用法(必填和可选),隐含了端到端批量任务场景,但没有明确说明何时应避免使用此工具(例如,只需抓取单条笔记时使用scrape_single_note),缺少与兄弟工具的显式区分指南。

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrape_single_noteA

抓取单篇小红书笔记的评论并分析。

适用于已知笔记URL、只需抓取单篇评论的场景。

Args: note_url: 小红书笔记URL, 如 https://www.xiaohongshu.com/explore/xxxxx max_comments: 最多抓取评论数, 默认100

Returns: JSON 格式的评论列表和分析摘要

ParametersJSON Schema
NameRequiredDescriptionDefault
note_urlYes
max_commentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'scrape and analyze' but does not describe key behaviors such as network requirements, rate limiting, authentication (e.g., login status), error handling (e.g., invalid URL, note not found), or what 'analyze' specifically does. Without these details, the agent may misuse the tool or encounter unexpected failures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences defining the purpose and context, followed by structured Args and Returns sections. Every sentence serves a clear function, and there is no redundancy. The format is easy to parse and front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no annotations, has output schema), the description covers the essential purpose, parameters, and return format. However, it lacks important context about behavioral aspects (e.g., rate limits, login requirements, error scenarios) that would help an agent use it reliably. Completeness is adequate for straightforward use but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description is the sole source of parameter semantics. It provides meaning for both parameters: note_url is explained with an example URL, and max_comments is described as the maximum number of comments to scrape with a default of 100. This adds significant value beyond the schema's bare property titles. A slight deduction for not specifying format requirements (e.g., valid URL patterns) or edge-case behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: scraping and analyzing comments from a single Xiaohongshu note given a URL. It uses specific verbs ('抓取', '分析') and specifies the resource ('单篇小红书笔记的评论'). The sibling tools (run_search_task, analyze_comments, check_login_status) are distinct, and the description explicitly frames the use case as '已知笔记URL、只需抓取单篇评论的场景', which differentiates it from search or bulk tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context: when you have a known note URL and only need to scrape comments from that single note. However, it does not explicitly state when not to use this tool (e.g., for batch scraping or analysis without scraping), nor does it mention alternatives like run_search_task for searching notes or analyze_comments for analyzing already scraped data. The guidance is implied rather than overt.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedanalyze_comments
    • First observedcheck_login_status
    • First observedrun_search_task
    • First observedscrape_single_note

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct phase of the workflow: run_search_task for full pipeline, scrape_single_note for single note scraping, analyze_comments for re-analysis, check_login_status for authentication. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: run_search_task, scrape_single_note, analyze_comments, check_login_status. The verbs clearly indicate the action and nouns specify the target, making the naming predictable and clear.

Tool Count5/5

With 4 tools, the set is tightly scoped to the server's purpose of comment analysis. Each tool serves a necessary and distinct role without excess. The count is appropriate for the domain.

Completeness4/5

The set covers the full workflow: login check, scraping (batch and single), and analysis. A minor gap is the lack of a dedicated tool for exporting or managing results beyond what the pipeline returns, but agents can work around this via file paths.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    Enables 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.
    1
    62 npm
    29
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables automated interaction with Xiaohongshu (Little Red Book) platform including searching posts, retrieving content and comments, and posting AI-generated comments with persistent login support.
    454
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables automated interaction and data scraping for Xiaohongshu (RedNote), including posting, liking, commenting, following, and retrieving user and note data.
    5
    MIT