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

一、案例背景与采集目标

买电子产品最让人纠结的就是价格:同一款机型,今天「秒杀价」4999,明天可能回到 5499,叠加不同的券又能差出好几百。如果能连续几天把价格记下来,就能看出「什么时候下手最划算」。这就是价格监测——把分散在不同时间点的价格,变成一条能比较、能画图的序列。

示范站点选京东搜索页,搜「笔记本电脑」的结果页,网址 https://search.jd.com/Search?keyword=笔记本电脑。它是「搜索列表页采集」里难度较高的一种:商品标题、店铺、评论数在列表 HTML 里能直接看到,而价格是异步加载的——页面先显示占位符,过一会儿才由脚本把真实价格填进去。能不能等到价格出现再取数,是本案例的第一个坎。

1.1 这个案例要拿到什么

1.2 三个绕不开的难点

难点页面上的样子解决思路
SKU 与 SPU 分不清同一款机型有多个 SKU(不同内存、颜色)只认 SKU(商品链接里的那串数字),SPU 是「型号」,两者不要混在一列
价格异步加载价格位置先显示「¥--」,几秒后才出现数字要等页面加载完成再取;或读取页面里已经写入的价格变量
促销价不等于到手价「秒杀价 4999」旁边还有「满 5000 减 300」「领券再减」记录当前价与促销标签,到手价需叠加计算并注明「含券」与否
翻到第 3 页要登录前 2 页能看,继续翻会弹出登录提示课堂只采前 2 页做演示,不绕过登录、不伪造身份
本案例的重点是「价格口径」。标题、店铺名基本是照抄;能不能分清「当前价、划线价、到手价」三种价格,并把 SKU 认准,才是真本事。
先划边界:京东反爬严格,本案例课堂只采前 2 页做演示,明确不批量、不绕过风控。遇到验证码或登录墙,立即停止,改用它站做对照分析。

课程思政|数据安全与法治素养 · 能打开,不等于能随便采

电商页面人人都能打开,但这不代表可以把整站数据成批搬走。平台的用户协议、robots 约定、著作权与个人信息保护,都是采集前要先想清楚的红线。本案例只采公开可见的商品信息,只采前 2 页,只用于课堂分析——把边界守住,技术才有意义。

目标站点与交付产物

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

项目内容
示范站点京东 · 商品搜索(笔记本电脑)
https://search.jd.com/Search?keyword=笔记本电脑
列表 HTML 带商品,价格是异步加载的;反爬严格,翻到第 3 页即要求登录,课堂只演示前 2 页
延伸站点
  • 慢慢买 · 历史价格 https://www.manmanbuy.com/(入口:首页搜索框输入商品名或粘贴商品链接,看历史价格曲线)
  • 什么值得买 · 好价 https://www.smzdm.com/(比价与好价社区,可对照「促销价 vs 原价」的口径)
  • 中关村在线 · 笔记本 https://detail.zol.com.cn/notebook/(数码参数站,型号与参数比电商页更规整,适合做字段补充)
交付产物
  • 数据明细.xlsx(当前价/划线价/到手价三列并排,含采集时间)
  • 数据明细.html(可按价格排序,自营标色)
  • 数据看板.html(价格分布 + 二次采集的价格变化 + 自营占比)
  • 技能压缩包(异步价格采集 + 促销价与到手价换算规则)
难度★★★ 高
合规提示京东反爬严格,课堂只采前 2 页做演示,明确「不批量、不绕过风控、不伪造登录态」;隔几天再采一次做价格曲线是合法且有趣的分析;数据只用于课堂学习,不做商业比价分发。

二、数据源与字段设计

数据源就一个页面:京东搜索页,地址 https://search.jd.com/Search?keyword=笔记本电脑。关键词写在网址参数里(keyword= 后面),换词就换一批商品;翻页靠页码参数控制。

2.1 站点信息

项目内容
站点全称京东(jd.com),自营 + 第三方店铺(POP)混合的电商平台
示范网址京东搜索页(关键词:笔记本电脑)
页面形态搜索列表页:商品标题、店铺、评论数等在 HTML 中可见,价格由脚本异步加载
关键词入口网址参数 keyword= 后跟关键词;翻页用页码参数
规模说明一个热门关键词通常返回数千条商品,分页展示,每页数十条
访问约束反爬严格、部分页面需登录;课堂只采前 2 页并低频访问(间隔 2 秒以上)

