今天你 AI 赋能了吗?打开浏览器,在地址栏输入 xuefulu.ai,按下 Enter 即可访问学府路1号!
2026年10月17日 星期六 12:32:20
常用网址:案例设计 | 案例导航 | 学府路1号 https://xuefulu.ai | 下载 WorkBuddy https://xuefulu.ai/WorkBuddy.html

一、案例背景与采集目标

案例 10 我们拿到了商品清单,看到的是商家想让你看到的信息:书名、价格、评论数。但一本书到底好不好看,答案往往藏在短评区里。

本案例把目标从当当的图书列表,换到豆瓣读书的短评页。示范条目是豆瓣读书编号 1084336 的那本书,短评页地址 https://book.douban.com/subject/1084336/comments/。页面上每条短评带一句话点评、档位评价(力荐 / 推荐 / 还行 / 较差 / 很差)和「有用」数。我们采集短评正文与评价档位,再做一个简单的情感倾向统计,算出好评率,看看读者的情绪偏向哪一边。

1.1 这个案例要拿到什么

1.2 难点:短评页比列表页更难缠

难点具体表现对策
短评是翻页的页尾有「后页」链接,网址里 start= 参数每页加 20明确要求「按 start 递增翻页,直到没有下一条短评」
正文里混着表情和符号「[给力]」「~~」「^_^」等清洗成纯文本,只保留中文、数字和常用标点
评价档位是文字「力荐」「推荐」「还行」「较差」「很差」统一映射成 5 / 4 / 3 / 2 / 1 的整数分
情感判断只是近似关键词词典会误判反讽与否定说清这是最粗略的近似,不是真正的模型
本案例的情感统计只是「最粗略的近似」。用关键词数正负,遇到「不算好」「一点也不差」这类句子就会栽跟头。把它当成一次练习,而不是一个准确定论。
短评区含个人信息。豆瓣短评页上还有评论者昵称与主页链接,那属于个人相关信息。本案例只采集短评正文、评价档位、时间、「有用」数四类,绝不采集或保存评论者的昵称与主页。

目标站点与交付产物

下表是本篇用到的真实站点。绿色是课堂可稳定复现的示范站点;橙色是延伸站点,多数有登录墙或风控,课堂上只讲结构、原理与合规边界,不教绕过。

项目内容
示范站点豆瓣读书 · 短评
https://book.douban.com/subject/1084336/comments/
评论分页结构清晰、文本长度适中,适合做情感倾向统计
延伸站点
  • 京东 · 商品搜索(进《小王子》的评价区) https://search.jd.com/Search?keyword=小王子(从搜索结果进任意商品,评价区就在商品详情页下方,含评分、追评与晒图;京东对自动化请求有风控)
  • 大众点评 · 商户评价(广州) https://www.dianping.com/guangzhou(强反爬,只讲原理)
  • 黑猫投诉 · 投诉列表 https://tousu.sina.com.cn/index/(投诉文本,负面语料丰富)
交付产物
  • 数据明细.xlsx(正文 + 情感标签 + 得分)
  • 数据明细.html(可按情感筛选、关键词高亮)
  • 数据看板.html(星级分布 + 情感占比 + 差评关键词榜)
  • 技能压缩包(评论采集 + 词典法情感标注,词典可替换)
难度★★☆ 中
合规提示评论内容是用户生成内容,采集后只做统计分析,不得逐条转载;不得采集用户 ID 与个人主页做画像。

二、数据源与字段设计

数据源就一个页面:豆瓣读书短评页,地址 https://book.douban.com/subject/1084336/comments/。它按时间倒序列出短评,页尾有「后页」入口,网址里的 start= 参数控制起始序号,是典型的参数式分页。

2.1 站点信息

项目内容
站点全称豆瓣读书(book.douban.com),国内主流的图书评分与短评社区
示范网址https://book.douban.com/subject/1084336/comments/
页面形态服务端渲染的列表页,无需登录即可看到前若干页短评
分页方式网址参数 start= 每次增加 20,如 ?start=0、?start=20、?start=40
每页条数20 条短评,含正文、评价档位、时间、「有用」数
访问约束豆瓣对访问频率较敏感,务必低频(每条页面间隔 3 秒以上),出现登录墙或验证码立即停止

