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

一、案例背景与采集目标

我们从今天开始做一件很实用的事:把网页上公开的信息,整整齐齐地搬进一张表格里。这件事就叫网络数据采集。

第一个案例直接上真站点:广州城市理工学院 · 校园新闻网,网址 https://www.gcut.edu.cn/xyxw_183/list.htm。这是学校对外发布校园新闻的公开栏目,全站新闻按时间倒序排列,一页 16 条,一共 955 页,最早能追到 2006 年。

1.1 为什么第一个案例挑这个站点

1.2 这个案例要拿到什么

做完这一篇,你会得到一张 一万五千多行的校园新闻明细表,一行一条新闻,字段固定为下表那 20 个(字段表见第二节)。在此基础上顺手就能做出三个统计:逐年、逐月的发布量、署名记者的发稿量排名、浏览量 Top100 的热门稿件。

1.3 站点结构速查(动手前先认识它)

部位长什么样我们从中取什么
列表页网址形如 /xyxw_183/list.htm、/xyxw_183/list2.htm、list3.htm …标题、详情页链接(网址里带归档年月日)
列表项每条新闻包在 <li class="news-list-section-item"> 里该条新闻的三个字段一次取全
下一页页脚 <a class="next" href="…">判断还有没有下一页
总页数<em class="all_pages">955</em>告诉我们一共要翻多少页
详情页/2026/0930/c183a214619/page.htm 这种带年月日的长网址正文、发布时间、浏览量、署名
浏览量详情页上写着 10,但那是占位符真实数值要单独问站点的计数接口
署名正文开头 本网讯(记者 温苗苗)记者姓名

1.4 这个案例的难点在哪

难点具体表现对策
两级抓取列表页只有标题和链接,正文在详情页先从列表页把上万条链接收齐,再逐条进详情页,两级分开做
相对地址陷阱详情页链接写作 /2026/0930/c183a214616/page.htm,不带域名必须拼上 https://www.gcut.edu.cn 补成绝对地址,否则被判成站外链接丢掉
浏览量是假的详情页 HTML 里那个 10 对每篇文章都一样真实数字要带着这篇的网址去问计数接口,接口见第二节
署名格式很乱全角括号、半角括号、全角冒号、两个人挤在一起,还有写成部门的用一套解析规则逐类处理,并把「原文」和「解析结果」两个字段都留着
近千页要跑很久955 页列表加一万多条详情,中途断网就白跑要求带断点续跑:已经采过的自动跳过,中断后重跑同一条命令即可接着做
先立三条规矩:本课只采集面向公众公开、无需登录的信息;控制请求频率(本案例并发不超过 16、每条之间留间隔);动手前先看目标网站的 robots.txt 与服务条款。这三条是红线,后面每个案例都会重复检查。

目标站点与交付产物

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

项目内容
示范站点广州城市理工学院 · 校园新闻
https://www.gcut.edu.cn/xyxw_183/list.htm
webplus 站群,纯静态分页,16 条/页,共 955 页约 1.5 万条;无反爬
延伸站点
  • 人民网 · 首页头条 http://www.people.com.cn/GB/59476/index.html(静态列表,结构规整)
  • 新华网 · 时政 http://www.news.cn/politics/(静态列表)
  • 中国新闻网 · 滚动 https://www.chinanews.com.cn/scroll-news/news1.html(静态滚动列表)
交付产物
  • 数据明细.xlsx(8 Sheet:说明/数据明细/按年统计/按月统计/记者发稿量/浏览Top100/字段字典/数据质量)
  • 数据明细.html(可筛选/排序/分页/导出的单页)
  • 数据看板.html(发布量趋势 + 年度对比 + 记者发稿量 + 标题关键词)
  • 技能压缩包(换一所 webplus 学校的网址即可复用)
难度★☆☆ 低
合规提示校园公开新闻属学校对外宣传信息,可采集;仍应控制频率(并发 ≤16、加延时),注明数据来源与采集日期。

二、数据源与字段设计

目标站点:广州城市理工学院 · 校园新闻网,网址 https://www.gcut.edu.cn/xyxw_183/list.htm。

项目内容
站点名称广州城市理工学院 · 校园新闻网
入口网址https://www.gcut.edu.cn/xyxw_183/list.htm(翻页为 /xyxw_183/list2.htm …)
站点类型webplus / 苏迪科技 站群,服务端渲染的静态列表页,无需登录、无验证码
实际规模列表 955 页,新闻明细 15,268 条,覆盖 2006–2026 年
延伸站点同一套建站系统的其他高校 / 政府网站,把栏目编号换掉就能复用同一套字段与脚本

