一、案例背景与采集目标
做课程作业、写选题报告、给社团活动找灵感,很多人第一反应是去小红书搜一搜。它的搜索结果页把用户发布的图文与视频笔记排成一列,每条带标题、作者、点赞数、收藏数和话题标签——这正是一份现成的选题参考表。
但这一案例的重点不是技术难度,而是合规。小红书有很强的登录墙,未登录只能看到前若干条,继续往下滚动就会弹登录;页面还由脚本实时渲染,静态源码里几乎是空的。所以这一案例要同时讲清两件事:怎么在公开可见的范围内取到元数据,以及哪些东西坚决不能碰。
1.1 这一篇用哪些真实站点
示范站点是小红书的搜索结果页,以关键词「考研」为例,地址 https://www.xiaohongshu.com/search_result?keyword=考研。它有强登录墙:不登录只能看到前若干条,继续滚动会要求登录;因此课堂练习只采前 1~2 页公开可见的笔记,不登录、不绕过任何验证。
延伸站点用于对照与兜底,都是公开榜单,出现登录墙时可以直接切换:微博热搜榜 https://s.weibo.com/top/summary、B 站全站排行榜 https://www.bilibili.com/v/popular/rank/all、知乎热榜 https://www.zhihu.com/hot,以及抖音热榜。
1.2 这个案例要拿到什么
- 搜索关键词与每条笔记在页面上的名次;
- 笔记标题、笔记类型(图文 / 视频)、作者昵称与作者 ID;
- 点赞、收藏、评论三个互动数字,并把「1.2万」这类写法换算成整数;
- 发布时间、话题标签、详情页链接与封面图链接;
- 标注加载批次与采集时刻,说明这条来自第几批加载。
1.3 先分清「能采」与「不能采」
这个站点的边界特别清楚,动手之前先在心里划好线:
| 数据类型 | 能否采集 | 说明 |
|---|---|---|
| 搜索页上公开可见的标题、作者昵称、点赞收藏评论数 | 可以 | 属于公开元数据,做选题分析够用了 |
| 笔记正文全文 | 不建议 | 受著作权保护,不整篇转载,最多做摘要与统计 |
| 需要登录后才能看到的部分 | 不可以 | 不登录、不绕过登录墙,采不到就停在公开的那一层 |
| 作者的手机号、微信号、私信内容 | 不可以 | 属于个人隐私,与本案例的分析目的无关 |
| 用户主页的关注与粉丝关系 | 不可以 | 属于个人信息,且与分析选题无关 |
1.4 这个案例真正的难点在哪
难点有三:第一,强登录墙,不登录只能看前若干条,滚动到底还会弹登录框;第二,页面靠脚本渲染,直接读源码拿不到笔记,要驱动浏览器打开后再读;第三,数字写成「1.2万」、时间写成「3 天前」,都要还原成规范值。三关过了,表才立得住。
1.5 这张表能回答什么问题
- 选题热度:某个关键词下,哪几条笔记点赞最高,大家在关心什么角度;
- 形式偏好:图文与视频各占多少,这个话题更适合做成哪一种;
- 话题聚集:高频出现的话题标签有哪些,能不能据此再拆出更细的子话题;
- 高产账号:同一个话题下,哪些作者反复出现。
目标站点与交付产物
下表是本篇用到的真实站点。绿色是课堂可稳定复现的示范站点;橙色是延伸站点,多数有登录墙或风控,课堂上只讲结构、原理与合规边界,不教绕过。
| 项目 | 内容 |
|---|---|
| 示范站点 | 小红书 · 搜索页(关键词:考研) https://www.xiaohongshu.com/search_result?keyword=考研 全课风控最严的站点之一:内容由 JavaScript 渲染、无限滚动加载,未登录只能看前若干条,继续下滚会弹登录墙;课堂只讲原理与前若干条的元数据采集 |
| 延伸站点 |
|
| 交付产物 |
|
| 难度 | ★★★ 高 |
| 合规提示 | 本节重点:只采公开可见的笔记元数据;严禁绕过登录与验证码;不采集作者隐私信息;笔记正文与图片受著作权保护,不整篇转载、不批量下载。遇登录墙立即停止并记录。 |
二、数据源与字段设计
数据源是小红书的搜索结果页。我们不做全站采集,只按一个关键词、只取公开可见的前 1~2 页笔记;页面由脚本渲染,所以要驱动浏览器打开后再读取。
2.1 站点信息表
| 站点全称 | 网址 | 页面形态与接口 | 规模与角色 |
|---|---|---|---|
| 小红书 · 搜索结果页(示范) | https://www.xiaohongshu.com/search_result?keyword=考研 | 强登录墙 + 无限滚动 + 脚本渲染;结果以图文或视频卡片排列 | 不登录只能看前若干条,继续滚动会弹登录;课堂只采前 1~2 页公开笔记 |
| 微博热搜榜(备选) | https://s.weibo.com/top/summary | 榜单页,字段为排名 / 话题 / 热度值 | 结构简单,小红书采不到时用作对照 |
| B 站全站排行榜(备选) | https://www.bilibili.com/v/popular/rank/all | 公开排行榜页,含标题 / 播放量 / 点赞 | 字段结构稳定,适合做兜底演示 |
| 知乎热榜(备选) | https://www.zhihu.com/hot | 页面及接口返回含标题与热度 | 有登录墙,只讲结构,不作为示范站点 |
2.2 完整字段表
| 字段名 | 字段含义 | 示例值 | 口径与备注 |
|---|---|---|---|
搜索关键词 | 本次搜索用的词 | 考研 | 一个文件一般只放一个词;多词时靠这一列区分 |
搜索页名次 | 结果在页面上的顺序 | 1 | 按页面从上到下编号,与榜单的排名含义相同 |
笔记标题 | 笔记的标题 | 考研英语一 90 分上岸经验分享 | 保持原文,不改写、不截断 |
笔记类型 | 图文还是视频 | 图文 | 视频类笔记另有时长,本案例不单独取 |
笔记 ID | 笔记的唯一编号 | 66f1a2b3000000001e01a2b3 | 取自详情页链接末尾,是稳定的主键 |
作者昵称 | 发布者昵称 | 示例用户A | 只作统计,不点名评价、不做身份关联 |
作者 ID | 发布者的账号编号 | 5f2a1b3c000000000101d2e3 | 做「同一位作者出现几次」的统计用 |
点赞原文 | 页面上的点赞写法 | 1.2万 | 保留原文,便于核对换算 |
点赞数 | 换算后的点赞数 | 12000 | 万 = 10000 |
收藏数 | 收藏数 | 8600 | 数字型;收藏高往往代表「值得留着用」 |
评论数 | 评论数 | 340 | 数字型;与点赞、收藏配合看互动 |
发布时间 | 笔记发布时间 | 2026-09-20 | 页面常显示「9-20」或「3 天前」,要统一 |
话题标签 | 笔记带的话题 | 考研;考研英语;上岸经验 | 多个话题用分号连接,去掉开头的井号 |
详情页链接 | 进笔记详情页的地址 | https://www.xiaohongshu.com/explore/66f1a2b3… | 只记录,不批量打开 |
封面图链接 | 封面图地址 | https://sns-img-qc.xhscdn.com/….jpg | 只记地址,不下载图片 |
加载批次 | 来自第几批滚动加载 | 第 1 批 | 无限滚动页面,用它区分先后顺序 |
采集时刻 | 本次采集的时刻 | 2026-10-08 15:00 | 记录采集时间与是否遇到登录提示 |
2.3 数字与时间的还原规则
搜索结果页上的数字和时间都经过了「美化」,要还原成规范值才好比较:
| 原始写法 | 含义 | 换算结果 | 说明 |
|---|---|---|---|
1.2万 | 点赞数的写法 | 12000 | 万 = 10000 |
10w+ | 部分平台的写法 | 100000 | w 就是万,等于 10000;小红书一般不用这种写法 |
3 天前 | 相对时间 | 2026-10-05 | 以采集当天为基准往前推,换算成具体日期 |
09-20 | 省略年份的日期 | 2026-09-20 | 按采集年份补全,跨年时要格外小心 |
AI 助手小贴士|「1.2万」「3 天前」这类写法最容易出错。让 AI 先只做还原、把原文和结果并排给你,你抽查几条确认规则对了,再往下走。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请只处理点赞数和发布时间这两列:保留原文,新增换算后的值,并逐行说明换算依据,我抽查几条后再继续。
课程思政|数据安全与法治素养 · 只采看得见的那一层
搜索页上不带登录就能看到的标题、作者昵称与互动数,属于公开信息;而账号背后的手机号、私信、社交关系,则涉及大量个人信息。做内容分析,就老老实实停在公开元数据这一层,不去深挖个人隐私——这既是法律要求,也是专业自觉。
三、零代码操作步骤
工具与技能|先看清三个角色,再动手
本篇全程零代码:你把要求说清楚,AI 去执行,你负责验收。三个角色分工如下——浏览器技能指的是腾讯开源的 BrowserSkill,它能让 AI 直接操作你电脑上真实的浏览器(可复用已经登录的状态),自己开一个独立窗口干活,不打扰你正在看的网页;遇到验证码、登录或确认弹窗,它会停下来交给你本人处理。
| 角色 | 负责什么 | 在本案例里具体做什么 |
|---|---|---|
| 你 | 确认字段清单、验收结果、清洗与合规把关 | 盯字段清单、核对结果、处理异常(如验证码) |
| WorkBuddy | 接中文指令:探字段 → 批量采 → 清洗 → 导出交付物 | 拆解本篇的采集任务并跑完全量、产出交付物 |
| 浏览器技能 BrowserSkill | 以真实浏览器打开页面:跑脚本渲染、滚动 / 翻页 / 点开详情、截图留证;可复用本机浏览器已登录状态,遇到验证码或登录弹窗会停下来交给你处理 | 用浏览器技能打开搜索页——这一页由脚本渲染,直接读源码是空的,必须驱动浏览器 |
五步操作主线(全课程统一,每一篇都按这个顺序推进):
- 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
- 现场踩点(浏览器技能 BrowserSkill):打开
https://www.xiaohongshu.com/search_result?keyword=考研,先只确认两件事:不登录能看到几条、有没有弹登录框。 - 小样试采(WorkBuddy):只取前 1~2 页公开可见的笔记,不登录、不绕过验证。
- 核对与清洗:① 有没有越过登录墙(越了这一批数据直接作废);② 点赞收藏数有没有换算;③ 话题标签有没有拆成独立列。
- 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
用浏览器技能 BrowserSkill 打开 https://www.xiaohongshu.com/search_result?keyword=考研(小红书 · 搜索页(关键词:考研)),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。下面是在 WorkBuddy 里完成本案例的流程。请注意第一步不是采集,而是确认边界。
- 先讲清合规前提。打开 https://www.xiaohongshu.com/search_result?keyword=考研,先说明「这个站点有强登录墙,只采前 1~2 页公开可见的笔记,不登录、不绕过验证,出现登录提示立刻停」。
- 先探可见范围。让人只做一件事:告诉你不登录能看到多少条、页面有没有弹出登录框,先不要采集。
- 驱动浏览器读取。页面由脚本渲染,直接读源码是空的,要求 WorkBuddy 用浏览器打开页面后再读取。
- 只取前 1~2 页。按字段表取笔记标题、笔记类型、作者、点赞收藏评论数、话题标签与链接,够一页就停。
- 做还原。说「把点赞数从 1.2万 这类写法换成整数,把发布时间统一成 YYYY-MM-DD」。
- 记采集时刻与批次。整批新增「采集时刻」和「加载批次」两列。
- 采不到就切备选站点。如果一直要求登录,就改采微博热搜
https://s.weibo.com/top/summary或 B 站排行榜https://www.bilibili.com/v/popular/rank/all,把方法跑通即可。 - 导出并归档。导出 Excel,文件名带上关键词与日期。
四、提示词模板与追问技巧
下面这段可以直接复制。它的关键是把真实网址、只采前 1~2 页、字段、还原规则、备选站点、合规红线一次说清。
请帮我采集小红书搜索结果页上公开可见的笔记。
【目标页面】https://www.xiaohongshu.com/search_result?keyword=考研
【搜索关键词】考研
【重要前提】
- 这个站点有强登录墙:不登录只能看到前若干条,继续向下滚动会弹出登录;
- 请只采前 1~2 页、公开可见的笔记;
- 绝对不要尝试登录,也不要绕过任何验证;
- 一旦出现登录提示或验证码,立刻停下来告诉我,我改用备选站点。
【需要字段】按这个顺序:
1. 搜索关键词 2. 搜索页名次
3. 笔记标题 4. 笔记类型(图文 / 视频)
5. 笔记 ID 6. 作者昵称
7. 作者 ID 8. 点赞原文(如 1.2万)
9. 点赞数(换算成整数,如 12000)
10. 收藏数 11. 评论数
12. 发布时间 13. 话题标签(多个用分号连接)
14. 详情页链接 15. 封面图链接
16. 加载批次 17. 采集时刻
【处理要求】
1. 页面是脚本渲染的,请驱动浏览器打开后再读取;
2. 先给我前 10 条预览,我确认后再导出;
3. 文件名 xhs_search_kaoyan_20261008.xlsx;
4. 只记录封面图的地址,不要下载图片;不要采笔记正文全文。
【合规要求】
- 只采公开可见的元数据,不采作者隐私信息;
- 不登录、不绕过登录与验证码;
- 请求之间间隔 3 秒以上,出现验证提示立即停止。
【备选方案】如果小红书一直采不到,改采下面任一个公开榜单作对照:
微博热搜 https://s.weibo.com/top/summary
B 站排行榜 https://www.bilibili.com/v/popular/rank/all
4.1 三条常用追问指令
追问一(还原数字):
点赞数那列现在是「1.2万」这样的文字,请新增一列换算成整数,
原文保留在「点赞原文」列里,我抽查几条。
追问二(换关键词):
请把关键词换成「考研 英语」,重新采一页,
用「搜索关键词」这一列区分,最后把两次结果合并成一张表。
追问三(按作者汇总):
请按作者昵称分组,统计每位作者出现的条数与平均点赞数,
从多到少排列,告诉我哪些作者在这个话题下出现得最多。
AI 助手小贴士|同一个关键词,不同时间搜出来的结果可能不一样,登录与否看到的条数也不同。让 AI 在结果里带上采集时刻与加载批次,数据才可复现。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请告诉我这次实际采到了多少条、是在第几条时遇到登录提示的,并把这两个数字记进日志文件。
五、结果核对、清洗与保存
先看搜索结果的结果样例(示例数据):
| 搜索页名次 | 笔记标题 | 笔记类型 | 作者昵称 | 点赞原文 | 点赞数 | 收藏数 | 评论数 | 发布时间 |
|---|---|---|---|---|---|---|---|---|
| 1 | 考研英语一 90 分上岸经验分享 | 图文 | 示例用户A | 1.2万 | 12000 | 8600 | 340 | 2026-09-20 |
| 2 | 二战上岸:我的时间表长什么样 | 视频 | 示例用户B | 9860 | 9860 | 5400 | 210 | 2026-09-18 |
| 3 | 考研择校避坑指南 | 图文 | 示例用户C | 8600 | 8600 | 7100 | 180 | 2026-09-15 |
| 4 | 三个月逆袭上岸的真实复盘 | 图文 | 示例用户D | 7300 | 7300 | 3200 | 96 | 2026-09-10 |
5.1 四项核对
- 条数:是不是只采了前 1~2 页公开可见的部分,有没有被登录提示中途打断;
- 字段:标题有没有截断,作者昵称、话题标签、链接是不是都取到了;
- 还原:抽查「1.2万」这类写法,换算成整数对不对;
- 时刻与批次:整批的采集时刻是不是同一个,加载批次有没有标明。
5.2 清洗指令,直接复制
请对本次搜索结果做以下清洗:
① 去掉笔记标题的首尾空格,话题标签去掉开头的井号;
② 点赞、收藏、评论数统一成整数,并保留「点赞原文」列;
③ 发布时间统一成 YYYY-MM-DD;
④ 话题标签统一用分号分隔,去掉多余空格;
⑤ 新增一列「热度参考」= 点赞数 加 收藏数 乘 2 加 评论数 乘 3,
并在备注里写明这个公式的口径;
⑥ 按搜索页名次升序排列。
5.3 保存与归档约定
xhs_search_kaoyan_20261008.xlsx ← 本次搜索结果(元数据)
xhs_search_kaoyan_20261008_clean.xlsx ← 清洗版(含换算与热度参考)
xhs_search_all.xlsx ← 累积表:不同关键词的结果合并
xhs_search_log.txt ← 日志:采集时刻、条数、是否遇到登录
5.4 从这张表能看出什么
拿到表之后,最实用的两个看法是:
- 横向看角度:把点赞最高的几条挑出来,看它们在讲这个话题的哪个侧面,选题就有方向了;
- 纵向看标签:把话题标签拆开统计,出现次数多的标签,就是可以继续深挖的子话题。
注意,这里只做统计与摘要:统计每条笔记的互动数、统计话题标签的出现次数,都不涉及把别人的正文整篇搬走。
AI 助手小贴士|清洗时顺手把「点赞原文」与换算后的「点赞数」并排放,方便一眼核对;有对不上的,回原页面看一眼就知道谁错了。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请把「点赞原文」和「点赞数」两列并排显示,标出换算结果与原文明显不一致的行,我来复核。
课程思政|工匠精神与严谨求实 · 把数字还原准
「1.2万」随手写成 1200,「3 天前」干脆空着——这样的表看着齐整,其实已经失真。把每一个中文单位的数字还回整数、把每一个相对时间落成具体日期,是数据工作的基本功。肯在这些小地方下功夫,结论才经得起追问。
六、常见问题与合规红线
6.1 五个高频问题
| 现象 | 原因 | 怎么处理 |
|---|---|---|
| 滚动到第二屏就弹出登录框 | 站点有强登录墙,未登录可见范围有限 | 立即停,只保留登录前采到的部分,不登录、不绕过 |
| 采集过程中被要求滑动验证 | 请求过于频繁,触发了风控 | 停手并加大请求间隔;仍然受限就改用备选站点 |
| 列表是空的,读源码什么也没有 | 页面由脚本实时渲染,静态源码里没有笔记 | 让 WorkBuddy 驱动浏览器打开页面后再读取 |
| 点赞数一会儿是数字、一会儿是 1.2万 | 页面用了中文单位缩写 | 统一换算成整数,同时保留「点赞原文」列 |
| 两次搜索的结果条数差很多 | 登录状态、可见范围或加载深度不同 | 固定「只采前 1~2 页」的口径,并把登录状态记进日志 |
6.2 四条合规红线(本案例最重要的一节)
- 只采公开可见的笔记元数据。课堂只取前 1~2 页做演示;现场很可能要求登录,采不到就切到备选站点,不要为难自己,更不要硬闯。
- 不绕过登录与验证码。不注册小号、不借用他人账号、不使用任何破解手段;出现登录或验证提示就停下。
- 不采个人隐私。作者的手机号、微信号、私信内容、关注与粉丝关系,一律不碰。
- 笔记正文受著作权保护。只做统计与摘要,不整理全文,不整篇搬运到其他平台。
这里把「只采前 1~2 页」的道理讲透一点:目的是演示方法,不是采数据本身。前 1~2 页足够看清页面结构、跑通流程、算出一张表,也足以把请求量压到很低。剩下的笔记,不采也不影响你学会这件事。
课程思政|诚信与职业操守 · 创作者的心血,值得尊重
每一条笔记背后,都是一个真实的人花时间写出来、拍出来的。我们做分析,可以看趋势、可以做统计、可以借鉴选题思路,但不应把别人的正文整篇搬走当成自己的成果。理解数据背后是人,尊重别人的创作与隐私,是这一行最不该省的一课。
七、随堂自测(10 题)
点击选项即可判分,答错的题会立刻显示解析。
1小红书搜索页在未登录时,能采到的是什么?
- A. 前若干条公开可见的笔记元数据
- B. 全部笔记的正文全文
- C. 作者的手机号与微信号
- D. 需要登录才能看到的私密内容
2采集过程中弹出登录框,正确的做法是?
- A. 想办法用别人的账号登录
- B. 立即停止,保留登录前采到的部分,不登录、不绕过
- C. 反复重试直到登录框消失
- D. 绕过验证码继续向下滚动
3点赞数显示为「1.2万」,换算成整数应该是?
- A. 1200
- B. 120
- C. 12000
- D. 120000
4对笔记的正文全文,恰当的态度是?
- A. 随便转载,注明平台即可
- B. 截图后公开发布
- C. 改成自己的话重新发表
- D. 受著作权保护,不整篇转载,只做统计与摘要
5页面在屏幕上能看到笔记,读源码却是空的,最可能的原因是?
- A. 让 WorkBuddy 驱动浏览器打开页面后再读取
- B. 网站禁止访问
- C. 网络断开了
- D. 浏览器需要升级
6发布时间显示成「3 天前」,恰当的处理是?
- A. 原样保留「3 天前」
- B. 结合采集日期换算成具体日期
- C. 直接删掉这条
- D. 统一写成 3
7下面哪一项属于本案例明确不应采集的内容?
- A. 搜索页上公开的标题
- B. 公开的点赞与收藏数
- C. 作者的手机号与私信内容
- D. 公开的话题标签
8请求太频繁被要求做滑动验证,正确的反应是?
- A. 换 IP 继续
- B. 换账号继续
- C. 提高请求频率冲过去
- D. 立即停止、加大请求间隔,仍不行就改用备选站点
9小红书一直采不到时,恰当的做法是?
- A. 改用微博热搜、B 站排行榜等公开榜单作对照
- B. 放弃整个案例
- C. 注册一个新账号绕过登录
- D. 借用他人账号去采
10为什么本案例主张「只采前 1~2 页」?
- A. 因为技术上只能采两页
- B. 只取公开可见的少量样本,控制请求频率、避免触发风控
- C. 因为后面的内容都是错的
- D. 为了让文件更小