2.2 延伸站点(只讲原理与合规边界)

站点网址教学用途
京东商品评价https://search.jd.com/Search?keyword=小王子从搜索结果进商品详情页看评价区,有「查看更多」需点开加载;脚本访问会触发验证,用浏览器打开
大众点评商户评价https://www.dianping.com/guangzhou强反爬,只讲原理
黑猫投诉https://tousu.sina.com.cn/投诉文本,负面语料丰富,可作对照

2.3 完整字段表(12 个字段)

字段名字段含义示例值口径与备注
序号短评在结果里的顺序1从 1 开始,按页面顺序
条目编号豆瓣图书条目 id1084336与图书表关联用,来自网址
书名被评价图书名小王子从短评页标题取,用于核对没采错页
短评正文短评内容原文故事线铺得很稳,读到最后才明白书名。保留原文,另存清洗版
正文清洗去表情去符号后的文本故事线铺得很稳,读到最后才明白书名。再做情感统计用这一列
评价档位豆瓣原始档位文字推荐力荐/推荐/还行/较差/很差
评价分值档位映射成的整数分4力荐5 推荐4 还行3 较差2 很差1
有用数多少人点「有用」128数字型,可作为情感权重
评价时间短评发表时间2026-09-21 14:03统一成 YYYY-MM-DD HH:MM
页码该条来自第几页1便于定位与续采;也可换算成 start 值
情感倾向词典法判定结果正向正向/负向/中性
情感得分正向词数减负向词数2用于排序,正数偏正向

2.4 五种评价档位,统一成一个数

页面档位文字分值说明
力荐5最高档
推荐4次高档
还行3中评
较差2低档
很差1最低档

2.5 正文清洗规则

清洗口径
清洗目标:把短评正文变成一句干净的话。

  1. 去掉表情符号与颜文字,如 [给力]、~~、^_^;
  2. 去掉连续的重复标点,如「!!!」→「!」;
  3. 去掉首尾空白与多余换行;
  4. 繁体转简体,全角标点统一为半角;
  5. 空短评(只有符号没有文字)整条剔除,并记录条数。

示例(示例数据):
  原文:故事写得好!!!读到最后才懂[给力][给力] 值得一读~~
  清洗:故事写得好!读到最后才懂 值得一读
原文与清洗版都要留。情感统计用清洗版,日后要复核或展示时用原文——清洗过程可能误删内容,原文是最后的凭据。

AI 助手小贴士|豆瓣短评页翻页是「网址参数 +20」。不要等它自己判断翻到哪,直接告诉 AI 要翻到第 5 页、或者一直翻到没有下一条为止。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:这个短评页靠网址里的 start 参数翻页,请一直翻到没有下一条短评为止,然后用核对告诉我一共采到多少条。

课程思政|工匠精神与严谨求实 · 关键词统计只是近似

用「好」「差」几个词数一数就算情感,看着省事,其实很粗糙:反讽、否定、双重否定都会误判。做数据的人要清楚自己方法的短板在哪,并把局限写在结论旁边——承认不确定,比假装精确更专业。

三、零代码操作步骤

工具与技能|先看清三个角色,再动手

本篇全程零代码:你把要求说清楚,AI 去执行,你负责验收。三个角色分工如下——浏览器技能指的是腾讯开源的 BrowserSkill,它能让 AI 直接操作你电脑上真实的浏览器(可复用已经登录的状态),自己开一个独立窗口干活,不打扰你正在看的网页;遇到验证码、登录或确认弹窗,它会停下来交给你本人处理。

角色负责什么在本案例里具体做什么
你确认字段清单、验收结果、清洗与合规把关盯字段清单、核对结果、处理异常(如验证码)
WorkBuddy接中文指令:探字段 → 批量采 → 清洗 → 导出交付物拆解本篇的采集任务并跑完全量、产出交付物
浏览器技能
BrowserSkill
以真实浏览器打开页面:跑脚本渲染、滚动 / 翻页 / 点开详情、截图留证;可复用本机浏览器已登录状态,遇到验证码或登录弹窗会停下来交给你处理打开短评页并翻页,确认翻页参数的步长

