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

一、案例背景与采集目标

热搜榜是社交平台上「此刻大家在聊什么」的一张快照。榜单不长,通常几十条,每条就几样东西:排名、话题、热度值、标签。它看起来简单,却是观察舆论走向最有信息量的一类数据——因为它是随时间变化的,一小时前和一小时后的榜单,讲的可能是两个故事。

这一案例我们做的是「定时采、连续存、对比看」。采一次只能得到一张快照,价值有限;每隔一小时采一次、每次都带上采集时间,攒出十几个时间点,就能画出话题的热度曲线,还能一眼看出谁是新上榜、谁是刚掉榜。

1.1 这一篇用哪些真实站点

示范站点是微博热搜榜的公开榜单页,地址 https://s.weibo.com/top/summary。不登录时能看到的是一份「实时热搜榜」:一列排名、一列话题、一列热度值,部分条目还带「热」「新」「沸」「爆」这类角标;页面顶部另有置顶或推广条目。这个站点有登录风控:短时间浏览次数一多就会弹出登录提示,因此课堂练习只看公开可见的这一屏,不登录、不点进话题内部。

延伸再配一个结构更稳、更容易复现的站点:百度热搜榜 https://top.baidu.com/board?tab=realtime(静态榜单页,字段同样是排名 / 话题 / 热度,练习时可以作为兜底)。此外B 站全站排行 https://www.bilibili.com/v/popular/rank/all 也提供公开排行榜页,可作对照。

1.2 这个案例要拿到什么

1.3 为什么热搜榜比新闻列表难采

难点具体表现对策
页面动态加载榜单常由脚本实时渲染,静态源码里看不到条目让 WorkBuddy 驱动浏览器打开页面再读取
热度值不是数字写成 1234.5万、1.2亿、986 等混合写法统一规则换算成整数或浮点数
榜单一直在变两次打开同一条的排名都可能不同每次采集都记录采集时间,按时间点分开存
有登录风控微博热搜榜浏览频繁后会弹出登录提示只采无需登录可见的部分,不绕过登录

1.4 采集节奏怎么定

不建议几分钟采一次——既没意义,也给对方服务器添负担。课堂练习推荐每小时一次,一天攒 12~24 个时间点已经足够看出趋势。如果只想在课上跑通,也可以手动间隔十几分钟采两三次,先把「对比」这件事做出来。

1.5 热搜榜其实不止一张

以微博为例,热搜不是孤零零一张榜,而是「一张主榜 + 若干分榜」:主榜是实时热搜总榜,另外还有按领域切分的分类榜。不同榜单的排序口径、条目数量都不一样。

课堂练习建议先只盯总榜,把「定时采、连续存、对比看」这条链路跑通;等流程稳了,再决定要不要把分类榜也纳入,或者同时挂上百度热搜做横向对照。

这也正是字段表里专门留「榜单类型」一列的原因——两张榜的话题名可能重复,不写清是哪一张,数据一合并就分不清了。

热搜榜的「时间维度」才是它的价值。如果只采一次,它只是一张榜单;连续采十几个小时,它才是一条可以分析的曲线。所以从第一刻起就要把采集时间记下来。

目标站点与交付产物

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

项目内容
示范站点微博热搜榜
https://s.weibo.com/top/summary
榜单结构简单(排名/话题/热度),但需要 Cookie,教学上以「结构解析 + 热度值清洗」为主
延伸站点
  • 知乎热榜 https://www.zhihu.com/hot(接口返回 JSON,字段干净)
  • 哔哩哔哩(B 站)全站排行 https://www.bilibili.com/v/popular/rank/all(有公开排行榜接口)
  • 抖音热榜 https://www.douyin.com/hot(动态渲染,参考案例 34 的做法)
  • 百度热搜 https://top.baidu.com/board?tab=realtime(静态榜单页,较好复现)
交付产物
  • 数据明细.xlsx(含热度原始值与换算值、快照时间)
  • 数据明细.html(按快照时间分组浏览)
  • 数据看板.html(热度榜 Top20 + 两期榜单差异)
  • 技能压缩包(榜单快照采集器,支持定时多次存档)
