列表页滚到底自动加载下一页,用户能翻二十屏,抓取工具里只有最初那十条,第二页之后的文章一直不进索引。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,滚动加载没有对应的可访问地址,内容只存在于接口响应里。抓取工具不会模拟滚动,也拿不到拼接后的列表。

「无限滚动抓取」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

<a href="/news/page/2/" rel="next">下一页</a>
<!-- 滚动加载只作为增强,分页链接必须真实存在 -->

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

具体做法是,保留传统的分页地址,滚动只做视觉增强;每页输出可点击的下一页链接;列表接口同时提供 HTML 版本;在站点地图里补上分页地址。

最后用这个标准收尾,关闭 JS 后仍能点到第二页,抓取工具能顺着链接翻到最后一页。

作者 9823189