Banner Top
小红书评论爬虫 — 社交媒体数据采集与 AI 分析系统

小红书评论爬虫 — 社交媒体数据采集与 AI 分析系统

Python 爬虫 AI 数据分析 Playwright

发布于: 2026-06-02

小红书评论爬虫 — 社交媒体数据采集与 AI 分析系统

GitHubdr4g00n/scan-bot-alarm/xhs-crawler

技术栈:Python 3.10+ / Playwright / httpx / SQLite / Claude API


项目概述

这是一个面向小红书的评论数据采集与分析系统。不同于市面上通用的爬虫工具,本项目聚焦于评论内容的深度分析:不仅抓取文字,还通过 AI 进行情感分析、主题提取和关键词挖掘,将原始评论转化为可操作的洞察。

项目采用双模式爬取策略(API + 浏览器模拟),配合多层反检测机制,在合规采集的同时保证数据完整性。


核心功能

1. 双模式爬取

模式 适用场景 特点
API 模式 大规模批量采集 速度快,需有效 Cookie
浏览器模式 反爬严格的内容 模拟真实用户,稳定性高

两种模式共享同一套数据解析逻辑,采集结果格式完全一致。当 API 受限时,自动回退到浏览器模式。

2. 反检测机制

浏览器指纹伪装

  • 模拟 iPhone 移动设备(User-Agent + Viewport)
  • 禁用自动化控制特征(--disable-blink-features=AutomationControlled

签名算法

  • x-t:毫秒级时间戳(13位)
  • x-s:HMAC-SHA512 签名,基于请求路径+参数+Cookie
  • x-s-common:MD5 设备指纹签名

行为模拟

  • 随机滚动操作
  • 请求间隔 3-5 秒(可配置 CRAWL_DELAY
  • 模拟真实用户浏览模式

3. AI 深度分析

采集的评论数据自动送入 AI 处理流程:

# 1. 分批处理(默认 50 条/批)
batches = create_batches(comments, batch_size=50)

# 2. 格式化数据(符合 API 接口规范)
formatted_data = formatter.format_batch(batches)

# 3. 发送到 AI 服务
ai_result = await client.send_batch(formatted_data)

# 4. 保存分析结果(SQLite + JSON)
result_handler.process_result(ai_result)

AI 分析维度:
- 情感分析:正面 / 负面 / 中性比例
- 主题提取:评论涉及的主要话题
- 关键词挖掘:高频关键词和关联词
- 用户画像:评论者的地域、活跃时间分布

4. 数据存储

  • JSON 文件:原始评论数据,便于查看和分享
  • SQLite 数据库:AI 分析结果,支持 SQL 查询
  • 结构化日志:loguru 记录完整操作日志

技术架构

┌─────────────────────────────────────────────┐
│           小红书平台                         │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐   │
│  │ 笔记页面 │  │ 评论 API │  │ 反爬系统 │   │
│  └────┬────┘  └────┬────┘  └────┬────┘   │
└───────┼────────────┼────────────┼────────┘
        │            │            │
        └────────────┼────────────┘
                     ▼
┌─────────────────────────────────────────────┐
│           爬虫引擎                           │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐   │
│  │ Spider  │  │ Signer  │  │ URL Parser│  │
│  │(API/浏览器)│  │(签名生成) │  │(链接解析) │  │
│  └────┬────┘  └─────────┘  └─────────┘   │
└───────┼────────────────────────────────────┘
        │
        ▼
┌─────────────────────────────────────────────┐
│           AI 处理层                          │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐   │
│  │Formatter│  │ Service │  │ Result  │   │
│  │(数据清洗) │  │ Client  │  │ Handler │   │
│  └─────────┘  └─────────┘  └─────────┘   │
└───────┼────────────────────────────────────┘
        │
        ▼
┌─────────────────────────────────────────────┐
│           存储层                             │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐   │
│  │  JSON   │  │ SQLite  │  │  Logs   │   │
│  │  Files  │  │   DB    │  │         │   │
│  └─────────┘  └─────────┘  └─────────┘   │
└─────────────────────────────────────────────┘

关键技术栈

技术 版本 用途
Python ≥3.10 开发语言
Playwright ≥1.40 浏览器自动化(Chromium)
httpx ≥2.31 异步 HTTP 请求
requests ≥2.31 同步 HTTP 请求
SQLAlchemy ≥2.0 ORM 数据库操作
Pydantic ≥2.5 数据验证
loguru ≥0.7 结构化日志
tenacity ≥8.2 重试机制

数据格式

原始评论数据

{
  "user_name": "国富民强",
  "content": "有三百万在国内生活不香吗",
  "create_time": "5天前",
  "ip_location": "浙江",
  "like_count": 6,
  "sub_comment_count": 1
}

AI 分析请求格式

{
  "batch_id": "batch_xxx_20251216",
  "source": "xhs_crawler_v1.0",
  "note_info": {
    "note_id": "...",
    "note_title": "...",
    "total_comments": 50
  },
  "messages": [
    {
      "message_id": "comment_001",
      "role": "user",
      "content": "评论内容",
      "metadata": {
        "user_info": {"user_id": "...", "user_name": "..."},
        "interaction": {"like_count": 10, "reply_count": 3},
        "location": {"country": "中国", "city": null}
      }
    }
  ]
}

快速开始

git clone https://github.com/dr4g00n/scan-bot-alarm
cd xhs-crawler

# 创建虚拟环境
python -m venv xhs-crawler-env
source xhs-crawler-env/bin/activate

# 安装依赖
pip install -r requirements.txt
playwright install chromium

# 配置环境变量
cp .env.example .env
# 编辑 .env 填入 XHS_COOKIE(a1=xxx; web_session=xxx;)

# 运行基础爬虫
python run_crawler.py

# 运行爬虫 + AI 分析
python run_with_ai.py

# 运行可行性测试
python test_crawler.py

应用场景

场景 A:品牌舆情监控

  • 监控品牌相关笔记的评论情感倾向
  • 及时发现负面舆情,快速响应

场景 B:竞品分析

  • 采集竞品笔记下的用户反馈
  • 分析用户痛点和需求,指导产品优化

场景 C:市场调研

  • 特定话题下的用户讨论热点
  • 地域分布、人群特征分析

场景 D:内容创作辅助

  • 分析高互动笔记的评论特征
  • 挖掘用户关注的话题和表达方式

项目状态与限制

当前状态
- 测试通过率:80%(4/5项)
- AI 服务集成:已成功
- 浏览器模式:可用,需有效 Cookie

已知限制
1. 需要有效的登录 Cookie 才能访问内容
2. 小红书安全策略持续更新,签名算法需维护
3. 建议用于小规模数据采集,不建议大规模商业爬取


项目意义

xhs-crawler 展示了数据采集 + AI 分析的完整 pipeline:从原始网页到结构化洞察,全程自动化。这不仅是一个爬虫工具,更是一个"社交媒体情报系统"的雏形——让机器帮你"读"懂互联网上的声音。

结合 Agora AgentHub 的框架,未来的演进方向是:让 AI Agent 自主决定采集什么、如何分析、何时汇报——从被动工具进化为主动情报员。

Banner Bottom
客服 联系我