# 课题组逐院系 · 完备性重做 · 爱丁堡大学(University of Edinburgh)· `ed.ac.uk` 前一轮出 22 组 —— **明显偏低**(它跟了 20+ 子域,比约克大得多却只有约克的 1/4)。 · Manager 2026-09-23 ## 0. 为什么重做(前几波的教训,读之前先读这段) **用户明确要求**: > 「之前不是说这个数量对不上吗?那数量对不上,你没有重新把那些没 kill 掉重新去找吗? > **就是我们这数据完备性是非常重要的呀。**」 **上一轮的设计缺陷在我**:我给了 75 分钟时间盒、任务书写「到点先交已完成的」—— **这个设计结构上就产出半成品**。实测后果: - 伯明翰只抓了 **98 个 URL(85 成功)**,另有 **94 个二级页未取** - 圣安德鲁斯的子域**只验了 1 个** - 爱丁堡出 22 组(跟了 20+ 子域,绝不止这个数) **⇒ 本波改设计:1 个 worker 只做 1 所学校;不设时间盒;"未取页 = 0" 是交付门槛。** **先读**: - `/Users/jun/Codes/prodream/.worklogs/groups-dept/REPORT.md`(布里斯托切片 = 质量基准,174 组、组/系 ≈5.8) - 该校已有的 `finding_.md`(**前一轮的半成品,参考可以,但不要信它的"结论"**) --- ## 1. 本波只做这一所:**爱丁堡大学(University of Edinburgh)· `ed.ac.uk` 前一轮出 22 组 —— **明显偏低**(它跟了 20+ 子域,比约克大得多却只有约克的 1/4)。** --- ## 2. 完备性判据(**本波的交付门槛,不是"尽量"**) ### 2.1 必须交这张台账(**缺一行就是没做完**) | 院系(该校**全部**) | research 入口 URL | 状态 | 组数 | |---|---|---|---| | … | … | `取到` / `取不到:<原因>` | N | - **院系清单必须是该校的「全部」** —— 从学校官方的 faculties/schools/departments 导航拿, 或从 sitemap 枚举。**给出你枚举的来源 URL 与总数。** - **`取不到` 必须给原因**(404 / 重定向 / 无 research 页 / 反爬 …),**不许留空** - ⚠️ **`未取页 = 0`** —— 要么取到,要么有"取不到"的证据。 ### 2.2 子域 / 外站**必须全部跟** 布里斯托实测有 `bristolmathsresearch.org`、`bristolroboticslab.com`、`pluslab.bristol.ac.uk`、 `vilab.blogs.bristol.ac.uk` 这类**不在主域下**的研究单元 —— **不跟就整整漏掉一块**。 **给出你找到并跟过的子域/外站清单。** ### 2.3 合理性校验(**必交**) `组数 ÷ 枚举到的院系数` = **组/系** **基准:布里斯托 ≈5.8**(174 组 / ~30 系)。 - **比值 ≥ 3** ⇒ 正常 - **比值 < 3** ⇒ **必须解释**,并回答:**该校的院系是不是把研究组织成 theme / centre / institute (大一级,按用户裁定不收),而底下其实还挂着更细的具名组?** **若是 ⇒ 往下挖一层,把那些内层组收上来。** - 若确认"再下一层没有具名组" ⇒ **贴出该院系 research 页的原文章节结构**作为证据 (有哪些 section、每节里是什么)。 **「没找到」和「没有」必须分得清。** --- ## 3. 判据(不变) > **打开页面像人一样看:这是不是一个「导师带的做研究的团队」?** > **粒度上限 = 一个导师能带的规模。** > 大一级(institute / theme / cluster / 校级研究所)**不收**;**但大一级下面挂着真组时,只收内层组。** **不是组**:服务设施 · 研讨会系列 · 项目 · 学生培养计划 · 单项研究 · 空页重定向 · 无负责人的方向页。**共性是页面上有一句「非团队自述」——你去看那句话。** ### 五字段 | # | 字段 | 取法 | |---|---|---| | 1 | 课题组名称 | 该组**自己页面**的 H1 | | 2 | 所在大学及研究中心 | 大学 + **真实上级研究单位**;⚠️ 上级是系/院/学部的**不许当研究中心写**,没有真上级就**只写大学** | | 3 | 研究方向 | 该组页上的方向文字。**没有 ⇒ 不要** | | 4 | 联系邮箱 | 只接受**本组页 / 本组负责人页**的邮箱 | | 5 | 最近五年论文数 | 一律 null | --- ## 4. ⚠️ 并行安全(**上一波在这里出过事故,必须照做**) 上一波 5 个 worker **挤在同一个 Space 的同一个 page 上**,297 页里出现**跨校串页** (QUB 记录里混进 Bath 的正文与邮箱),整批作废。 **你必须**: 1. **自己新建一个 TaskSpace**(不要复用别人已存在的 Space) 2. **每个 URL 用独占的新 page**(`newPage()`),**不要共用 p1** 3. **每取一页后校验 `page.url()` 与目标 URL 一致**;不一致 ⇒ 该页作废重取 4. **收尾调一次 `await task.finish({ keep: [] })`**(成功时); 因错误停止**就别调**,把 `spaceId` 报上来 --- ## 5. 交付 1. **完备性台账**(§2.1 那张表,全部院系)+ **枚举来源 URL 与院系数** 2. **子域/外站清单** 3. **组/系 的比值 + 解释**(含"再下一层有没有组"的证据) 4. **抽样 15 条五字段产物**(贴出来) 5. **反例清单 / 判不准清单 / 未验清单**(各自附页面原文) 6. 一句话:**这所学校的最终组数是多少?完备性有没有缺口?** 产物写到 `.worklogs/groups-dept/`,按 school-slug 命名。 --- ## 6. 硬要求 1. **只读**:只写产物到 `.worklogs/groups-dept/`。不写索引、不改业务代码、不动数据。 2. **不设时间盒 —— 做完整为止。** 但**每做完一个院系报一次 `status`**(三句话), 这样即使中途出问题,Manager 也知道你到哪了、缺什么。 3. **判据来自页面、来自你自己看。** 你的眼睛比任何正则都准。 4. **不许发明**:抓不到 ⇒ 写「未验」+ 卡点(URL、错误原文)。**判不准的贴出来,不要归类掉。** 5. **只做这一所学校**,别碰别的。 ## 7. 边界 - 不碰 prodream_backend、不碰 FE、不碰 `.worklogs/groups-rebuild/` 与 `groups-verify/`。