五步操作主线(全课程统一,每一篇都按这个顺序推进):

  1. 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
  2. 现场踩点(浏览器技能 BrowserSkill):打开 https://book.douban.com/subject/1084336/comments/,确认翻页参数是什么、每次加多少(?start=0、20、40 …)。
  3. 小样试采(WorkBuddy):只采 ?start=0 这一页,确认正文、档位、时间、「有用」数四列都能取到。
  4. 核对与清洗:① 页面上的短评总数与采到的条数对得上吗(差了多半是没翻完);② 评价档位是不是都映射成了 1~5 的整数;③ 正文有没有混进按钮文字。
  5. 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
起手一句话(可直接复制):用浏览器技能 BrowserSkill 打开 https://book.douban.com/subject/1084336/comments/(豆瓣读书 · 短评),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。

整个过程仍然在 WorkBuddy 里用中文对话完成。

  1. 新建对话,粘贴提示词(见下一节),把短评页地址原样粘进去。
  2. 先采一页试水。说「先只采 ?start=0 这一页」,确认正文、档位、时间、「有用」数四列都能取到。
  3. 检查翻页。数一数页面上显示的短评总数,和采到的条数比一比,差了多半是没翻完 start 参数。
  4. 处理评价档位。看评价分值列是不是全是 1~5 的整数,出现「力荐」这类文字要让它映射成 5。
  5. 批量翻页。说「继续按 start=20、40、60 采第 2~4 页并合并,按「评价时间 + 短评正文」去重」。
  6. 清洗正文。让它按清洗规则生成「正文清洗」列。
  7. 做情感统计。让它用正负关键词表算出好评率,并说明统计口径。
每一步都要留痕。页数、条数、剔除的空短评数都记下来,最后写进日志,报告才站得住。
翻页时若条数对不上,八成是重复采了同一批。记得让 AI 按「评价时间 + 短评正文」去重,这比按序号去重可靠得多。

四、提示词模板与追问技巧

下面这段可以直接复制。豆瓣对频率敏感,提示词里把「间隔 3 秒」写进去。

提示词
请帮我完成一个图书短评采集任务。
【目标页面】豆瓣读书短评页,网址:https://book.douban.com/subject/1084336/comments/
【条目编号】1084336
【采集范围】短评第 1 页(start=0),先只采这一页给我验证
【翻页方式】网址里 start 参数每次加 20
【需要字段】按这个顺序:
  1. 序号(从 1 开始)
  2. 条目编号
  3. 书名
  4. 短评正文(原文,不要改写)
  5. 正文清洗(去表情、去重复标点、去空行后的文本)
  6. 评价档位(豆瓣原文:力荐/推荐/还行/较差/很差)
  7. 评价分值(1~5 的整数:力荐5 推荐4 还行3 较差2 很差1)
  8. 有用数(整数)
  9. 评价时间(格式 2026-09-21 14:03)
  10. 页码(这条来自第几页)
  11. 情感倾向(正向/负向/中性,由关键词词典判定)
  12. 情感得分(正向词数 − 负向词数)

【执行要求】
  - 先采第 1 页给我确认,再继续第 2~4 页(start=20、40、60)
  - 每条页面之间间隔 3 秒以上,不要并发,出现验证码立即停止
  - 不要采集评论者的昵称与主页
  - 结果导出为 review_1084336_20261009.xlsx

4.1 追问与情感统计指令

追问指令
追问一(补翻页):
页面上显示这本书共有 4000 多条短评,但你只采到 20 条,
请按 start 参数继续翻页,采满 4 页后再合并。

追问二(统一档位):
第 3、8 条的评价档位是「力荐」「很差」这样的文字,
请统一映射成 5 和 1 的整数分。

