一、案例背景与采集目标
要给一门课配书单、要比较几个出版社同一主题的书、要统计某一年出版的经管类图书有多少——这些事都从一张图书清单开始。图书信息的字段丰富、结构规整,是练「列表页+详情页」两级采集的绝佳素材。
这一篇的示范站点是豆瓣读书的图书标签页,以「计算机」类目为例 https://book.douban.com/tag/计算机 ,标签页可以直接浏览某一类目下的书目,详情页则把书名、作者、译者、出版社、出版年、页数、定价、ISBN、评分、简介一次给全。图书数据有两个鲜明特点:一是字段多,十来个字段是常态;二是详情页结构稳定,同一家图书平台的详情页版式高度一致,特别适合批量采集。
1.1 这个案例要拿到什么
- 从豆瓣读书的标签页或分类列表页取回书名与详情页链接;
- 逐条进入详情页,取回作者、译者、出版社、出版年;
- 取回页数、定价、装帧、ISBN、评分、评价人数;
- 取回内容简介(截断处理);
- 最后按出版社或出版年做一个小统计。
1.2 这个案例的难点在哪里
| 难点 | 具体表现 | 为什么难 |
|---|---|---|
| 价格写法五花八门 | 「¥59.00」「59.00 元」「定价:59」 | 必须统一成数字,否则无法算均价 |
| 简介带标签与换行 | 网页简介里混着 HTML 标签、多余空格 | 要先去标签再去空白,不然表格很脏 |
| 译者字段经常缺失 | 外文书的译者有时单独一行,有时并入作者 | 缺失要留空,位置要固定,不能把译者塞进作者列 |
| 评分为空的条目 | 新书还没人评价 | 留空并统计缺失比例,用 0 代替会拉低均值 |
目标站点与交付产物
下表是本篇用到的真实站点。绿色是课堂可稳定复现的示范站点;橙色是延伸站点,多数有登录墙或风控,课堂上只讲结构、原理与合规边界,不教绕过。
| 项目 | 内容 |
|---|---|
| 示范站点 | 豆瓣读书 · 图书标签页(以「计算机」为例) https://book.douban.com/tag/计算机 标签列表页 + 图书详情页;列表页有书名/作者/出版社/定价/评分,详情页才有译者/页数/ISBN/简介 |
| 延伸站点 |
|
| 交付产物 |
|
| 难度 | ★★☆ 中 |
| 合规提示 | 公开书目信息可采集;简介与书评受版权保护,课堂分析可用,公开转载需授权。豆瓣等站点有反爬条款,控制频率。 |
二、数据源与字段设计
示范站点是豆瓣读书的图书标签页,以「计算机」类目为例:https://book.douban.com/tag/计算机 。标签页按类目给出列表,书名、作者、出版社、定价、评分在列表上就能取到;译者、页数、ISBN、简介要进详情页。延伸站点给出几个图书平台,其中 ISBN 是跨平台合并的天然主键。
2.1 目标站点信息
| 站点全称 | 网址 | 页面形态与接口 | 规模与角色 |
|---|---|---|---|
| 豆瓣读书 · 图书标签页 | https://book.douban.com/tag/计算机 | 标签列表页 + 图书详情页;列表页有书名、作者、出版社、出版年、定价、评分,详情页才有 ISBN、页数、译者、简介 | 中文图书书目与书评平台,按类目标签浏览,覆盖齐全 |
| 当当图书 | http://book.dangdang.com/ | 分类列表页,含定价与销量榜 | 电商图书,可补充价格与销量 |
| 国家图书馆 OPAC | http://opac.nlc.cn/ | 馆藏书目检索,字段权威 | 馆藏权威书目,可核对 ISBN |
| 孔夫子旧书网 | https://www.kongfz.com/ | 二手书列表页,含成色与价格 | 二手书行情,可作对照 |
2.2 完整字段表(15 个字段)
| 字段名 | 字段含义 | 示例值 | 口径与备注 |
|---|---|---|---|
序号 | 清单顺序 | 1 | 采集时自动生成 |
书名 | 图书主标题 | 深入理解计算机系统 | 含副标题的要完整 |
副标题 | 书名副标题 | 第 3 版 | 没有就留空 |
作者 | 著者 | Randal E. Bryant;David O'Hallaron | 多作者用分号分隔 |
译者 | 译者 | 龚奕利;贺莲 | 没有译者就留空,不要并入作者 |
出版社 | 出版机构 | 机械工业出版社 | 统一取全称 |
出版年 | 本版出版年份 | 2016 | 只要四位年份 |
页数 | 正文页数 | 737 | 只要数字 |
定价 | 标价(元) | 139.00 | 去掉货币符号,只留数字并保留两位小数 |
装帧 | 装帧方式 | 平装 | 精装 / 平装,避免不同版本混采 |
ISBN | 国际标准书号 | 9787111544937 | 跨平台合并的唯一标识 |
评分 | 平台评分 | 9.8 | 保留一位小数,无评分留空 |
评价人数 | 评价条数 | 2646 | 只要数字,无则留空 |
简介 | 内容简介(截断) | 本书从程序员视角讲解计算机系统…… | 截断到前 100 字,去标签 |
详情页链接 | 图书详情页地址 | https://book.douban.com/subject/26912767/ | 完整可点开 |
2.3 三条字段口径要点
- 定价只留数字。把「¥」「元」「定价:」这些前缀后缀全部去掉,统一保留两位小数。这样后面才能算「平均定价」「各出版社均价」,否则一列文字根本没法统计。
- 译者单独一列。不要图省事把译者接到作者后面。字段一旦混装,后面统计「译者数量」「某译者的译作」就做不了。留空是可以的,混装是不行的。
- ISBN 是跨平台合并的主键。同一本书在豆瓣、当当、图书馆 OPAC 里可能书名写法不一,但 ISBN 一致。要做跨源价格对比或去重,按 ISBN 对齐最稳。
AI 助手小贴士|图书平台常有「精装」「平装」两个版本,定价不同。先让 WorkBuddy 说明它取的是哪一个版本,避免把两个版本的字段混在一起。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:这本书的精装版和平装版定价不一样。请说明你采集的是其中哪一个版本,并在字段表里加一列「装帧」。
课程思政|科技自立自强 · 把重复劳动交给机器
做一份书单,最费时间的从来不是判断「哪本书值得读」,而是一行行抄书名、作者、定价。把这些机械动作交给机器,人的时间就能用在真正需要判断的地方。工具在进步,但前提是你得知道要什么——谁能把需求讲清楚,谁就能把自己从重复劳动里解放出来。
三、零代码操作步骤
工具与技能|先看清三个角色,再动手
本篇全程零代码:你把要求说清楚,AI 去执行,你负责验收。三个角色分工如下——浏览器技能指的是腾讯开源的 BrowserSkill,它能让 AI 直接操作你电脑上真实的浏览器(可复用已经登录的状态),自己开一个独立窗口干活,不打扰你正在看的网页;遇到验证码、登录或确认弹窗,它会停下来交给你本人处理。
| 角色 | 负责什么 | 在本案例里具体做什么 |
|---|---|---|
| 你 | 确认字段清单、验收结果、清洗与合规把关 | 盯字段清单、核对结果、处理异常(如验证码) |
| WorkBuddy | 接中文指令:探字段 → 批量采 → 清洗 → 导出交付物 | 拆解本篇的采集任务并跑完全量、产出交付物 |
| 浏览器技能 BrowserSkill | 以真实浏览器打开页面:跑脚本渲染、滚动 / 翻页 / 点开详情、截图留证;可复用本机浏览器已登录状态,遇到验证码或登录弹窗会停下来交给你处理 | 打开图书标签页,再逐本进详情页补字段 |
五步操作主线(全课程统一,每一篇都按这个顺序推进):
- 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
- 现场踩点(浏览器技能 BrowserSkill):打开
https://book.douban.com/tag/计算机,把某一类目(例如「计算机」)的标签列表页地址复制下来。 - 小样试采(WorkBuddy):先采列表级字段(书名、作者、出版社、定价)20 本,验证链接对不对。
- 核对与清洗:① 定价是不是纯数字;② ISBN 是不是 13 位;③ 译者位置对不对(很多书没有译者,别错位)。
- 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
用浏览器技能 BrowserSkill 打开 https://book.douban.com/tag/计算机(豆瓣读书 · 图书标签页(以「计算机」为例)),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。- 先在豆瓣读书上选好类目,打开「计算机」标签页
https://book.douban.com/tag/计算机,把列表页地址复制下来。 - 新建对话,给出列表页地址与分类。例如「按「计算机」标签的图书列表,采前 20 本」。
- 先采列表级字段。让它先把列表页上的书名、作者、出版社、定价取回,验证链接对不对。
- 再进详情页。说「请逐条进入详情页,补采译者、出版年、页数、装帧、ISBN、评分、评价人数、简介」。
- 小批核对。只做前 5 本,重点看定价是不是纯数字、简介有没有带标签、译者位置对不对。
- 放开全量。确认后说「按同样口径采集全部 20 本,间隔 1 秒」。
- 做统计。让它按出版社、出版年分组计数,各出一张小表。
- 导出并归档。导出为
books_计算机_20261008.xlsx,完整简介另存文本。
请以详情页的书名为准,用详情页链接和列表页做关联,确保每本书只出现一条记录。四、提示词模板与追问技巧
下面这段提示词把真实站点地址与 15 个字段按编号列全,可以直接复制使用。
请帮我完成一个图书信息采集任务。
【目标站点】豆瓣读书,网址 https://book.douban.com/
【目标】「计算机」标签下的图书列表页
【范围】列表前 20 本书
【采集方式】先采列表页,再逐本进入详情页补字段
【需要字段】按这个顺序:
1. 序号(从 1 开始)
2. 书名(完整)
3. 副标题(没有就留空)
4. 作者(多位用分号分隔)
5. 译者(没有就留空,不要并入作者)
6. 出版社
7. 出版年(四位数字)
8. 页数(纯数字)
9. 定价(去掉¥和「元」,只留数字,保留两位小数)
10. 装帧(精装 / 平装)
11. ISBN(13 位数字)
12. 评分(保留一位小数,没有就留空)
13. 评价人数(纯数字,没有就留空)
14. 简介(只取前 100 字)
15. 详情页链接(完整网址)
【执行要求】
1. 先只采前 5 本给我核对,确认后再采全部 20 本
2. 简介去掉 HTML 标签和多余换行
3. 每条之间间隔 1 秒以上
4. 结果导出为 books_计算机_20261008.xlsx
5. 完整简介另存 books_简介_20261008.txt,按序号对应
4.1 三条常用追问指令
追问一(清洗定价):
「定价」列里还有「元」「¥」这些符号,请全部去掉,
只保留数字并统一保留两位小数。
追问二(去标签):
「简介」里混进了 HTML 标签和多余空行,
请去掉标签、合并连续空白,每条只保留前 100 字。
追问三(补评分):
第 6、9 本的评分是空的,请回到详情页确认;
如果确实还没有评分,请留空,不要填 0。
清单建好之后,最有价值的一步是做统计。让 WorkBuddy 按出版社和出版年各来一张小表,你立刻就能看出这个分类里哪个出版社出得最多、哪一年是出版高峰。
请基于清洗后的清单再给我三张小表:
1. 按「出版社」分组统计图书数量,降序排列;
2. 按「出版年」分组统计图书数量;
3. 计算平均定价(注意只用有定价的条目)。
AI 助手小贴士|统计之前先让 AI 报一次「缺失情况」:评分缺几本、定价缺几本、译者缺几本。缺失比例太大,统计结论的可靠性就要打折扣。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请统计这份清单里评分、定价、译者、ISBN、页数各有多少条是空的,并给出缺失比例。
五、结果核对、清洗与保存
下面是 WorkBuddy 从豆瓣读书返回的结果样例(节选。书目与 ISBN 取真实条目形态作示例,页数、定价与评分仅供参考,实际以详情页为准):
| 书名 | 作者 | 译者 | 出版社 | 出版年 | 页数 | 定价 | ISBN | 评分 |
|---|---|---|---|---|---|---|---|---|
| 深入理解计算机系统 | Randal E. Bryant;David O'Hallaron | 龚奕利;贺莲 | 机械工业出版社 | 2016 | 737 | 139.00 | 9787111544937 | 9.8 |
| 算法导论(原书第 3 版) | Thomas H.Cormen;Charles E. Leiserson;Ronald L. Rivest;Clifford Stein | 殷建平;徐云;王刚;刘晓光;苏明;邹恒明;王宏志 | 机械工业出版社 | 2012 | 780 | 128.00 | 9787111407010 | 9.3 |
| 统计学习方法(第 2 版) | 李航 | 清华大学出版社 | 2019 | 464 | 98.00 | 9787302517276 | 9.3 | |
| 流畅的Python | [巴西] 卢西亚诺·拉马略 | 安道;吴珂 | 人民邮电出版社 | 2017 | 628 | 139.00 | 9787115454157 | 9.4 |
5.1 四步清洗,一句话一条
① 定价转数字:
请把「定价」列里的「¥」「元」「定价:」全部去掉,
只保留数字,统一保留两位小数。
② 简介去标签:
请把「简介」列里残留的 HTML 标签、转义字符、连续空行去掉,
每条只保留前 100 字,末尾加「…」。
③ 缺失留空:
请把「译者」「评分」「评价人数」里的空值保持为空,
不要填 0,也不要填「暂无」。
④ 补充字段:
请把「ISBN」列规范成 13 位纯数字,并新增一列「版本」,
如果页面上写了「第 3 版」就填进去,没有就留空。
5.2 按出版社或年份做统计
这一步是图书清单区别于普通清单的地方——它天然适合做归类和比较。下面三条指令按需取用。
请给我这三张统计表:
1. 按「出版社」分组,统计图书数量,降序排列;
2. 按「出版年」分组,统计图书数量,看出版高峰在哪一年;
3. 计算「有定价的条目」的平均定价,并说明参与计算的是多少本。
5.3 保存与归档
books_计算机_20261008.xlsx ← 清单主表(简介截断版)
books_简介_20261008.txt ← 完整简介,按序号对应
books_统计_20261008.xlsx ← 出版社 / 出版年 / 均价三张小表
books_20261008_log.txt ← 采集日志:分类、页数、条数、失败项
AI 助手小贴士|如果同一本书在列表里出现两次(不同版本),去重时别只看书名,要带上「ISBN + 出版社 + 出版年」,否则会把不同版本误删。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请按「ISBN + 出版社 + 出版年」联合去重,告诉我删掉了哪几条,其余条目保持不变。
课程思政|工匠精神与严谨求实 · 统计结论要能倒推回明细
当你写「这批书籍平均定价 88 元」时,要能立刻回答两件事:用的是哪几条数据、有没有把缺定价的书算进去。做数据的人要养成一个习惯——每一个统计数字背后,都有一条能倒推回原始明细的路径。这样你的结论才经得起别人追问。
六、常见问题与合规红线
6.1 五个高频问题
| 现象 | 原因 | 怎么处理 |
|---|---|---|
| 同一本书出现两条记录 | 精装 / 平装两个版本各一条 | 加一列「装帧」,或按 ISBN + 出版社 + 出版年去重 |
| 简介里全是 HTML 标签和空格 | 网页源码直接带标签 | 要求去标签、合并空白、截断到 100 字 |
| 定价算不出平均值 | 定价列混着「元」「¥」等文字 | 清洗成纯数字、统一两位小数后再算 |
| 译者跑到作者列里 | 页面把译者写在作者同行 | 拆成两列,译者单独字段,缺就留空 |
| 评分全是空的 | 该书尚无评价 | 留空并统计缺失比例,不要填 0 |
6.2 三条合规红线
- 只采公开的图书信息。书名、作者、出版社、定价、评分、简介都是平台公开展示的信息,可以用于选书比价;不要去破解会员内容或付费电子书。
- 简介有分寸。简介是出版社发布的宣传信息,用于判断相关性可以;整段搬运到自己的公众号或作业集对外传播就越界了,本案例只取前 100 字。
- 控制频率。豆瓣等图书平台通常对高频访问敏感,请求之间留足间隔,一旦被限速就停下来,不要反复冲击。
课程思政|科技自立自强 · 数据能力,是一种新素养
从一本本抄书单,到几分钟生成一张可统计、可比价的清单,变化的不是勤奋,而是方法。掌握这种「把需求说清楚、把结果验准确」的能力,你在任何行业都能比别人更快地把杂乱信息变成可用结论。这既是效率,也是一种面向未来的基础素养。
七、随堂自测(10 题)
点击选项即可判分,答错的题会立刻显示解析。
1图书清单里,「定价」这一列要做成什么形式才方便统计?
- A. 去掉货币符号,只留数字并统一两位小数
- B. 保留「¥59.00」原样
- C. 统一写成「59 元」
- D. 按价格区间写成文字
2外文书的译者信息,应该放在哪里?
- A. 接到作者后面,用空格隔开
- B. 放在书名里
- C. 单独设一列「译者」,没有就留空
- D. 直接丢掉
3豆瓣读书的列表页一般拿不到、必须进详情页才能得到的字段是?
- A. 内容简介与 ISBN
- B. 书名
- C. 详情页链接
- D. 出版社
4统计平均定价时,有 3 本书没有定价数据,正确处理是?
- A. 把这 3 本按 0 元算进去
- B. 只用有定价的条目计算,并说明参与计算的本数
- C. 干脆不做这个统计
- D. 给这 3 本随便估一个价
5去重时,下面哪个依据最可靠?
- A. 只看书名
- B. 只看定价
- C. 只看出版社
- D. ISBN + 出版社 + 出版年联合判断
6清单里「评分」列为空,最合理的处理是?
- A. 填 0 保证列表整齐
- B. 填「暂无」
- C. 留空,并统计缺失比例
- D. 删掉这一列
7把图书清单按出版年分组计数,最直接的用途是?
- A. 让表格变长
- B. 看出这个分类的出版高峰在哪一年
- C. 减少采集条数
- D. 提高评分
8简介里混进 HTML 标签和大量空格,最该做的一步是?
- A. 原样保留
- B. 手动一本本删
- C. 先去掉标签、再合并空白,最后按约定截断
- D. 把简介整列删除
9关于图书内容的合规使用,下面哪种说法正确?
- A. 简介是宣传信息,可以整段搬去公开传播
- B. 采集公开信息用于选书比价是合理的,转发要注明来源、控制篇幅
- C. 只要采集了就可以随便用
- D. 可以把付费电子书内容抓下来分享
10让 AI 在去重时优先用「ISBN + 出版社 + 出版年」而不是只看书名,主要意义是?
- A. 让表格更整齐
- B. 减少数据量
- C. 让文件更小
- D. 避免把不同版本的书误删,也避免同版书漏去重