难度★★☆ 中
合规提示榜单属平台公开信息,单次低频采集可接受;不得高频轮询、不得用于商业分发。教学演示建议用百度/知乎榜单这类结构更稳定的页面。

二、数据源与字段设计

目标页面是微博热搜榜的公开榜单页 https://s.weibo.com/top/summary(形态是榜单页:一列排名、一列话题、一列热度值,顶部另有置顶或推广条目)。为避免登录与风控风险,本案例只采无需登录即可看到的榜单区域,不深挖话题内页。

2.1 站点信息表

站点全称网址页面形态与接口规模与角色
微博 · 热搜榜(公开榜单页)https://s.weibo.com/top/summary榜单页,含排名 / 话题 / 热度值 / 角标,顶部另有置顶与推广条目实时总榜约 50 条,另设分榜;未登录仅可见部分,浏览频繁会要求登录
百度热搜 · 实时榜https://top.baidu.com/board?tab=realtime静态榜单页,结构稳定,字段为排名 / 话题 / 热度约 50 条,适合作为课堂复现的兜底站点
B 站 · 全站排行榜https://www.bilibili.com/v/popular/rank/all公开排行榜页,含视频标题 / 播放量 / 弹幕数视频类榜单,字段与热搜不同,可作对照
知乎 · 热榜https://www.zhihu.com/hot页面及接口返回含标题与热度有登录墙,只讲结构,不作为示范站点

2.2 完整字段表

字段名字段含义示例值口径与备注
采集时间本次采集的时刻2026-10-08 09:00按小时存,是时间维度的关键,必须每期都记
排名话题在榜上的位置1从 1 开始;置顶与推广条目不占正式排名
话题热搜话题名国庆假期返程高峰保持原文,含书名号、标点,不要截断
话题链接话题详情页地址https://s.weibo.com/weibo?q=%23国庆假期返程高峰%23绝对地址,含 URL 编码,用于回溯;只记录不点开
热度值原文页面上的原始热度写法1234567微博热搜多为纯数字;延伸到百度 / 知乎榜可能写成「1234.5万」
热度值换算后的数字1234567统一成整数;万 = 10000,亿 = 100000000
标签话题烈度的角标沸常见「热」「新」「沸」「爆」;没有就留空
榜单类型总榜 / 分类榜总榜同一平台可能有多个榜,须写清是哪一张
榜单位次变化相比上一期的升降上升 3 位由两期数据比对得到,不是页面上直接给的
是否推广位是否为商业推广条目否微博热搜顶部含推广条目,必须标注或剔除
话题领域话题所属分类社会民生由关键词规则或人工打标,用于分领域统计
快照批次本批次的编号20261008_09与采集时间一一对应,多期对比时用来区分

2.3 热度值换算规则(这一节的重头戏)

微博热搜本身是纯数字,但延伸到百度、知乎这类榜单,热度很少直接写成数字,更多是「1234.5万」「1.2亿」这种中文单位写法。要比较大小、算变化,必须换算成数字。规则其实就三条:

原始写法含义换算结果说明
986九百八十六986没有单位,直接就是数字
12.3万12.3 乘以一万123000「万」= 10000
1234.5万1234.5 乘以一万12345000小数照乘,再去掉多余零
1.2亿1.2 乘一亿120000000「亿」= 100000000
3.5k部分平台用英文单位3500「k」= 1000,按平台说明处理

2.4 总榜与分榜对照表

榜单字段差异采集建议口径提醒
微博实时热搜总榜排名 / 话题 / 热度值 / 角标,顶部有推广位课堂默认采集对象推广条目不占正式排名
微博分类榜(如文娱榜)字段同上,条目按领域筛选流程跑通后再纳入须用「榜单类型」与其他榜区分
百度热搜实时榜排名 / 话题 / 热度(含「万」写法)作为兜底与横向对照热度需按「万」换算成数字
B 站全站排行视频标题 / 播放量 / 弹幕数只作对照,不并表字段与热搜不同,不能直接合并
务必保留「热度值原文」这一列。换算只是加工,原文才是事实。万一规则理解错了,还能回头按原文重算,而不是凭印象改数。

AI 助手小贴士|热度值是中文单位混写,最容易出错。让 AI 先只做换算、把原文和结果并排给你,你抽查几条确认规则对了,再往下走。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请只处理热度值这一列:保留原文,新生成一列换算后的数字,并逐行说明换算依据,我抽查几条后再继续。

课程思政|数据安全与法治素养 · 只采看得见的,不碰看不到的

热搜榜上不带登录就能看到的部分,属于公开信息;而话题背后的用户发言、转发关系、个人主页,则涉及大量个人信息。做榜单分析,就老老实实停在榜单元数据这一层,不去深挖个人内容——这既是法律要求,也是专业自觉。

三、零代码操作步骤

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

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

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

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

  1. 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
  2. 现场踩点(浏览器技能 BrowserSkill):打开 https://s.weibo.com/top/summary,让它只报告一件事:不登录能看到多少条、字段有哪些。
  3. 小样试采(WorkBuddy):采下当前时间点的全部可见条目,并注明本次采集时间。
  4. 核对与清洗:① 排名有没有从 1 连续排下来;② 话题标题有没有被截断;③ 热度原文有没有丢(「1.2 亿」这类要保留原文再另算数字列)。
  5. 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
起手一句话(可直接复制):用浏览器技能 BrowserSkill 打开 https://s.weibo.com/top/summary(微博热搜榜),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。
  1. 先确认能不能采。让 WorkBuddy 打开 https://s.weibo.com/top/summary 看看不登录能看到多少条;如果只看到几条就按可见范围来,不要试图登录或绕过。
  2. 采第一个时间点。要求它把当前可见的榜单采下来,字段按字段表,并注明本次采集时间。
  3. 先核对字段。看排名有没有从 1 连续排下来、话题有没有截断、热度值原文有没有丢、标签有没有采到。
  4. 做热度换算。让它按换算规则生成数字列,你抽查「1.2亿」「1234.5万」等几条是否算对(微博本身是纯数字,重点是延伸到其他榜时)。
  5. 存成第一个文件。文件名带上采集时间,例如 hot_20261008_09.xlsx。
  6. 隔一段时间采第二个时间点。课上可间隔十几分钟,实际使用建议按小时。存成 hot_20261008_10.xlsx。
  7. 做两期对比。说「请对比两个时间点,找出新上榜、掉榜、以及排名上升下降较多的话题」。
  8. 观察趋势。把两个文件合成一张带时间列的长表,就能看某条话题的热度是在涨还是在退。
定时这件事,WorkBuddy 或 AI 平台大多支持设定重复任务。把「采集时间」当第一列,同一个话题在不同时间点就是不同的行,长表才拼得出来。

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

下面这段可以直接复制。关键是把真实网址、字段、热度换算规则、时间戳、按时间点存文件这几件事说死。

提示词
请帮我采集微博热搜榜的公开榜单页。

【目标页面】微博热搜榜公开页,地址:https://s.weibo.com/top/summary
【采集范围】不登录即可看到的榜单部分,约 30~50 条
【兜底站点】若微博页面读取受限,改用百度热搜 https://top.baidu.com/board?tab=realtime

【需要字段】按这个顺序:
  1. 采集时间(本次采集的时刻,格式 2026-10-08 09:00)
  2. 排名(从 1 开始;置顶与推广条目不占正式排名)
  3. 话题(保持原文,不要截断)
  4. 话题链接(绝对地址,含 URL 编码)
  5. 热度值原文(页面上怎么写就怎么记,例如 1234567、1.2亿、1234.5万)
  6. 热度值(换算成数字:万=10000,亿=100000000)
  7. 标签(热 / 新 / 沸 / 爆,没有就留空)
  8. 榜单类型(总榜 / 分类榜)
  9. 是否推广位(是 / 否)
  10. 快照批次(如 20261008_09)

【输出要求】
  1. 先在对话里给我表格预览,我确认后再导出
  2. 文件名 hot_20261008_09.xlsx,保存到当前工作目录
  3. 这只是第一次采集;稍后我会让你再采一次,两次要能对比

【合规要求】
  - 只采榜单上公开可见的内容,不要点进话题内部
  - 不要尝试登录、不要绕过任何访问限制
  - 请求之间间隔 2 秒以上,出现登录提示立即停止

4.1 三条常用追问指令

