抓取结果不能无条件覆盖源数据

**二次抓取(网页全文补全)的结果必须通过有效性检查才能覆盖 RSS 原始内容 —— 否则反爬页面会把干净的标题和摘要覆盖成域名与脚本。**

典型链路:RSS 提供正确标题 + 摘要 → 抓详情页遇到反爬 → 抓到一段 JavaScript 但「结果非空」→ 无条件覆盖 → 渲染器出于安全删除 <script> → 页面显示「暂无正文内容」,标题退化成域名。

条件式全文补全:

  1. RSS 已有足够正文 → 直接使用,不访问网页。
  2. 只有短摘要 → 才尝试访问网页补全文。
  3. 网页结果必须通过有效性检查(不能只有脚本、验证码、登录页或域名标题)。
  4. 无效就放弃,保留 RSS 的标题、摘要、作者。
  5. 正文确定之后,才调用 AI 总结。

推论:非空 ≠ 有效,抓取器的判据不能只看「结果是否为空」。同一批文章「有的正常有的不正常」,往往就是「有的抓成功、有的撞上反爬」的同一条逻辑。

相关