追问三(情感统计):
请在结果里把「情感倾向」和「情感得分」两列补齐,规则如下:
  - 正向词:好、喜欢、满意、值得、推荐、精彩、感动、喜欢
  - 负向词:差、失望、无聊、拖沓、晦涩、烂、不好
  - 每个词出现一次计 1 分,正分多于负分记为正向,反之记为负向,相等记为中性
请最后给我一个好评率 = 正向条数 ÷ 全部条数(保留一位小数),
并说明这个方法的局限。
先把「好评率」的定义写死再统计。是「正向 ÷ 全部」还是「正向 ÷ (正向+负向)」,两者结果能差好几个百分点。

AI 助手小贴士|做完统计,务必让 AI 顺手告诉你哪些短评被误判了。抽取几条「正向与负向都出现」的短评人工看看,你就能体会到词典法的局限。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请挑出 5 条正向词和负向词都出现的短评,标出它们被判成了什么,并告诉我为什么可能误判。

五、结果核对、清洗与保存

结果样例(节选,均为示例数据):

序号短评正文正文清洗评价档位评价分值有用数评价时间
1故事写得好!!!读到最后才懂[给力] 值得一读~~故事写得好!读到最后才懂 值得一读力荐51282026-09-21 14:03
2还行,中段节奏偏慢,但结尾收得住。还行,中段节奏偏慢,但结尾收得住。还行3422026-09-21 11:47
3翻译生硬,读起来很累,不太推荐。翻译生硬,读起来很累,不太推荐。较差2192026-09-20 20:15
4平凡的故事,却写出了不平凡的力量,推荐。平凡的故事,却写出了不平凡的力量,推荐。推荐4762026-09-20 09:32

5.1 情感统计结果长什么样

指标数值说明
总短评数4180示例数据
正向条数3052按关键词规则判定
负向条数688按关键词规则判定
中性条数440正负分相等或无关键词
好评率73.0%正向 ÷ 全部,保留一位小数
平均分值4.2评价分值列均值

5.2 清洗与保存

清洗指令
① 去重:
   按「评价时间 + 短评正文」去重。

② 剔除无意义短评:
   纯符号、纯表情、只有一个字的短评单独列一份清单,
   主表里剔除,并记录剔除了多少条。

③ 补时间列:
   新增「采集日期」,统一填今天。
文件命名
review_1084336_20261009.xlsx         ← 明细表(原文 + 清洗版 + 档位)
review_1084336_20261009_clean.xlsx   ← 清洗后(去重、剔除空短评)
review_1084336_20261009_stats.xlsx   ← 统计表(好评率、平均分、词频)
review_1084336_20261009_log.txt      ← 日志:页数、条数、剔除数、异常
情感统计的结果要连同方法一起保存。只留一个「好评率 73.0%」的数字,别人不知道它是怎么算出来的,也无法复核。

AI 助手小贴士|把正向、负向被命中的关键词频次也导出来,你就能看出这份统计的「证据」长什么样,比只看一个好评率可信得多。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请统计所有命中的正向词和负向词各出现了多少次,按频次从高到低给我一张表。

课程思政|数据安全与法治素养 · 评论可以读,人不该被记住

短评区是一个个真实读者写下的感受。做分析时,我们关注的是「大家怎么说」,而不是「谁在说」。不保存昵称、不关联个人身份、不外传原始短评,是每个采集者应有的分寸——数据研究的对象是现象,不是个人。

六、常见问题与合规红线

现象原因怎么处理
短评条数远少于页面显示的总数没有按 start 参数翻完页要求「一直翻到没有下一条,并核对总数」
同一批短评出现了两次分页有重叠按「评价时间 + 短评正文」去重
评价分值列里混着「力荐」档位未统一映射把映射规则写进提示词并抽查
正文里还残留 [给力]、~~ 等符号清洗规则不完整补充规则重新清洗,保留原文列对照
好评率算出来高得离谱好评率分母口径没定义清楚明确「正向 ÷ 全部」还是「正向 ÷ (正+负)」
页面上出现登录框或验证码访问频率过高触发了风控立即停止,加大间隔;仍然失败就换数据源

