小红书笔记的评论区,藏着用户最真实的需求和吐槽。手动翻评论,一百条就要滑半天,还容易漏掉关键信息。用影刀RPA把评论抓下来,再用Pandas做关键词统计和情感分析,选品和内容优化就有了数据支撑。
评论采集比笔记采集更麻烦,因为评论区是懒加载的,不滚动到底部,评论不会全部加载出来。
这篇把小红书评论采集的完整流程拆开讲,从滚动加载、评论提取到关键词分析,每个环节都配了可直接参考的代码和XPath。
评论采集的滚动加载逻辑与XPath写法
小红书笔记详情页的评论区默认只显示前几条,必须滚动到评论区底部才会加载更多。
操作步骤:
- 影刀RPA打开笔记详情页,先定位到评论区。
- 用“循环执行”指令,次数设20次。
- 循环体内拖入“滚动页面”指令,滚动到页面底部。
- 加“等待指令”,随机等待2000-4000毫秒。
- 判断“没有更多评论”文本是否出现,出现则跳出循环。
# 捕获元素:小红书评论区的每一条评论
//div[contains(@class,'comment-item')]
# 捕获元素:评论用户名
//div[contains(@class,'comment-item')]//span[contains(@class,'name')]

# 捕获元素:评论内容
//div[contains(@class,'comment-item')]//div[contains(@class,'content')]
# 捕获元素:评论点赞数
//div[contains(@class,'comment-item')]//span[contains(@class,'like-count')]
# 捕获元素:没有更多评论提示

//*[contains(text(),'没有更多评论')]
这里很容易踩坑,注意看:小红书的评论class带哈希值,用 contains(@class,'comment') 模糊匹配。如果页面改版,优先检查class前缀是否变化。
评论数据提取与写入表格的精确操作
滚动加载完成后,用“获取相似元素列表”一次性拿到所有评论卡片。
操作路径:右侧指令面板搜索“获取相似元素列表” → 点击“捕获元素” → 点击第一条评论 → 影刀RPA自动识别相似元素。
然后拖入“循环相似元素”指令,遍历每条评论。
# 影刀RPA中循环提取评论的步骤
# 1. 循环相似元素(评论列表)
# 2. 在当前元素内,用“获取元素文本”提取用户名
# 3. 提取评论内容
# 4. 提取点赞数
# 5. 用“写入行数据到表格”追加到数据表格变量
# 行数据格式:[用户名, 评论内容, 点赞数, 笔记标题, 采集时间]
推荐一个方法,实测好用:点赞数可能显示“1.2万”或“999”,用Pandas统一清洗成数字。不要直接用文本。
版本差异提醒:影刀RPA社区版每天30分钟运行时长,调试评论采集够用。创业版无限制,适合批量采集多篇笔记的评论。魔法指令(3.0新特性)可对话式生成XPath,但评论结构复杂,手动写更稳。
Pandas关键词统计与情感分析实战
评论写入Excel后,用“执行Python代码”指令调Pandas和jieba做关键词分析。
import pandas as pd
import jieba
from collections import Counter

# 读取影刀RPA传入的数据表格变量
df = pd.DataFrame(dt_评论数据)
# 1. 清洗点赞数
def clean_like(x):
if pd.isna(x):
return 0
x = str(x).strip()
if '万' in x:
return int(float(x.replace('万', '')) * 10000)
return int(x) if x.isdigit() else 0
df['点赞数'] = df['点赞数'].apply(clean_like)
# 2. 关键词统计(去掉停用词)
stop_words = set(['的', '了', '是', '我', '就', '都', '和', '也', '很', '在'])
all_words = []
for text in df['评论内容'].dropna():
words = jieba.cut(text)
for w in words:
if len(w) > 1 and w not in stop_words:
all_words.append(w)
top_words = Counter(all_words).most_common(20)
print("高频关键词:", top_words)
# 3. 简单情感分析(基于关键词)
positive_words = ['好', '喜欢', '推荐', '不错', '棒', '爱']
negative_words = ['差', '难用', '后悔', '踩雷', '失望']
def sentiment(text):
if pd.isna(text):
return '中性'
pos = sum(1 for w in positive_words if w in text)
neg = sum(1 for w in negative_words if w in text)
if pos > neg:
return '正面'
elif neg > pos:
return '负面'
return '中性'
df['情感倾向'] = df['评论内容'].apply(sentiment)
# 4. 汇总统计
sentiment_summary = df['情感倾向'].value_counts()
print("情感分布:", sentiment_summary)
容易踩的坑:jieba需要额外安装。在影刀RPA中先用“安装Python库”指令安装 jieba。社区版每天30分钟运行时长,分析大量评论时注意时间。
评论采集的防限流与多笔记批量策略
小红书对频繁滚动和请求有限制。同一IP短时间采太多,会触发验证码或返回空数据。
防限流三个措施:
- 每篇笔记采集间隔随机等待30-60秒。
- 每采集5篇笔记,暂停2-3分钟。
- 多账号轮换,每个账号用不同用户数据目录。
多笔记批量采集流程:
- 从Excel读取笔记URL列表。
- 循环每条URL,打开详情页。
- 滚动加载评论。
- 提取评论写入表格。
- 关闭当前标签页,加随机等待。
- 循环结束,统一导出Excel。
# 影刀RPA中多笔记循环的等待策略
import random
import time
# 每篇笔记后等待30-60秒
wait_seconds = random.randint(30, 60)
time.sleep(wait_seconds)
这里很容易踩坑,注意看:小红书评论区可能有“展开更多回复”按钮。如果需要采集二级评论,先点击展开再提取。XPath://button[contains(text(),'展开更多')]。
常见问题与易错速查
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 评论只加载了几条 | 没滚动到底 | 增加滚动次数 |
| 评论内容为空 | class变了 | 用contains模糊匹配 |
| 点赞数带“万” | 未清洗 | 用Pandas转换 |
| 频繁跳验证码 | 频率太高 | 加随机等待,换账号 |
| 社区版超时 | 30分钟限制 | 分批次或升级创业版 |
特别提醒:评论采集涉及用户隐私,采集结果仅用于内部分析,不要公开传播。遵守平台规则。
推荐资源
- 影刀RPA官方文档:搜索“获取相似元素列表”和“执行Python代码”
- 影刀学院B站账号:有小红书评论采集实战视频
- jieba分词文档:github.com/fxsjy/jieba
一个实测好用的习惯:先用一篇笔记测试评论采集流程,确认能拿到数据后再批量跑。省掉批量跑一半发现XPath失效的麻烦。
#影刀RPA #RPA自动化 #小红书 #评论采集 #情感分析 #关键词统计
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
