直接答案:36 个文章页中,30 个有面包屑标记(83.3%),但没有任何页面出现“上一篇/下一篇”文章级链接,也没有任何页面出现“相关文章 / 推荐阅读”文字。6 个页面没有面包屑:E16 三页、E19、E26、E28。
也就是说,30 个页面只有面包屑这一种文章级入口;另外 6 个页面连面包屑都没有,只能依赖全站导航或页脚。
36
文章页
30
有面包屑
0
上一篇/下一篇
0
相关文章文字
30
仅面包屑
6
无任何入口
方法:只从缓存 HTML 找三类入口
复用第 45 期 36 个文章页缓存(2026-11-03 08:40–08:41,10 站;5 个 JS 外壳页排除),零网络请求。
| 入口 | 判定 | 边界 |
|---|---|---|
| 面包屑 | class / aria-label / itemprop 含 breadcrumb | 不判断层级是否完整 |
| 上一篇 / 下一篇 | 链接文字完全匹配上一篇、下一篇、上一条、下一条、prev、next | 排除“上一页/下一页”列表分页 |
| 相关文章 | 链接或 h1–h6 文字含相关文章、相关推荐、推荐阅读等 | 只按文字,图片卡片与 JS 模块可能漏检 |
结果:面包屑为主,文章互相不连
| 入口 | 页面数 | 占 36 |
|---|---|---|
| 面包屑 | 30 | 83.3% |
| 上一篇 / 下一篇 | 0 | 0% |
| 相关文章文字 | 0 | 0% |
| 三类齐全 | 0 | 0% |
| 三类都没有 | 6 | 16.7% |
| 站点 | 页数 | 有面包屑 | 缺失 |
|---|---|---|---|
| E03 / E06 / E09 / E14 | 各 5 | 各 5 | 0 |
| E22 / E23 | 各 5 | 各 5 | 0 |
| E16 | 3 | 0 | 3 |
| E19 | 1 | 0 | 1 |
| E26 | 1 | 0 | 1 |
| E28 | 1 | 0 | 1 |
7 个站点、30 个页面有面包屑;4 个站点、6 个页面完全没有。E16 的三页是整个站点都没有面包屑,不是单页遗漏。
对验收的启示
- 面包屑覆盖尚可,但仍有 6 页缺失。 需要按模板补齐,而不是逐页补。
- 文章之间没有前后导航。 36 页里 0 个“上一篇/下一篇”,系列内容只能回列表页找。
- 没有相关文章入口。 按文字口径为 0;读者与爬虫都难以从一篇文章走到另一篇。
- 先补缺失面包屑,再加相关文章。 面包屑解决层级,相关文章解决横向发现。
- 文字口径是下限。 图片卡片或 JS 注入的推荐模块可能漏检,需在浏览器复核后再定性。
局限
- 只读静态 HTML:不执行 JS,不展开图片卡片或懒加载模块。
- 文字判定:相关文章按“相关/推荐”文字识别,未命中的自定义标题可能漏检。
- 排除列表分页:“上一页/下一页”不计入文章级上一篇/下一篇。
- 不判断质量:面包屑层级是否正确、链接是否可达均未验证。
- 10 站 36 页 pilot:不外推行业。
数据与复算
匿名数据:equipment-article-navigation-2026.csv(36 行 × 6 列:面包屑、上一篇/下一篇、相关文章与入口计数)。仓库内为 docs/research/2026-11-article-navigation.csv。
解析:scripts/article_nav_probe.py;单元测试 scripts/test_article_nav_probe.py(8 项,无网络)。运行:
python -m unittest scripts.test_article_nav_probe
配套:文章页链接结构 pilot、文章页标题层级 pilot、target=_blank 与 noopener pilot。
数据来源与口径
- 文章页缓存:第 45 期 10 站 36 页(2026-11-03 08:40–08:41),5 个 JS 外壳页排除。
- 面包屑:class / aria-label / itemprop 含 breadcrumb。
- 上一篇/下一篇:链接文字完全匹配,排除列表分页。
- 相关文章:链接或标题文字含相关/推荐等词。