包起来,爬虫就能识别——错。非标爬虫(如政务采集器、论文聚合器、比价机器人)根本不解析class名或CSS,它们只靠硬规则匹配语义标签。没
,就等于没入口;
为空、嵌套在
里、或页面出现两次,都会触发结构冲突,整块内容被降权甚至跳过。
  • SPA 页面必须服务端渲染出非空
    ,仅留
    等同于告诉爬虫“这里没主内容”
  • 登录弹窗、广告位、客服电话塞进
    → 被判为“元信息污染”,主内容可信度下降
  • 检查方式:在浏览器 Console 执行document.querySelector('main'),返回 null 或多个节点即不合格

不是视觉分块,而是独立建模单元

在非标采集逻辑里,不是用来“分栏”或“加边框”的,而是标记一个可被单独索引、富摘要展示、甚至 RSS 抓取的内容单元。它必须自带语义锚点,否则会被直接忽略。

  • 每个
    必须以

    起始,或带aria-labelledby;纯

    ...

    HTML Text Extract
    HTML Text Extract

    从HTML页面(URL、文件或标准输入)中提取主体内容文本,去除导航、页脚、广告和模板文本。可直接传递给readability_check或其他文本工具。

    下载
    不参与主题建模
  • 新闻列表页应为每条新闻套一层
    ,而非整个列表只包一个——否则爬虫当成“一篇长文”,而非“10篇独立报道”
  • 连续5个无标题的
    ,多数采集器会直接跳过该区域

“2024年3月15日”对爬虫只是普通字符串,需靠 NLP 推断,而自带标准格式属性,Google 新闻类页面据此提升时效性排序权重。非标爬虫更严格:缺,就无法提取发布时间,整条记录常被丢弃。

  • datetime值必须符合 ISO 8601 格式(如2024-03-15T14:30:00+08:00),不能是中文或自定义格式
  • 文章页至少一处,商品页建议同时标注上架时间与更新时间
  • 用document.querySelectorAll('time[datetime]').length快速验证是否缺失

W3C Validator + Lighthouse 是最低成本的质量守门员

人工检查容易漏掉嵌套违规(比如

放在里)或属性缺失(如缺alt),工具能覆盖绝大多数结构性硬伤。

  • W3C Validator(https://validator.w3.org/nu/)查语法与嵌套合法性,重点看“Error: Element main not allowed as child of element nav”这类提示
  • Lighthouse 的 “Document structure” 审计项直接模拟爬虫逻辑,失败项基本对应非标采集器拒收点
  • CI/CD 中集成htmlhint,配置规则attr-req-alt、headings、id-unique,报错即阻断上线
实际落地时最容易被忽略的,是
的“唯一性”和“非空性”必须同时满足——它不是摆设,而是非标爬虫启动解析的开关。一旦关掉,后面所有语义标签都失去意义。