2.2 延伸站点(只讲结构与合规边界)

站点网址教学用途
拼多多https://mobile.yangkeduo.com/移动端动态渲染,可讨论页面形态差异
苏宁易购搜索https://search.suning.com/笔记本电脑/结构较规整,可作中等难度对照
慢慢买(历史价格)https://www.manmanbuy.com/专门的比价与历史价格站,正好对应本案例的「价格序列」

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

价格类字段一律数值 + 原文成对出现,方便回溯。下表是京东搜索列表页能稳定取到的字段。

字段名字段含义示例值口径与备注
SKU编号商品最小销售单元编号10086419244商品链接里的那串数字,是唯一标识,按文本存
商品标题商品名称原文联想拯救者Y7000P 笔记本电脑 16G 512G保持原文,促销前缀不要混进来
当前价页面当前展示价4999.00纯数字,单位元;注意这是促销期内价格
当前价原文当前价页面写法¥4999.00留档,便于回溯核对
划线价参考价或建议零售价5999.00纯数字;划线价不是实际成交价
店铺名销售店铺名称联想京东自营旗舰店以页面显示为准
是否自营是否为京东自营自营取值为「自营」或「非自营」
店铺类型店铺性质京东自营如「京东自营」「POP 第三方」
商品链接商品详情页地址https://item.jd.com/10086419244.html完整网址(示例商品),能直接点开
评论数评价条数120753去掉「+」与「万」后换算成整数
好评率好评占比98只存数字;页面写「98%」则存 98
促销标签页面上的活动标记秒杀;满5000减300多个标签用「;」连接,没有留空
所在地区配送或发货地区广东 广州市影响运费与到货时间
库存状态是否有货有货如「有货」「无货」「仅剩 3 件」
采集时间本次采集的时点2026-10-08 20:15:30价格随时变,必须记时点

2.4 SKU 与 SPU 的区别

口径说明
SPU(Standard Product Unit,标准化产品单元):
  描述「这是什么型号」,例如「联想拯救者 Y7000P」。
  它是商品的概念,不直接对应一个可下单的链接。

SKU(Stock Keeping Unit,库存量单位):
  描述「具体是哪一个可购买的规格」,例如
  「Y7000P / 16G / 512G / 灰色」,对应一个唯一的商品链接与价格。
  商品链接 item.jd.com/10086419244.html 里那串数字就是 SKU(示例商品,编号 10086419244)。

为什么价格监测必须按 SKU 采:
  同一款 SPU 下,16G 版和 32G 版价格不同、库存不同;
  只按 SPU 记录会把不同价格混成一条,结论就错了。

2.5 三种价格别搞混

价格名称含义能不能当成交价
当前价页面当下展示的售价接近成交价,但可能还要叠加券
划线价参考价 / 建议零售价,常被画一道横线不能,它是用来对比的标价
到手价叠加优惠券、满减之后实际应付这才是真实成交参考,需自己算清楚

AI 助手小贴士|京东列表页里,有些字段在 HTML 中、有些由脚本异步加载。让 AI 先把「能稳定取到的字段清单」和「示例值」列出来,你确认后再开采。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请先打开京东搜索页(关键词:笔记本电脑),把列表里每个商品能稳定取到的字段名和示例值列成一张表,并标注哪些字段是异步加载的,先不要批量采集。

三、零代码操作步骤

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

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

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

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

  1. 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
  2. 现场踩点(浏览器技能 BrowserSkill):打开京东搜索结果页,让它「先看一眼」:列出能采到的字段与示例值,并标出哪些是异步加载的。
  3. 小样试采(WorkBuddy):只采前 3 条,重点看当前价、划线价、评论数、好评率四列。
  4. 核对与清洗:① 价格拿到的是不是空值或占位符(要等加载完成再取);② 每条 SKU 编号与商品链接里的数字一致吗;③ 促销标签有没有单独成列。
  5. 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