追问指令
追问一(修换算):
「1.2亿」被算成了 120000,这是错的,正确是 120000000。
请按「万=10000、亿=100000000」重新换算所有热度值,并保留原文列。

追问二(两期对比):
现在我发给你第二个时间点的榜单文件。
请按「话题名」对齐两期数据,输出:新上榜话题、掉榜话题、
排名上升最多和下降最多的各 5 条,并给出热度变化。

追问三(拼长表):
请把两个时间点的结果纵向合并成一张长表,
保留「采集时间」列,按话题分组,方便看同一话题的热度变化。
对比两期数据时,要以「话题名」为对齐依据,而不是以排名。排名会整体移动,话题名才是同一个对象在不同时间点的身份标识。

AI 助手小贴士|两期对比最容易把「同一话题」当成两个话题。让 AI 先按话题名对齐,再做比较,结果才可信。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请先按话题名把两个时间点的数据对齐,再告诉我哪些话题在两个时间点都出现了、它们的热度怎么变的。

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

先看某一次采集的结果样例(示例数据):

采集时间排名话题热度值原文热度值标签是否推广位
2026-10-08 09:001国庆假期返程高峰48213574821357沸否
2026-10-08 09:002多地开启降温模式39824103982410热否
2026-10-08 09:003新款手机发布会定档31587603158760新否
2026-10-08 09:00置顶某品牌秋季新品预热—是

5.1 四项核对

5.2 清洗与对比指令

清洗指令
请对本次榜单结果做以下处理:
① 去掉话题名的首尾空格;
② 热度值统一成整数;热度值原文列保持不变;
③ 把「置顶 / 推广」条目单独抽到一张表,不要混进正式排名;
④ 按排名升序排列,并新增一列「热度名次复核」:按热度值从大到小重排的名次;
⑤ 和上一时间点对比,输出新上榜、掉榜、上升、下降四类话题;
⑥ 把结果按采集时间纵向追加到 hot_all.xlsx 累积表里。

5.3 文件命名与归档

文件命名
hot_20261008_09.xlsx      ← 09 点的快照(原始,保留)
hot_20261008_10.xlsx      ← 10 点的快照
hot_all.xlsx              ← 所有快照纵向合并的长表(做趋势用)
hot_compare_1008.xlsx     ← 当日两期对比结果
hot_log.txt               ← 日志:每次采集时刻、条数、异常

5.4 一条热度曲线怎么读

把多期快照拼成长表之后,挑一条话题看它的热度值随时间怎么变,常见有三种形状:

形状本身就是信息。但别忘了在报告里写清:这些都只是「关注度随时间的变化」,不等于事件本身的轻重。

如果你想让 AI 自己按时采,可以问它所在平台有没有「定时任务」功能,把这段提示词设成每小时执行一次——但频率一定要克制,每小时一次已经是上限。

AI 助手小贴士|画热度曲线前,先把长表整理成「时间 × 话题 × 热度」三列。形状对了,后面用 Excel 或 BI 工具都很容易出图。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请把累积长表整理成「采集时间、话题、热度值」三列,并挑出热度连续上升的 5 个话题。

课程思政|诚信与职业操守 · 榜单是镜子,不是武器

热搜榜能反映关注度,但不能等同于事实,更不是可以随意操控的对象。做数据分析的人,要如实呈现榜单原貌,不挑对自己有利的时间点、不掐头去尾制造结论。用数据说真话,是这份工作最基本的职业操守。

六、常见问题与合规红线

6.1 五个高频问题

现象原因怎么处理
屏幕上有榜单,采回来却是空的榜单由脚本动态渲染,静态源码里没有让 WorkBuddy 驱动浏览器打开后再读取
热度值算错了「万」「亿」单位换算规则没写清在提示词里写明 万=10000、亿=100000000,并抽查
两次采集对不上同一话题话题名写法有空格或标点差异清洗时去掉空格,统一标点后再对齐
浏览几次就被要求登录微博热搜榜对未登录访问有频次限制立即停,拉长间隔、降低频率;仍受限就改用百度热搜兜底
置顶推广条目混进了正式排名榜单顶部的推广位与自然位样式接近按「是否推广位」列单独抽出,不要参与排名统计