2.1 先定字段,再动手

很多人一上来就说「帮我把这个网站爬下来」,结果拿回一张字段乱七八糟的表。正确顺序是:先把要哪些列想清楚、列成清单,再交给 WorkBuddy。

2.2 完整字段表(20 个字段)

下表就是本案例的验收标准。其中前 6 个来自列表页与详情页原始数据,其余是清洗阶段派生出来的分析字段——派生字段看着多,其实都是「日期拆开、署名拆开」这两种操作的产物。

字段名字段含义示例值口径与备注
序号按发布时间倒序的编号1采集后统一重排,保证可追溯
标题新闻标题原文我校举办2026年“科技学术季——实验室开放日”活动取自列表页 <a title>,不要改写、不要截断
详情页地址详情页完整网址https://www.gcut.edu.cn/2026/0930/c183a214619/page.htm相对地址必须补成绝对地址
链接类型站内 / 微信 / 其他站内区分本校站点稿与跳转微信公众号的转发稿
网址归档日期详情页网址里的年月日2026-10-14取自网址 /2026/1014/ 这一段,可能比发布时间早 1 天
发布时间详情页公布时间2026-10-15article-time,与网址归档日期可能差 1 天
发布日分析用基准日期2026-10-15取发布时间,缺失时回退网址归档日期
发布年份由发布日派生2026年度统计用
发布月份由发布日派生10月度统计用
年月由发布日派生2026-10做透视表用
星期由发布日派生周四观察校园新闻的发布节律
浏览量真实阅读量69走计数接口取值;详情页上的 10 是占位符,不可信
是否有署名正文有无记者署名是依据是否匹配到「本网讯(记者…)」
署名原文括号内原文记者 温苗苗留着供人工复核解析是否正确
记者姓名解析出的姓名温苗苗多人用「、」连接
署名人数一篇稿件的署名人数1多人合作稿计为 2 人及以上
首位署名署名里的第一位温苗苗做发稿量排名时以首位为准
标题字数标题去掉空格后的字数24过短的标题多为通知类简讯
日期差发布时间 − 网址归档日期1用来验证两个日期口径的差异,正常为 0 或 1 天
采集日期本次采集的执行日期2026-10-08审计字段,便于多次采集合并

2.3 三个必须写死的口径

字段清单就是验收标准。采集做完,你就拿这张表逐列对照:列名对不对、每列内容像不像样、有没有整列是空的。

AI 助手小贴士|把「需求说清楚」是零代码采集的核心技能。字段名、条数、格式这三样说得越具体,AI 一次做对的概率越高。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:我要采集一个校园新闻列表,请先告诉我:为了让采集结果准确,我需要向你提供哪些信息?

课程思政|数据安全与法治素养 · 先看规则,再动手

采集任何网站之前先读它的 robots.txt 与用户协议,这不是「多此一举」,而是每个数据工作者的第一课。技术在手里,边界在心里——只采公开信息、不碰个人隐私、不越授权范围,才能既做成事又站得住。

三、零代码操作步骤

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

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

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

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

  1. 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
  2. 现场踩点(浏览器技能 BrowserSkill):用浏览器技能打开 https://www.gcut.edu.cn/xyxw_183/list.htm,确认三件事:每条新闻是不是包在 li.news-list-section-item 里、页脚有没有指向下一页、总页数写在哪里(em.all_pages 里那个 955)。
  3. 小样试采(WorkBuddy):先只采前 3 页列表,以及这 3 页里的详情页。十分钟内验证 20 个字段都取得到,而不是等全量跑完才发现字段错了。
  4. 核对与清洗:① 详情页地址是不是完整的 https 绝对地址;② 浏览量是不是每篇都不同(整列都是 10 就是抄了页面上的占位符);③ 署名原文与记者姓名两列对不对得上。
  5. 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
起手一句话(可直接复制):用浏览器技能 BrowserSkill 打开 https://www.gcut.edu.cn/xyxw_183/list.htm(广州城市理工学院 · 校园新闻),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。