起手一句话(可直接复制):用浏览器技能 BrowserSkill 打开 https://search.jd.com/Search?keyword=笔记本电脑(京东 · 商品搜索(笔记本电脑)),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。

本案例全程在 WorkBuddy 里用中文对话完成,不写一行代码。

  1. 新建对话,粘贴「采集任务提示词」(见下一节),把京东搜索页网址原样复制进去。
  2. 让它先「看一眼」。说「先打开这个页面,把每个商品能采到的字段名和示例值列出来,标出哪些是异步加载的,先不要采集」。
  3. 先采 3 条试水。只采前 3 条,重点检查当前价、划线价、评论数、好评率四列的清洗结果。
  4. 等到价格出现再取数。如果价格拿到的是空值或占位符,说「请等页面价格加载完成后再读取,不要取占位符」。
  5. 核对 SKU。说「请确认每条记录的 SKU 编号与商品链接里的数字一致,不一致的请标出」。
  6. 放开到前 2 页。确认无误后说「请采集前 2 页的全部商品,按 SKU 去重后合并」。
  7. 导出并命名。说「导出为 Excel,文件名 ecom_jd_笔记本电脑_20261009.xlsx」。
每一步都要先看结果再做下一步。价格若取到占位符就整页作废,宁慢勿错。

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

下面这段可以直接复制。三个要点:真实网址写全、字段编号列清、价格口径写死。

