一、案例背景与采集目标
前两个案例采的是校园新闻网,那是「讲给人听的故事」;这一篇换一个新物种:通知公告。两者最大的区别一句话就能说清:新闻的干货在正文里,公告的干货常常在附件里。一条公告的正文可能只有一句话——「具体名单见附件」,真正的数据躺在一个 .xlsx 或 .pdf 文件里。
示范站点还是我们学校,不过换到另一个栏目:广州城市理工学院 · 校务公开(也就是通知公告栏目),网址 https://www.gcut.edu.cn/tzgg/list.htm。它和案例01的校园新闻网是同一套建站系统(webplus 站群),列表页与分页写法几乎一模一样,但多出了最关键的最后一跳——从详情页再进到附件文件。
1.1 为什么公告值得单独做一课
- 公告里的数据是「办事依据」。评奖评优名单、大创立项结果、转专业审核、招标采购……你要知道自己有没有入选、报名截止到哪天,靠的都是它;
- 干货在附件,正文只是引子。一份公示的正文可能只有两百字,几十上百条名单全在一个表格附件里,只采正文等于什么也没采到;
- 它比案例01多一级链路。案例01 是「列表页 → 详情页」两级,这一篇是「列表页 → 详情页 → 附件文件」三级,重点全在文件的下载与归档上。
1.2 这个案例要拿到什么
做完你会得到三样东西:一张 615 行的公告主表(一行一条公告)、一张 附件清单表(一行一个文件,一条公告可以对应多个文件)、以及一个按「公告年月 / 公告标题 / 原始文件名」分好目录的 附件归档文件夹。换句话说:以后要查「今年的创新创业训练计划立项名单」,你不必再一条条翻网页,直接在自己的归档里搜文件名就行。
1.3 站点结构速查(动手前先认识它)
| 部位 | 长什么样 | 我们从中取什么 |
|---|---|---|
列表页 | 网址形如 /tzgg/list.htm、/tzgg/list2.htm … 一直到 list39.htm | 标题、详情页相对地址、发布日期 |
列表项 | 每条公告包在 <li class="news-list-section-item"> 里 | 标题、链接、日期三个字段一次取全 |
标题陷阱 | 列表上显示的文字末尾直接断在「…」 | 完整标题藏在 <a title=…> 属性里,必须取 title |
分页 | 页脚有 <em class="all_count">615</em> 与 <em class="all_pages">39</em> | 共 615 条、39 页、每页 16 条 |
详情页 | /2025/0620/c217a197202/page.htm,由「日期文件夹 + c217栏目号 + 文章号」拼成 | 正文、发文单位落款、附件 |
附件(PDF) | 用 wp_pdf_player 内嵌预览,真实地址在 pdfsrc 属性里 | 附件下载地址、原始文件名 |
附件(Office) | 一个图标 icon_xls.gif 配一个 <a href=…> 链接,指向 /_upload/article/files/… | 附件下载地址、原始文件名 |
原始文件名 | 藏在 sudyfile-attr 的 title 里;下载地址里是一串 UUID 名字 | 用来给下载下来的文件命名 |
1.4 三个绕不开的难点
| 难点 | 具体表现 | 对策 |
|---|---|---|
| 附件是三级跳 | 列表页只有公告链接,附件在详情页里,附件的真实地址还要再解析一层 | 分三层推进:先收公告链接 → 再进详情页找附件 → 最后批量下文件 |
| 文件名不能直接用 | 下载地址形如 /_upload/article/files/be/29/…/af1bc5c6-….pdf,一串 UUID 谁也不知道是什么 | 用 sudyfile-attr 里的原始文件名保存,否则过几天自己也认不出 |
| 有没有附件不一定 | 615 条里大部分公告正文就是全文,有的一条挂 1 个文件,有的一条挂 3 个 | 主表按公告一行、附件另立一张「附件清单表」一行一个文件,两边用公告序号关联 |
| 多栏目会重复 | 同一份公告有时同时发在「校务公开」和「招标采购」等栏目 | 用详情页地址做唯一键去重,同一份公告只留一条 |
| 最后一页怎么停 | 末页的「下一页」按钮依然在,点下去会跳空 | 用页脚的「共 615 条、尾页 list39.htm」判停,或采到页脚标记的末页自动结束 |
目标站点与交付产物
下表是本篇用到的真实站点。绿色是课堂可稳定复现的示范站点;橙色是延伸站点,多数有登录墙或风控,课堂上只讲结构、原理与合规边界,不教绕过。
| 项目 | 内容 |
|---|---|
| 示范站点 | 广州城市理工学院 · 校务公开(通知公告) https://www.gcut.edu.cn/tzgg/list.htm webplus 站群的通知公告栏目,纯静态分页、无反爬;公告是「列表页 → 详情页 → 附件」三级结构,重点在附件的下载与归档 |
| 延伸站点 |
|
| 交付产物 |
|
| 难度 | ★☆☆ 低 |
| 合规提示 | 校园公开公告可采集;招标公告里可能含联系人电话,只取公告与附件,不采集个人联系方式;附件下载要控制频率,避免影响学校服务器。 |
二、数据源与字段设计
目标站点:广州城市理工学院 · 校务公开(通知公告),网址 https://www.gcut.edu.cn/tzgg/list.htm。
| 项目 | 内容 |
|---|---|
站点名称 | 广州城市理工学院 · 校务公开(通知公告栏目) |
入口网址 | https://www.gcut.edu.cn/tzgg/list.htm(翻页为 /tzgg/list2.htm … list39.htm) |
栏目与编号 | 栏目代号 tzgg、栏目号 217,详情页形如 /2025/0620/c217a197202/page.htm |
站点类型 | webplus / 苏迪科技 站群,服务端渲染的静态列表页,无需登录、无验证码 |
实际规模 | 公告 615 条、共 39 页、每页 16 条 |
附件存放 | 真实文件放在 /_upload/article/files/… 下,以 UUID 命名 |
延伸站点 | 教育部 http://www.moe.gov.cn/、广东省教育厅 http://edu.gd.gov.cn/,以及本校站群里「招标采购」等栏目(换掉网址里的栏目代号就能复用同一套字段) |
2.1 先定字段,再动手
公告这类数据的字段设计有一个关键决定:一条公告可能挂好几个附件。如果硬把「文件名 / 类型 / 大小 / 地址」塞进公告主表的同一个单元格,后面既没法按文件筛选、也没法统计「全校一年下了多少份 PDF」。所以本案例要设计两张表:主表一行一条公告,清单表一行一个文件,用「公告序号」关联。
2.2 公告主表(15 个字段)
下表就是本案例的验收标准。前 6 个来自列表页与详情页,中间 7 个是附件的派生字段,最后 2 个是分析用的统计字段。
| 字段名 | 字段含义 | 示例值 | 口径与备注 |
|---|---|---|---|
序号 | 按发布日期倒序的公告编号 | 1 | 采集后统一重排,保证可追溯 |
标题 | 公告标题原文 | 关于第十九届“挑战杯”全国大学生课外学术科技作品竞赛推报国赛作品的公示 | 取自列表项 <a title=…> 的 title 属性;列表上显示的文字被截断了,不能直接抄 |
所属栏目 | 这条公告发布在哪个栏目 | 校务公开 | 多栏目合并时用来标明来源 |
详情页地址 | 补全后的绝对地址 | https://www.gcut.edu.cn/2025/0620/c217a197202/page.htm | 相对地址要补 https://www.gcut.edu.cn;这一列同时是去重用的唯一键 |
发布日期 | 列表页上的日期 | 2025-06-20 | news-list-section-item-time,一般与详情页 article-time 一致 |
发文单位 | 公告落款单位 | 教务处 | 从正文末尾的落款段落解析;常见「教务处 / 学生处 / 招标办 / 招生办」 |
文号 | 公文编号 | 粤教高函〔2024〕12号 | 只在转发上级文件时出现,格式不统一;解析不到就留空,不要硬编 |
附件数量 | 这条公告挂了几个附件 | 1 | 没有附件的记 0(这类公告正文本身就是全文) |
附件文件名 | 附件的原始文件名 | 关于第十九届“挑战杯”全国大学生课外学术科技作品竞赛推报国赛作品的公示.pdf | 多个用「;」分隔,取自 sudyfile-attr 里的 title |
附件类型 | 附件是什么格式 | 取值 PDF / DOC / XLS / 其他,便于分类归档 | |
附件大小 | 附件的体积 | 812 KB | 页面不提供,下载后按实际字节数(或响应头 Content-Length)补上 |
附件下载地址 | 文件的真实绝对地址 | https://www.gcut.edu.cn/_upload/article/files/be/29/09cac20f413d9f7f2c80348142f3/af1bc5c6-a89b-49af-a8be-2441aaca8813.pdf | 以 /_upload/article/files/ 开头,注意补全域名;多个用「;」分隔 |
是否含表格 | 附件或正文里有没有表格 | 是 | 有 xls/xlsx 附件,或正文含 table 元素,即为「是」 |
正文字数 | 正文去标点后的字数 | 386 | 用来区分「长文通知」与「一句话+附件」的公示 |
采集日期 | 本次采集的执行日期 | 2026-10-08 | 审计字段,便于多次采集合并 |
2.3 附件清单表(一行一个文件)
这张表是公告主表的「下钻」,也是本案例的交付重点——它才是真正记录「下载了哪些文件」的地方。
| 字段名 | 字段含义 | 示例值 | 口径与备注 |
|---|---|---|---|
公告序号 | 关联到主表的第几条 | 1 | 与主表「序号」一一对应,可回查公告 |
公告标题 | 冗余一份标题 | 关于第十九届“挑战杯”…作品的公示 | 方便在清单表里独立查看,不必回主表 |
附件序号 | 同一条公告内的第几个附件 | 1 | 一条公告有多个附件时从 1 开始编号 |
附件原始文件名 | 文件原名 | 关于第十九届“挑战杯”全国大学生课外学术科技作品竞赛推报国赛作品的公示.pdf | 来自 sudyfile-attr 的 title |
附件类型 | PDF / DOC / XLS / 其他 | 由扩展名或页面的图标判断 | |
文件扩展名 | 纯扩展名 | pdf | 统一小写,便于按类型统计 |
附件下载地址 | 文件绝对地址 | https://www.gcut.edu.cn/_upload/article/files/be/29/09cac20f413d9f7f2c80348142f3/af1bc5c6-a89b-49af-a8be-2441aaca8813.pdf | 补全域名后的完整地址 |
文件大小(字节) | 实际字节数 | 831488 | 下载得到,页面不给 |
本地保存路径 | 归档后的相对路径 | 2025-06/关于第十九届…公示/…公示.pdf | 按「公告年月/公告标题/原始文件名」组织 |
下载状态 | 成功 / 失败 / 无附件 | 成功 | 失败的记录原因,方便单独重试 |
2.4 三个必须写死的口径
- 标题以 title 属性为准。列表页为了排版把标题截断成「…」,显示出来的文字是残缺的,只有
<a>标签的 title 属性里才是完整标题。口径不写死,采回来的一整列标题都会带着省略号。 - 附件要用原始文件名保存。下载地址里的文件名是一串 UUID,一眼看不出内容;原始文件名在
sudyfile-attr的 title 里。两者都要留:地址用来下载,原名用来命名与检索。 - 文号能取就取、取不到就留空。公示类公告大多没有文号,不要为了「每行都有值」而拿日期去顶替,那会把整列数据污染成假的。
AI 助手小贴士|字段设计里最容易漏掉的一环是「一对多」。一旦一个公告对应多个附件,就要主动想到拆成两张表,否则后面全是麻烦。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:我要采集的公告可能一条挂着好几个附件,请帮我把结果拆成两张表:一张公告主表、一张附件清单表,用公告序号关联,并说明两张表分别有哪些字段。
课程思政|数据安全与法治素养 · 公开不等于可以随便采
公文挂在公开页面上,不等于里面的每一个字都能拿来用。公示类附件里常含身份证号、手机号等个人信息,这些属于法律保护的个人信息,即使能打开也不应采集与外传。判断标准不是「我能不能拿到」,而是「我该不该拿、拿了会不会给人添麻烦」。
三、零代码操作步骤
工具与技能|先看清三个角色,再动手
本篇全程零代码:你把要求说清楚,AI 去执行,你负责验收。三个角色分工如下——浏览器技能指的是腾讯开源的 BrowserSkill,它能让 AI 直接操作你电脑上真实的浏览器(可复用已经登录的状态),自己开一个独立窗口干活,不打扰你正在看的网页;遇到验证码、登录或确认弹窗,它会停下来交给你本人处理。
| 角色 | 负责什么 | 在本案例里具体做什么 |
|---|---|---|
| 你 | 确认字段清单、验收结果、清洗与合规把关 | 盯字段清单、核对结果、处理异常(如验证码) |
| WorkBuddy | 接中文指令:探字段 → 批量采 → 清洗 → 导出交付物 | 拆解本篇的采集任务并跑完全量、产出交付物 |
| 浏览器技能 BrowserSkill | 以真实浏览器打开页面:跑脚本渲染、滚动 / 翻页 / 点开详情、截图留证;可复用本机浏览器已登录状态,遇到验证码或登录弹窗会停下来交给你处理 | 打开通知公告列表与一篇带附件的公告详情页,确认附件链接在详情页的哪个位置 |
五步操作主线(全课程统一,每一篇都按这个顺序推进):
- 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
- 现场踩点(浏览器技能 BrowserSkill):打开
https://www.gcut.edu.cn/tzgg/list.htm,确认列表上的标题有没有被截断、附件(PDF / Word)出现在详情页的什么位置。 - 小样试采(WorkBuddy):先采前 2 页共 32 条公告主表,先不下附件。
- 核对与清洗:① 标题整列末尾是不是都带省略号(带了说明抄了截断文字,要改成取 title 属性);② 附件文件名与类型齐不齐;③ 发文单位与文号有没有拆成两列。
- 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
用浏览器技能 BrowserSkill 打开 https://www.gcut.edu.cn/tzgg/list.htm(广州城市理工学院 · 校务公开(通知公告)),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。下面是在 WorkBuddy 里完成本案例的完整流程。全程不需要你写一行代码,但「先小样本、再放全量」的节奏要守住。
- 打开 WorkBuddy,新建对话,粘贴下一节的「采集任务提示词」(网址就用
https://www.gcut.edu.cn/tzgg/list.htm)。 - 先采 2 页列表试水。说「先只采前 2 页、共 32 条公告,先别下附件,把公告主表给我看」。十分钟内先确认标题、日期、字段都对。
- 专盯标题有没有省略号。如果「标题」整列末尾都带着「…」,说明抄了列表上截断的文字,立刻要求「改成取 title 属性」。
- 再进详情页找附件。说「请进入这些公告的详情页,找出所有附件,把文件名、类型、下载地址列出来,先不要下载」。核对附件认识得对不对。
- 小批量试下载。说「先下载这 32 条公告的附件,保存成原始文件名」。挑几个文件点开看看,确认不是坏文件、不是登录页。
- 放开全量。说「按同样规则采完全部 39 页、615 条公告,附件全下,已经采过的自动跳过」。这一步耗时较长,让它在后台跑。
- 导出并归档。说「导出公告主表与附件清单两张表,附件按 公告年月/公告标题/原始文件名 分目录保存」。
- 打开文件夹验收。随机点开两三个目录,看文件名是不是原文、文件能不能正常打开,再核对清单表里的「下载状态」列有没有一堆失败。
四、提示词模板与追问技巧
下面这段可以直接复制。注意三个要点:网址写全、把「标题取 title 属性」和「附件两种写法」交代死、说清附件怎么命名归档。
请帮我采集广州城市理工学院「校务公开」栏目的通知公告,并下载公告里的附件。
【目标站点】https://www.gcut.edu.cn/tzgg/list.htm
这个站是 webplus 站群:
- 分页形式为 /tzgg/list2.htm、/tzgg/list3.htm …,最后一页是 list39.htm
- 列表每条公告在 <li class="news-list-section-item"> 里,日期在
<span class="news-list-section-item-time"> 里
- 注意:列表上显示的标题末尾被截断成「…」,
完整标题在 <a> 标签的 title 属性里,请取 title
【采集范围】先只采前 2 页做验证,我确认后再采全部(每页 16 条,共 615 条、39 页)。
【需要字段】公告主表一行一条公告,按这个顺序:
1. 序号(按发布日期倒序,最后统一重排)
2. 标题(取 <a> 的 title 属性,完整标题,不要用列表上截断的文字)
3. 所属栏目(校务公开)
4. 详情页地址(补成完整 https 绝对地址,不要相对路径)
5. 发布日期(2025-06-20 这种格式)
6. 发文单位(正文末尾落款,比如 教务处)
7. 文号(转发文件时才可能有,解析不到就留空,不要编)
8. 附件数量
9. 附件文件名(原始文件名,多个用「;」分隔)
10. 附件类型(PDF / DOC / XLS / 其他)
11. 附件大小(页面没有,下载后按实际字节数补)
12. 附件下载地址(/_upload/article/files/… 开头的真实文件地址,记得补域名)
13. 是否含表格(有 xls/xlsx 附件或正文含表格就填「是」)
14. 正文字数
15. 采集日期
【附件怎么找】进详情页后,附件有两种写法,两种都要认:
- PDF:<div class="wp_pdf_player"
pdfsrc="/_upload/article/files/…/xxx.pdf"
sudyfile-attr="{'title':'原始文件名.pdf'}">
- Office:<img src="/_ueditor/themes/default/images/icon_xls.gif" />
<a href="/_upload/article/files/…/xxx.xlsx"
sudyfile-attr="{'title':'原始文件名.xlsx'}">…</a>
原始文件名在 sudyfile-attr 的 title 里,
下载地址是 pdfsrc 或 href,两个都要取
【执行要求】
1. 先在对话里给我一张公告主表预览,我确认后再下载附件
2. 附件按「公告年月 / 公告标题 / 原始文件名」分目录归档
3. 附件单独存一张清单表,一行一个文件,带文件大小与下载状态
4. 并发不超过 8,每个请求之间间隔 1 秒以上,不要给对方服务器压力
5. 遇到需要登录、验证码的页面就跳过并记录,不要尝试绕过
【导出】公告主表与附件清单各一个 Sheet,文件名 gcut_notice.xlsx
4.1 三条常用追问指令
追问一(标题被截断):
公告主表里的标题很多末尾带着「…」,那是列表页显示时的截断。
请改成取 <a> 标签 title 属性里的完整标题,逐条重取一遍。
追问二(文件名要还原):
附件下载地址里是一串 UUID 文件名,完全看不出是什么内容。
请把附件保存成 sudyfile-attr 里的原始文件名;
如果原名里带「/」「:」这类不能做文件名的字符,替换成下划线。
追问三(一条公告多个附件):
有的公告挂了 3 个附件,现在只下到了第一个。
请把一条公告下的所有附件都下全,并在附件清单表里一行一个文件;
顺便给每个文件补上实际字节数和下载状态(成功 / 失败 / 无附件)。
AI 助手小贴士|遇到「看不懂下载地址」的情况,直接问 AI 这个地址的规律,通常比自己去猜快得多——webplus 站群的文件地址格式是固定的。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请告诉我 /_upload/article/files/ 这种文件地址的命名规律是什么,并且说明:为什么同一个附件,下载地址里的文件名和它真正的文件名不一样?
课程思政|工匠精神与严谨求实 · 文件名就是数据的身份证
下载几十份附件不难,难的是三个月后还能一眼找到你要的那一份。肯把文件按「年月/标题/原名」分好目录、肯把「下载状态」这一列认真填上的人,交出来的是一个能用的资料库;随手堆在一个文件夹里的人,交出来的是一堆废文件。
五、结果核对、清洗与保存
采集到的公告主表节选(示例数据,均为真实字段形态):
| 序号 | 标题 | 所属栏目 | 发布日期 | 发文单位 | 附件数量 | 附件类型 |
|---|---|---|---|---|---|---|
| 1 | 关于第十九届“挑战杯”全国大学生课外学术科技作品竞赛推报国赛作品的公示 | 校务公开 | 2025-06-20 | 校团委 | 1 | |
| 2 | 关于公示2024年度大学生创新创业训练计划项目优秀指导教师名单的通知 | 校务公开 | 2025-03-13 | 教务处 | 1 | |
| 3 | 广州城市理工学院2023-2024学年本科教学质量报告 | 校务公开 | 2024-12-09 | 教务处 | 1 | |
| 4 | 关于公示推荐申报2023年度国家级、省级大学生创新创业训练计划立项项目的通知 | 校务公开 | 2023-06-07 | 教务处 | 1 | XLS |
| 5 | 关于推荐参加广东省第六届高校(本科)青年教师教学大赛人选名单的公示 | 校务公开 | 2022-05-19 | 教务处 | 0 | — |
对应的附件清单表节选,注意第 4 条公告的附件是 Excel 表格,第 5 条公告没有附件:
| 公告序号 | 附件序号 | 附件原始文件名 | 附件类型 | 文件扩展名 | 下载状态 |
|---|---|---|---|---|---|
| 1 | 1 | 关于第十九届“挑战杯”全国大学生课外学术科技作品竞赛推报国赛作品的公示.pdf | 成功 | ||
| 2 | 1 | 附件:2024年度大学生创新创业训练计划项目优秀指导教师名单.pdf | 成功 | ||
| 3 | 1 | 广州城市理工学院2023-2024学年本科教学质量报告.pdf | 成功 | ||
| 4 | 1 | 附件:拟推荐申报2023年度国家级、省级大学生创新创业训练计划立项项目名单.xlsx | XLS | xlsx | 成功 |
| 5 | — | (无附件) | — | — | 无附件 |
5.1 五步清洗,一句话一条
① 链接补全与去重:
把「详情页地址」补成绝对地址,按该列去重,
同一份公告发在多个栏目时只留一条,并把「所属栏目」记为第一次出现的那个。
② 标题去省略号:
检查「标题」列,凡末尾带「…」的都是截断标题,
统一改回取 <a> 的 title 属性,去掉多余空格(有的标题中间夹了全角空格)。
③ 附件字段拆分:
把主表里「附件文件名 / 附件类型 / 附件大小 / 附件下载地址」按「;」拆开,
对齐成附件清单表的一行一个文件,用公告序号回连主表。
④ 类型与大小规整:
文件扩展名统一小写(XLSX→xlsx);
文件大小统一换算成字节数,再派生出「可读大小」(KB / MB)一列。
⑤ 输出交付:
先给我公告主表与附件清单两张 Excel,再生成一个可筛选的明细网页;
附件按「公告年月 / 公告标题 / 原始文件名」分目录归档。
5.2 命名与归档
gcut_notice.xlsx 公告主表 + 附件清单,两个 Sheet
gcut_notice.html 可筛选、可排序的公告明细网页
attachments/ 附件归档目录
2025-06/ 按公告年月分目录
关于第十九届挑战杯…公示/
关于第十九届挑战杯…公示.pdf
2024-12/
广州城市理工学院2023-2024学年本科教学质量报告/
广州城市理工学院2023-2024学年本科教学质量报告.pdf
download_failed.jsonl 下载失败清单(地址 + 原因),供单独重试
AI 助手小贴士|核对附件要「两个数对得上」:主表里「附件数量」这一列求和,应该等于附件清单表的行数。对不上就说明有附件漏采或重复。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请帮我核对:公告主表里附件数量列的总和,与附件清单表的行数是否一致?如果不一致,请列出哪些公告的附件数量与清单表对不上。
六、常见问题与合规红线
6.1 这个站点上最容易踩的五个坑
| 现象 | 原因 | 怎么处理 |
|---|---|---|
| 标题整列末尾都带着「…」 | 抄了列表页显示时被截断的文字 | 要求改成取 <a title=…> 属性里的完整标题 |
| 下载下来的文件名是一串 UUID,认不出内容 | 直接用下载地址里的文件名保存了 | 改成用 sudyfile-attr 里的原始文件名保存,非法字符替换成下划线 |
| 一条公告只下到了第 1 个附件 | 详情页里有多个附件块,只识别了第一个 | 要求遍历详情页里所有附件块,清单表一行一个文件 |
| 附件下载一半失败、保存成 0 字节 | 大文件超时,或触发了频率限制 | 放慢速度、失败自动重试一次,仍失败的记入清单表的「下载状态」列 |
| 「文号」这一列全是日期或者干脆是空的 | 公示类公告本来大多就没有文号,硬填就成了假数据 | 口径写死:解析不到就留空,不要用其它字段顶替 |
6.2 三条合规红线(每个案例都要过一遍)
- 只采公开信息。校务公开栏目的公告是学校主动公开的信息,可以采;但需要登录才能看到的内容一律不采,附属附件里的身份证号、手机号等个人信息即使公开也不要采集。
- 控制频率。本案例并发不超过 8、请求之间留 1 秒以上;附件多为大文件,更要放慢速度,对方
robots.txt明确禁止的路径一律不碰。 - 不越权使用。采集结果与附件只用于课堂分析与个人查阅;引用公文须注明来源与原文链接,不篡改公文内容,不把他人姓名等个人信息整理后对外发布。
课程思政|诚信与职业操守 · 公文可以下载,但不能改一个字
通知公告是有严肃效力的文件,一个日期、一个数字都关系到别人的权益。采集它、保存它没问题,但绝不能篡改后传播——把「公示」改成「正式发布」、把名单里的名字换掉,都是踩线行为。数据工作者的底线很简单:如实保存,注明来源,不做任何加工后再冒充原文。
七、随堂自测(10 题)
点击选项即可判分,答错的题会立刻显示解析。
1案例03 与案例01 最核心的区别是?
- A. 案例01 采列表页,案例03 采详情页
- B. 案例01 需要登录,案例03 不需要登录
- C. 案例01 采「新闻 + 正文」,案例03 采「公告 + 附件文件」,重点在附件的下载与归档
- D. 案例03 只采前 3 页,案例01 采全部
2列表页上公告标题末尾显示成「…」,正确做法是?
- A. 直接用列表上显示的截断标题
- B. 取
<a>标签 title 属性里的完整标题,列表上显示的只是被截断的版本 - C. 进详情页后从正文里重新找标题
- D. 手动把省略号补全
3校务公开栏目里,公告附件的真实下载地址在哪里?
- A. 在详情页里:PDF 看
pdfsrc属性、Office 附件看<a>的 href,都指向/_upload/article/files/下的真实文件 - B. 在列表页每条公告的链接里
- C. 需要先登录才能看到
- D. 在网站首页的导航栏里
4下载下来的附件,文件命名应该用什么?
- A. 沿用下载地址里那串 UUID 文件名
- B. 按附件序号统一叫 1、2、3
- C. 用公告标题改名
- D. 用
sudyfile-attr里的原始文件名保存,保证以后一看就认得
5一条公告挂了 3 个附件,主表应该怎么处理?
- A. 只保留第一个附件,其余丢弃
- B. 把这条公告拆成 3 行放主表
- C. 主表仍是一行一条公告,另立一张「附件清单表」,一行一个文件
- D. 把 3 个文件名挤进一个单元格
6判断公告列表翻页到最后一页,最稳的依据是?
- A. 一直点「下一页」,直到页面报错为止
- B. 看页脚:每页 16 条、共 615 条、尾页是 list39.htm,到末页就停
- C. 采满 100 页就停
- D. 按当天的日期估算
7关于公告里的「文号」,正确的口径是?
- A. 公示类公告大多没有文号,能解析到就填、解析不到留空,不硬编造
- B. 每一条都一定有文号,缺的就是采漏了
- C. 全站文号格式统一,可以放心批量解析
- D. 没有文号就用发布日期顶替
8「附件大小」这个字段页面上没有,应该怎么来?
- A. 按附件个数估一个
- B. 统一填 0 留空
- C. 用公告正文字数代替
- D. 文件下载下来后,按实际字节数或响应头里的
Content-Length补上
9某公告附件是一份拟录取名单,里面有身份证号与手机号,正确做法是?
- A. 既然是公开的,就一并把身份证号、手机号都采下来
- B. 只采公文标题与附件文件名,不采集、不外传附件里的个人信息
- C. 先采下来,打码之后再传给别人
- D. 把附件原样转发到班级群里
10把「校务公开」与「招标采购」等多个栏目合并采集时,去重依据应该用哪个字段?
- A. 用详情页地址做唯一键去重,同一份公告只留一条
- B. 用标题去重
- C. 用发文单位去重
- D. 用发布日期去重