下面是在 WorkBuddy 里完成本案例的完整流程。全程不需要你写一行代码,但每一步都要动脑核对。

  1. 打开 WorkBuddy,新建一个对话,粘贴下一节的「采集任务提示词」(网址就用 https://www.gcut.edu.cn/xyxw_183/list.htm)。
  2. 先采 3 页试试水。说「先只采前 3 页列表,并只进这 3 页里的详情页,采完给我看」。这一步是为了在十分钟内验证字段都能取到,而不是等全量跑完才发现字段错了。
  3. 核对三件要命的事。① 详情页地址是不是完整的 https:// 开头;② 浏览量是不是每篇都不一样的真实数字(如果整列都是 10,说明抄了占位符);③ 署名原文与记者姓名两列是不是对得上。
  4. 追加修正指令。发现问题用大白话说,例如「浏览量整列都是 10,请改成从计数接口取真实值」。
  5. 放开全量。确认无误后说「按同样规则采集全部 955 页列表,以及所有详情页,已经采过的自动跳过」。这一步耗时较长,让它在后台跑。
  6. 导出四件套。说「把结果整理成:数据明细 Excel、可筛选的明细网页、带图表的数据看板,再把这套采集流程打包成一个可复用的技能包」。
  7. 打开文件验收。数一数总条数、抽查几行字段,再看看板上「逐年发布量」的形状是不是符合常识(比如 2020 年一般会低一些)。
整个过程里,你扮演的是提要求的人和验收的人,WorkBuddy 是执行的人。把话说清楚的能力,就是这门课要练的核心能力。

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

下面这段可以直接复制。注意三个要点:网址写全、字段按编号列清、把「浏览量走接口」和「断点续跑」交代死。

提示词
请帮我采集广州城市理工学院校园新闻网的新闻数据。

【目标站点】https://www.gcut.edu.cn/xyxw_183/list.htm
  这个站是 webplus 站群,列表页分页形式为 /xyxw_183/list2.htm、list3.htm …
  列表每条新闻在 <li class="news-list-section-item"> 里,页脚有 <a class="next"> 指向下一页。

【采集范围】先只采前 3 页列表做验证,我确认后再采全部 955 页。

【需要字段】按这个顺序:
  1. 序号(最后统一重排)
  2. 标题(保持原文,不要改写或截断)
  3. 详情页地址(一定是完整的 https 绝对地址,不要相对路径)
  4. 链接类型(站内 / 微信 / 其他:mp.weixin.qq.com 的算微信,gcut.edu.cn 的算站内)
  5. 网址归档日期(详情页网址 /2026/1014/ 里的那段年月日)
  6. 发布时间(详情页 article-time,格式 2026-10-08)
  7. 浏览量(注意:详情页 HTML 里那个 10 是占位符!真实值请带 Referer 请求
     /_visitcountdisplay?siteId=19&type=3&articleId=文章ID 这个接口获取)
  8. 是否有署名 / 署名原文 / 记者姓名(把「本网讯(记者 张三)」括号里的原文和解析结果都留下)
  9. 采集日期

【执行要求】
  1. 先在对话里给我一张表格预览,我确认后再导出
  2. 相对地址必须用网址拼接补成绝对地址
  3. 支持断点续跑:已采过的链接自动跳过,中断后重跑同一条命令能接着采
  4. 并发不要超过 16,请求之间留间隔,不要轰炸对方服务器
  5. 导出为 Excel,文件名 campus_news.xlsx

4.1 三条常用追问指令

追问指令
追问一(浏览量不对):
  浏览量这一列现在每行都是 10,这是页面里的占位符。
  请改成请求 /_visitcountdisplay 计数接口取真实值,
  请求时必须带上这篇文章的详情页地址作为 Referer。

追问二(补全链接):
  请检查「详情页地址」这一列,凡是 /开头、没有域名的相对地址,
  一律补上 https://www.gcut.edu.cn 前缀,并去掉重复的链接。

追问三(署名解析):
  署名解析有几种情况要处理好:全角括号「(记者 张三)」、半角括号「(记者 张三)」、
  全角冒号「(记者:张三)」、以及像「记者庄 祉祎 甄诚」这种一个字姓加两个字名的情况,
  还要把「汽车与交通工程学院团学学术部」这种部门名过滤掉,不要当成记者姓名。
不要一次性提十个要求。按「先拿结果 → 再纠错 → 再扩量」的顺序分步推进,每一步都能核对,出问题也容易定位是哪一步坏的。

AI 助手小贴士|全量采集一定要先说清「断点续跑」。近千页的任务中途中断是常态,能从断点接着做,才谈得上「无人值守跑完」。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请把这个采集任务改成支持断点续跑:已经采过的链接自动跳过,把结果实时追加写入文件,中断之后我重跑同一条命令就能接着采。

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

采集到的原始结果节选(示例数据,均为真实字段形态)。这一张表就是最终要交付的明细表:

序号标题详情页地址链接类型发布时间浏览量署名原文记者姓名
1我校举办2026年“科技学术季——实验室开放日”活动https://www.gcut.edu.cn/2026/0930/c183a214619/page.htm站内2026-09-3069记者 温苗苗温苗苗
2我校组织召开2026级新生座谈会https://www.gcut.edu.cn/2026/0929/c183a214575/page.htm站内2026-09-29195记者 郭晓滨郭晓滨
3“无界纸形”2026纸艺术研讨会开幕 多校专家齐聚我校 共探纸艺术多元可能https://www.gcut.edu.cn/2026/0926/c183a214529/page.htm站内2026-09-27118记者 梁文思梁文思
4校友返校日:一场跨越二十年的重逢https://mp.weixin.qq.com/s/xxxxxxxx微信2026-09-25

说明:第 4 行是跳转微信公众号的转发稿,原链接已不可考,表中以示意地址代替;各行「发布时间」都已统一成 YYYY-MM-DD,网址里的归档日期通常与之相同或早一天。

5.1 五步清洗,一句话一条

清洗指令
① 链接补全与去重:
   把「详情页地址」里的相对地址补成绝对地址,并按该列去重,重复的只留第一条。

② 日期拆列:
   以「发布时间」为准新增「发布日」,再派生出「发布年份」「发布月份」「年月」「星期」四列。

③ 署名拆分:
   把「署名原文」解析成「记者姓名」列,多人用「、」连接;
   另外补上「是否有署名」「署名人数」「首位署名」三列。

④ 缺失标注:
   把浏览量按数值型处理,缺失的留空不要填 0;
   统计浏览量、署名的缺失条数与占比,单独写进质量说明。

⑤ 输出交付:
   先给我一张 Excel 数据明细,再生成一个可筛选排序的明细网页和一个数据看板。

5.2 这套流程最后交付四样东西

交付物内容用途
数据明细.xlsx8 个 Sheet:说明 / 数据明细 / 按年统计 / 按月统计 / 记者发稿量 / 浏览Top100 / 字段字典 / 数据质量拿去做二次分析的底表
数据明细.html可筛选、可排序、可分页、可导出的单页,数据内嵌其中不用装 Excel 也能随手查一条校园新闻
数据看板.html发布量趋势、年度对比、署名率、记者发稿量 Top、标题关键词等图表一眼看清学校几年的宣传节奏
技能压缩包把本案例的采集与生成流程打包成一个可复用技能换一所同样用 webplus 的学校,改个网址就能再跑一遍
养成固定的命名习惯:数据类型_日期.xlsx。原始结果与清洗结果各存一份,原始版本永远不覆盖——清洗出错时它是唯一能回退的事实来源。

AI 助手小贴士|核对条数时别只数「有几行」。要用列表页采到的链接集合和详情页结果的链接集合做一次比对,才能真正发现漏采和重复。

打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请把列表页采到的链接集合和详情页结果的链接集合做比对,告诉我:漏采了哪些、多采了哪些。

课程思政|工匠精神与严谨求实 · 字段对了,数据才可用

同一件事,有人交上来的表「列名随手写、时间三种格式、链接点不开」,有人交上来的表拿来就能做分析。差距不在技术,在于肯不肯逐列核对、把细节抠到位。数据工作没有小事,一个字段口径的疏忽,可能让一整个结论翻车。

六、常见问题与合规红线

6.1 这个站点上最容易踩的五个坑

现象原因怎么处理
详情页地址点开是 404,或者被当成站外链接丢掉采到的是 /2026/0930/c183a214616/page.htm 这种相对路径要求拼上域名补成绝对地址;这条不处理,会一次性丢掉大批详情页
浏览量整列都是 10抄了详情页 HTML 里的占位符要求改成带 Referer 请求计数接口取真实值
访问列表页偶发 301 跳转站点对直连做了一层跳转保护让采集程序正常跟随重定向即可,不要手动去拼跳转后的地址
署名解析出「汽车与交通工程学院团学学术部」这种部门名页面里确实有部门署名的稿件解析规则里要准备一份机构关键词表,命中就过滤掉,只留个人姓名
跑了一大半断电 / 断网,从头再来采集程序没有做断点续跑开工前就要求:结果实时追加写入文件,已采过的自动跳过

6.2 三条合规红线(每个案例都要过一遍)

  1. 只采公开信息。校园新闻是学校对外公开的宣传信息,可以采;但不采集需要登录才能看到的内容,不采集个人隐私。
  2. 控制频率。本案例并发不超过 16、请求之间留间隔;对方 robots.txt 明确禁止的路径一律不碰。
  3. 不越权使用。采集结果用于课堂分析与学习研究;引用正文须注明来源与原文链接,不把原文整篇搬去二次发布。
遇到网站明确反爬(验证码、封 IP、法律声明)时,正确做法是停下来换数据源,而不是想办法绕过。本课的考核标准是「合规地拿到能用的数据」,不是「攻破某个网站」。

课程思政|诚信与职业操守 · 技术有边界,数据有主人

数据采集的能力越强,越要守住底线。绕过反爬、批量抓取个人信息、把别人的原创内容改头换面发布,这些都不是「技术厉害」,而是踩线。真正专业的做法是:先确认授权,再控制频率,最后如实标注来源。

七、随堂自测(10 题)

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

已答 0 / 10 · 正确 0 —

1案例01 采用的抓取结构是?

  • A. 只抓列表页就够了
  • B. 先抓详情页,再从详情页里找列表
  • C. 列表页和详情页同时抓
  • D. 两级抓取:先从列表页收齐链接,再逐条进详情页
答案:D。列表页提供入口链接,详情页提供正文、浏览量、署名,这就是典型的两级抓取。

2采回来的详情页地址是 /2026/0930/c183a214616/page.htm 这种形式,说明什么?

  • A. 是相对路径,必须拼上网站域名才是完整网址
  • B. 是绝对路径,可以直接使用
  • C. 说明这条新闻已经失效
  • D. 说明需要先登录才能访问
答案:A。以 / 开头的是相对路径,必须补上 https://www.gcut.edu.cn 才能点开,否则会被当成站外链接丢掉。

3详情页里每条新闻的浏览量都显示 10,正确的理解是?

  • A. 这是占位符,真实值要单独请求计数接口
  • B. 每篇文章阅读量都差不多
  • C. 网站把浏览量隐藏了
  • D. 需要登录才能看到真实值
答案:A。页面里的 10 是占位符,真实数值必须带着文章地址请求计数接口才能取到。

4「本网讯(记者庄 祉祎 甄诚)」这样的署名,正确的解析结果是?

  • A. 庄、祉祎、甄诚三个人
  • B. 整串当成一个人名
  • C. 庄祉祎、甄诚两个人
  • D. 解析失败,留空
答案:C。一个字姓加两个字名要合并成「庄祉祎」,再与「甄诚」分开,共两位记者。

5署名里出现「汽车与交通工程学院团学学术部」,正确的处理是?

  • A. 当成记者姓名保留
  • B. 整条记录删掉
  • C. 按机构关键词过滤掉,不当作人名
  • D. 改写成「学术部」
答案:C。这是部门而非个人,要用机构关键词表过滤掉,否则会污染记者发稿量统计。

6要求 WorkBuddy「断点续跑」,主要是为了解决什么问题?

  • A. 让采集速度更快
  • B. 让采集中断后可以从断点接着做,不用从头再来
  • C. 让结果更准确
  • D. 让文件更小
答案:B。近千页的任务中断是常态,断点续跑是「无人值守跑完」的前提。

7统计「哪个学院的稿件最多」这类问题时,最直接可用的字段是?

  • A. 标题字数
  • B. 链接类型
  • C. 发布日期
  • D. 记者姓名(配合首位署名)
答案:D。发稿量排名要靠署名解析出来的姓名(多人稿以首位为准),其余字段与作者无关。

8「链接类型」这个字段的主要作用是?

  • A. 把站内稿与跳转微信公众号的转发稿区分开
  • B. 记录链接的长度
  • C. 标记链接有没有失效
  • D. 统计网址的数量
答案:A。转发稿取不到正文与浏览量,必须单独标出来,否则会被误判为「数据缺失」。

9网址里的归档日期(形如 /2026/1014/)与页面上的发布时间不一致时,本案例的口径是?

  • A. 以网址里的归档日期为准
  • B. 以详情页发布时间为准,同时保留网址归档日期算「日期差」
  • C. 取两者的平均值
  • D. 两个都不用,重新查
答案:B。网址里的归档日期只是建站系统归档时留下的痕迹,与真正发布的时间可能差一天;以详情页发布时间为分析基准,同时保留归档日期并计算差值,便于核对两边口径。

10采集一万多条数据前,最值得先做的事是?

  • A. 直接把全量跑完再看结果
  • B. 先买一台配置更高的电脑
  • C. 先注册一个数据库账号
  • D. 先采 3 页做小样本验证,确认字段都对再放开全量
答案:D。先小样本验证,能在十分钟内发现字段与口径问题,避免全量跑完才发现方向错了。