Skip to content

列表页只写月日时从分组标题读出年份 - #109

Merged
JunieXD merged 2 commits into
mainfrom
list-group-years
Nov 14, 2026
Merged

JunieXD merged 2 commits into
mainfrom
list-group-years

Conversation

@JunieXD

@JunieXD JunieXD commented Nov 14, 2026

Copy link
Copy Markdown
Contributor

关联

路线图 #2「列表页的年份写在分组标题里时读出日期」,#101 试抓时发现。

改了什么

有的列表页按月分组,组标题写「七月,2026」,每行只写「10 七月」(云南大学信息学院通知公告就是这样)。按配置读出来的日期全是空的。第一次抓要往回翻两年,靠条目的日期判断停在哪,日期全空就会一直翻到最后一页,对源站不友好。

  • 按配置读的条目,date 取到的整个是月和日时(09-10、9/10、9月10日、九月 10、10 九月),年份取条目所在分组的标题:从条目往上,每一层看它前面最近的、有字没链接的元素,整个是年份、可以带月份的就用(「七月,2026」「2026年」「2026年7月」「2026-07」),不是就到上一层,到 body 为止。
  • 找不到就留空,不猜:日期本身写错了的、整行文字里的编号和电话,以及「2025-2026学年」「2020年网站改版」这类标题,都不读成日期。
  • 通用解析不改:它靠有完整日期的行认出列表,要是也认这种日期,按月分组的页面只会挑出一个月的那一组,反而漏掉别的月份。这种页面现在通用解析一条都认不出,试抓时会交给 DeepSeek 生成配置。
  • 开发约定 §2.1 写上这条规则,加一份照这个页面的结构自编的样例。

怎么验证的

  • ./check.sh 通过,351 个测试。新测试覆盖按月分组的样例(含跨年的一组),以及上面几种不该读出日期的情况。
  • 拿 接通抓取节点试抓与配置生成 #101 里那个页面(请求过一次,存在本地,没有提交)按配置读:29 条的日期全读出来了,原来全是空的。
  • 另请 Codex 逐文件审过。它报的两处会把不是月日的文字读成日期(写错的完整日期、整行文字里的数字),已改成日期和组标题都要整个匹配才算。

影响

只影响按配置读的列表页,原来能读出日期的照旧。接口、表结构、MCP 工具:无。

有的列表页按月分组,组标题写「七月,2026」,每行只写「10 七月」。按配置读出来的日期全是空的,第一次抓往回翻两年时就停不下来,会一直翻到最后一页。

- 按配置读的条目只有月和日时,年份取条目所在分组的标题:条目或它所在的列表前面最近的、有字没链接的短标题
- 认得出 09-10、9月10日、九月 10、10 九月;找不到年份就留空,不猜
- 加一份按云南大学信息学院通知公告的结构自编的样例
日期写错了的、整行文字里的编号和电话,以及「2025-2026学年」「2020年网站改版」这类标题,都不再被读成日期。
@JunieXD
JunieXD merged commit 4aa9a50 into main Nov 14, 2026
2 checks passed
@JunieXD
JunieXD deleted the list-group-years branch November 14, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant