Files

125 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 课题组逐院系 · 完备性重做 · 圣安德鲁斯大学(University of St Andrews)· `st-andrews.ac.uk`
前一轮 51 入口只出 34 组,且**子域只验了 1 个(SACHI)**。 · 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_<slug>.md`(**前一轮的半成品,参考可以,但不要信它的"结论"**)
---
## 1. 本波只做这一所:**圣安德鲁斯大学(University of St Andrews)· `st-andrews.ac.uk`
前一轮 51 入口只出 34 组,且**子域只验了 1 个(SACHI)**。**
---
## 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/`。