提示词
请帮我完成一个京东商品与价格监测任务。
【目标页面】京东搜索页,网址:https://search.jd.com/Search?keyword=笔记本电脑
【搜索关键词】笔记本电脑
【采集范围】搜索结果前 2 页;先只采前 3 条给我验证
【需要字段】按这个顺序,价格类字段都要「数值 + 原文」:
  1. SKU 编号(商品链接里的数字,按文本存)
  2. 商品标题(保持原文,不要带促销前缀)
  3. 当前价(纯数字,单位元,两位小数)
  4. 当前价原文(页面上的写法,如 ¥4999.00)
  5. 划线价(纯数字,单位元;没有就留空)
  6. 店铺名
  7. 是否自营(只能填「自营」或「非自营」)
  8. 店铺类型(如「京东自营」「POP 第三方」)
  9. 商品链接(完整网址,https://item.jd.com/… 这种)
  10. 评论数(整数,去掉「+」,有「万」乘 10000)
  11. 好评率(只存数字,页面「98%」就存 98)
  12. 促销标签(多个用「;」连接,没有留空)
  13. 所在地区
  14. 库存状态(有货/无货)
  15. 采集时间(格式 2026-10-08 20:15:30)

【执行要求】
  - 价格是异步加载的:请等页面价格加载完成后再读取,读到「¥--」这类占位符就重试,不要直接写入
  - 当前价是促销期内价格,请另用一列「促销标签」记录活动,不要把促销价当成长期价格
  - 每条记录必须带采集时间;同一批 SKU 以后重复采集时,写成新记录追加,不要覆盖旧记录
  - 只采前 2 页,控制频率(每次请求间隔 2 秒以上),出现验证码或要求登录就立即停止并告诉我
  - 我确认 3 条样例后,再采集前 2 页全部商品
  - 导出为 Excel,文件名 ecom_jd_笔记本电脑_20261009.xlsx

4.1 三条常用追问指令

追问指令
追问一(价格口径):
请把「当前价」「划线价」两列并排给我看,
逐条说明它是不是促销价、有没有叠加券;
如果页面还有「到手价」相关的券,请单独列出来,不要直接算进当前价。

追问二(异步加载核对):
请检查每一条的当前价是否为真实数字,
凡是空值或占位符(如 ¥--)的,请重新等待页面加载后再取一次,
并告诉我哪几条曾经取到过占位符。

追问三(追加快照):
请保留上一次的采集结果不动,
把这次采到的价格作为新的一批追加进去,
并在文件里加一列「采集时间」,方便我做价格随时间变化的对比。
不要让 AI「自己判断」价格口径。当前价、划线价、到手价必须一条条写清规则,促销标签单独成列——写得越死,结果越稳。

AI 助手小贴士|异步加载的价格最容易取到占位符。如果发现某几条价格是空的,不要让它「估一个」,先问清楚是页面还没加载完,还是根本没显示。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请列出所有当前价为空或显示为占位符的商品,并说明每条的原因:是异步加载还没完成,还是页面确实没有显示价格。

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

下面是 WorkBuddy 返回的结果样例(节选,商品条目为教学示意,价格与库存随时变动,以实时页面为准):

SKU编号商品标题当前价划线价店铺名是否自营评论数好评率
10086419244联想拯救者Y7000P 笔记本电脑 16G 512G4999.005999.00联想京东自营旗舰店自营12075398
10001234567惠普暗影精灵9 笔记本电脑 i7 16G5299.006299.00惠普京东自营旗舰店自营8642097
10009876543机械革命蛟龙16K 笔记本电脑 R7 16G4599.005199.00机械革命电脑旗舰店非自营3521896
10005551234华硕天选5 笔记本电脑 R7 16G5699.006499.00华硕京东自营旗舰店自营10234099

5.1 四项必查

核对项正常表现发现问题怎么问
SKU与商品链接里的数字完全一致,无重复「第 2 条 SKU 与链接里的数字不一致,请复核」
当前价全是数字,且不低于 0;占位符已剔除「第 3 条当前价是 ¥--,请重新等待加载后再取」
评论数 / 好评率已换算成数字,「+」「万」「%」已去掉「第 1 条评论数页面写的是 10万+,请说明换算规则」
采集时间每条都有,且是同一批次时间「请给所有记录补上同一采集时间,方便追加快照」

5.2 清洗与保存

清洗指令
① 去空格:
   所有文本列去掉首尾空格与换行符。

② 统一价格:
   当前价、划线价保留两位小数;占位符一律置空并标注原因。

③ 按 SKU 去重:
   按「SKU 编号」去重,重复的保留第一条。

④ 追加快照:
   每次采集的结果单独存一份,新增「采集时间」列;
   多次采集后按 SKU + 采集时间纵向合并,形成价格序列。
文件命名
ecom_jd_笔记本电脑_20261009.xlsx         ← 当天原始结果(原样保留)
ecom_jd_笔记本电脑_20261009_clean.xlsx   ← 清洗后结果
price_history_笔记本电脑.csv             ← 多次采集纵向合并的价格序列
ecom_jd_笔记本电脑_20261009_log.txt      ← 日志:页数、条数、取到占位符的记录
把采集时间做成独立文件的一部分,是价格监测的关键。只有带上时间,多次采集的数据才能拼成曲线。

AI 助手小贴士|清洗前先另存副本。让 AI 直接改原始表,一旦口径改过头,页面原文就找不回来了。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请保留原始文件不动,另存一份副本再清洗,最后告诉我清洗前后各有多少条、删掉或置空了哪些记录。

课程思政|工匠精神与严谨求实 · 三块钱的差错,结论就反了

「¥4999.00」少看一位,或者把「划线价 5999」当成实际售价,得出的「优惠力度」就全错了。价格监测的价值在于数字可信,而可信来自逐条对照、用链接核对 SKU、把占位符剔除干净这些笨功夫。

六、常见问题与合规红线

6.1 五个高频问题

现象原因怎么处理
价格全是「¥--」或空异步加载还没完成就取数了要求「等价格加载完成后再读」,读到占位符就重试
同一款机型出现多条不同价格没按 SKU 区分,把不同规格混在一起按 SKU 编号去重并核对链接,不同 SKU 本就是不同商品
评论数出现「10万+」无法精确页面只给了近似值按原文记录并注明是区间下限,不要假装精确
翻到第 3 页弹出登录触发了京东的登录墙与风控立即停止,课堂只采前 2 页,不绕过登录
过了一会儿再采,价格变了促销价格随时调整这是正常现象;记录采集时间,把它当成价格序列的一个点

6.2 合规红线

  1. 只采前 2 页。京东反爬严格,本案例明确不批量、不绕过风控、不伪造身份。
  2. 控制频率。请求之间留足间隔(2 秒以上),不并发轰炸;出现验证码立即停手。
  3. 只用公开信息。商品标题、价格、评论数属于公开展示信息;不采买家个人信息、不做账号爬取。
  4. 用途正当。结果用于课堂比价与价格趋势分析;对外展示时注明来源与采集时间,不冒用平台名义。
「能采到」不等于「可以采」。本课考核的是「在合法合规前提下拿到能用的数据」,而不是「攻破某个平台」。遇到反爬,正确做法是换数据源做对照。

课程思政|诚信与职业操守 · 比价可以有,误导不行

价格监测常用于比价与选品,本身无可厚非。但把「划线价」当成跌幅、把「秒杀价」说成长期价格、把估算的数据当精确值发布,就是在误导他人。做数据要有操守:口径写清楚,来源标明白,不为了好看而修饰数字。

七、随堂自测(10 题)

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

已答 0 / 10 · 正确 0 —

1在京东商品列表里,识别「同一款机型的不同配置」,应该用哪个标识?

  • A. SKU 编号
  • B. SPU 名称
  • C. 店铺名称
  • D. 品牌名称
答案:A。SKU 是最小销售单元,不同内存、颜色的规格有各自的 SKU 与价格;SPU 只是型号概念,不能用来区分价格。

2列表页价格位置先显示「¥--」,过几秒才出现数字,最可能的原因是?

  • A. 价格被平台隐藏了
  • B. 必须登录才能看到价格
  • C. 价格由脚本异步加载
  • D. 网络断了
答案:C。京东列表页的价格是异步加载的,要等页面加载完成再取数,否则会取到占位符。

3页面上「秒杀价 4999 元」旁边还有「满 5000 减 300」,采集时正确的做法是?

  • A. 把 4999 当成平时价格
  • B. 把 4699 直接当作到手价写进当前价
  • C. 记录当前价 4999 与促销标签,到手价另算并注明是否含券
  • D. 取 4999 与 4699 的平均值
答案:C。当前价与到手价口径不同:促销价要连同活动标签记录,到手价需叠加券后另算,不能混着写。

4翻到京东搜索第 3 页时弹出登录,课堂上的正确做法是?

  • A. 想办法绕过登录继续翻页
  • B. 只采前 2 页做演示,不绕过登录
  • C. 多试几次直到能翻页
  • D. 伪造账号身份
答案:B。登录墙是平台的风控边界,课堂只采公开的前 2 页,绝不绕过登录或伪造身份。

5字段表里的「划线价」指的是?

  • A. 实际成交价
  • B. 历史最低价
  • C. 叠加优惠券后的到手价
  • D. 参考价或建议零售价,不是实际成交价
答案:D。划线价是用来对比的标价,并非真实成交价,把它当成售价会夸大优惠力度。

6某商品好评率页面显示「98%」,清洗后这一列应该存成?

  • A. 98
  • B. 0.98
  • C. 98%
  • D. 0.98%
答案:A。好评率统一存成百分号的数值本身(98),单位在字段说明里标明,避免同一列混入两种写法。

7「是否自营」这一列,最可靠的判断依据是?

  • A. 看店铺类型是否为「京东自营」
  • B. 看价格高不高
  • C. 看评论数多不多
  • D. 看标题长不长
答案:A。是否自营应依据店铺类型与店铺名判断,而不是靠标题或价格猜。

8某商品评论数页面显示「10万+」,正确的处理是?

  • A. 填 100000
  • B. 填 100001
  • C. 随便填一个十万左右的数
  • D. 按原文记「10万+」并注明这是区间下限
答案:D。「10万+」是近似区间下限,不能当成精确值;保留原文并注明,才不误导读者。

9关于京东的反爬机制,本课的态度是?

  • A. 研究如何绕过验证码
  • B. 控制频率、只采公开前 2 页,遇到风控立即停止
  • C. 用代理批量突破
  • D. 伪造登录态继续采
答案:B。合规是底线:控制频率、只采公开页面,遇到验证码或登录墙立即停止。

10把同一批 SKU 隔几天再采一次,最大的价值是?

  • A. 凑够表格的行数
  • B. 提高商品的好评率
  • C. 画出价格随时间变化的曲线,帮助判断购买时机
  • D. 让文件更大
答案:C。单次价格只是快照,多次采集并按时间拼接,才能看出价格趋势、判断合适的购买时机。