6.2 三条合规红线

  1. 只采公开可得部分。不登录、不绕过访问限制,不采集用户发言、转发关系等涉及个人的信息。
  2. 频率要克制。榜单变化以小时计,每小时一次足够;不要分钟级轮询。
  3. 结论要留白。热搜排名受多种因素影响,报告中应说明局限,不能把上榜直接等同于「社会共识」。

另外提醒一句:置顶与推广条目不要混进正式排名去统计。它们的位置和样式都在模仿自然条目,但性质完全不同;字段表里「是否推广位」这一列,就是留给它们的位置。

不要试图用脚本去「刷」或「制造」热搜。那已经越过数据采集的边界,属于操纵平台与误导公众,本课绝不涉及,也请同学自觉远离。

课程思政|工匠精神与严谨求实 · 一条热度值也要算准

「1.2亿」写成 120000,看着只差几个零,结论却会天差地别。数据工作里没有「大概差不多」,每个数字都要能说出它是怎么来的。把换算规则写清楚、把原文留着、把结果抽查一遍——这份较真,就是专业。

七、随堂自测(10 题)

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

已答 0 / 10 · 正确 0 —

1热搜榜数据最有价值的地方在于?

  • A. 条目数量多
  • B. 界面好看
  • C. 可以随时间连续采集,观察热度变化
  • D. 采集速度快
答案:C。单次快照价值有限,连续多期数据才能看出趋势、辨认新上榜与掉榜。

2「1.2亿」换算成数字应该是多少?

  • A. 12000
  • B. 12000000
  • C. 1200000000
  • D. 120000000
答案:D。「亿」等于 100000000,1.2 乘一亿等于 120000000。

3采集榜单时,第一列最应该记录的是?

  • A. 采集时间
  • B. 文件大小
  • C. 浏览器版本
  • D. 页面标题
答案:A。有了采集时间,同一条话题在不同时刻才能区分,也才拼得出长表与趋势。

4榜单在屏幕上能看到,采回来却是空的,最可能的原因是?

  • A. 网站禁止访问
  • B. 页面由脚本动态渲染,静态源码里没有条目
  • C. 网络断开了
  • D. 需要重新启动电脑
答案:B。动态页面要让采集工具驱动浏览器打开后再读取,这正是案例34 会专门讲的情形。

5对比两个时间点的榜单时,应该以什么为依据对齐同一条话题?

  • A. 排名
  • B. 热度值原文
  • C. 话题名
  • D. 榜单类型
答案:C。排名会整体浮动,同一话题的身份标识是话题名,对齐后再比较热度才有意义。

6换算热度值时,为什么要保留「热度值原文」这一列?

  • A. 让表格看起来更长
  • B. 原文是事实来源,换算规则有误时可以回退重算
  • C. 方便打乱排序
  • D. 为了凑够列数
答案:B。换算属于加工,原文才是原始记录;保留原文才能在规则修正时有据可依。

7微博热搜榜浏览几次后被要求登录,恰当的做法是?

  • A. 想办法绕过登录
  • B. 借用别人的账号
  • C. 只采无需登录即可看到的公开部分,必要时改用百度热搜兜底
  • D. 直接放弃整个案例
答案:C。不登录、不绕过是红线;采不到的部分就不采,或换一个结构更稳的公开榜单。

8采集频率一般建议控制在?

  • A. 每分钟一次
  • B. 每 10 秒一次
  • C. 越频繁越好
  • D. 每小时一次左右即可
答案:D。榜单以小时为变化尺度,每小时一次足够,频率过高既无意义又给对方添负担。

9两次采集时同一话题被当成了两个不同话题,最可能是?

  • A. 话题名里混入了空格或标点差异
  • B. 网络太慢
  • C. Excel 装错了版本
  • D. 电脑内存不足
答案:A。清洗时去掉首尾空格、统一标点后再对齐,才能避免「同物异名」的假重复。

10关于热搜榜的分析结论,下面哪种说法更专业?

  • A. 上榜就等于全社会一致认同
  • B. 排名受多种因素影响,结论应说明局限
  • C. 热度越高事实越可靠
  • D. 榜单可以用来左右舆论
答案:B。热搜体现的是关注度而非事实全貌,专业报告应说明数据局限,不夸大、不误导。