6.1 三条合规红线

  1. 不采个人信息。只保留短评正文、评价档位、时间、「有用」数;评论者昵称、主页链接一律不留。
  2. 不做人身攻击分析。情感统计的结论只针对图书与内容,不针对任何具体的人。
  3. 原始短评不外传。课堂内分析可以,打包外发或二次发布前必须获得授权并脱敏。
情感统计不是「真相判定」。词典法会把「不推荐」算成正向(含「推荐」二字),也会漏判反讽。任何结论都要写明方法局限,不能拿去当图书的最终评价。

课程思政|诚信与职业操守 · 别让一个数字替所有人说话

「好评率 73.0%」看起来很客观,但它背后是一套粗糙的关键词规则。把近似当成精确、拿一个统计数字去否定真实的阅读体验,是数据时代常见的不诚实。诚实的态度是:给出数字,也给出它的来历与边界。

七、随堂自测(10 题)

点击选项即可判分,答错的题会立刻显示解析。

已答 0 / 10 · 正确 0 —

1本案例中,情感倾向统计用的是什么方法?

  • A. 训练一个深度学习模型
  • B. 正负关键词词典作简单计数
  • C. 人工逐条阅读打分
  • D. 爬取其他平台的评分
答案:B。本案例用正负关键词计数,是最基础的方法,也是最粗糙的近似。

2豆瓣短评页靠网址里的 start 参数翻页,正确的采集方式是?

  • A. 一直按 start 递增翻页到没有下一条为止
  • B. 只采首页的短评
  • C. 假装它不存在
  • D. 随便点两次
答案:A。不按 start 翻完会漏掉大部分短评,必须翻到底再核对总数。

3短评正文「故事写得好!!!读到最后才懂[给力]~~」清洗后应该是?

  • A. 原样保留
  • B. 直接删掉这一条
  • C. 故事写得好!读到最后才懂
  • D. 只留「故事写得好」
答案:C。清洗目标是去表情、去重复标点、去无意义符号,保留有用的文字内容。

4某条短评的评价档位缺失,正确的处理是?

  • A. 统一填 0
  • B. 随便补一个档位
  • C. 整条删除
  • D. 评价分值留空并单独记录原因
答案:D。空值与 0 含义不同,也不能随意删条。记录缺失原因才便于后续判断。

5下面哪一句话最可能被词典法误判?

  • A. 一点都不好看,不推荐
  • B. 故事很精彩,很感动
  • C. 翻译生硬,读得累
  • D. 内容扎实,值得买
答案:A。这句含「不」「好看」「不推荐」,词典法容易被「好看」误导,把否定句判成正向,是典型误判。

6计算好评率之前,最该先明确的是?

  • A. 短评的字体大小
  • B. 好评率的分母是什么
  • C. 网站的服务器位置
  • D. 用什么颜色的图表
答案:B。分母是「全部短评」还是「正+负」,结果差别很大,必须先定义再统计。

7关于短评采集的合规边界,正确的是?

  • A. 可以采集评论者昵称与主页
  • B. 可以随意转发原始短评
  • C. 可以给评论者画像并公开
  • D. 只采正文、档位、时间、有用数,不留个人信息
答案:D。短评分析关注现象而非个人,昵称、主页等个人相关信息不应采集或保存。

8把「力荐/推荐/还行/较差/很差」统一成 1~5 的整数,是为了?

  • A. 让表格更好看
  • B. 减少文件体积
  • C. 方便计算平均分与做统计
  • D. 避免版权问题
答案:C。只有统一成 1~5 的整数,才能求均值、画分布,评价才可计算。

9情感统计结果里的「好评率 73.0%」,发布时还应该带上什么?

  • A. 方法说明与局限提示
  • B. 只带数字最简洁
  • C. 配一张好看的图
  • D. 什么都不用带
答案:A。没有方法说明的数字无法复核。注明使用词典法与局限,才是负责任的做法。

10去重时,比「按序号」更可靠的依据是?

  • A. 短评的排序
  • B. 短评的字数
  • C. 短评的颜色
  • D. 评价时间 + 短评正文
答案:D。序号每次采集都会变;时间加正文的组合能唯一标识一条短评,去重更可靠。